【Java入门合集】第一章Java概述
【Java入门合集】第一章Java概述
博主:命运之光
专栏:JAVA入门
学习目标
1.理解JVM、JRE、JDK的概念;
2.掌握Java开发环境的搭建,环境变量的配置;
3.掌握Java程序的编写、编译和运行;
4.学会编写第一个Java程序,掌握Java程序的结构。
目录
- 【Java入门合集】第一章Java概述
- 1.1Java语言简介
- 简介
- Java的起源
- Java技术的发展阶段
- 第一阶段——萌芽期
- 第二阶段——完善期
- 第三阶段——平稳期
- 第四阶段——发展期
- Java技术体系平台
- Java语言的特点
- Java代码的处理过程
- 1.2搭建Java开发环境
- Java的开发环境
- JDK相关概念
- Java语言运行机制
- 1.3Java程序的运行
- 文本编辑工具介绍
- 准备工作
- “HelloWorld”程序
- 关于CLASSPATH
- HelloWorld代码解释
- 良好的编程风格
- 集成开发环境介绍
- 1.4常见错误总结
- 🍓🍓总结🍓🍓
1.1Java语言简介
简介
Java是一门高级的面向对象的程序设计语言。使用Java语言编写的程序是跨平台的,从PC机到移动设备,到处都运行着Java开发的程序和游戏。Java程序可以在任何计算机、操作系统以及支持Java的硬件设备上运行。
Java的起源
Java技术的发展阶段
第一阶段——萌芽期
时间 :1991年;
地点:美国Sun公司(美国加利福利亚);
主要设计者: James Gosling(詹姆斯•高斯林);
产品:Oak语言。
第二阶段——完善期
时间:1995年—1998年;
1995年Java语言面世, 推出JDK1.0;
1998年发布JDK 1.2,随之将Java 分为J2SE、J2EE和J2ME。
第三阶段——平稳期
时间:1999年—2004年;
产品:JDK 1.3 ~ JDK 1.4;
Java已成为最为流行的网络编程语言,并且在移动计算和智能制造等领域得到了广泛应用。
第四阶段——发展期
时间 :2005——现在;
产品 :2005年推出JDK 1.5;
2009年Oracle甲骨文74亿美元收购Sun,获得Java版权;
2014年,甲骨文发布Java SE 8.0(JDK1.8)
Java技术体系平台
Java SE(Java Standard Edition)标准版(整个技术架构的核心
)
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE。
Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet 、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE。
Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME。
Java语言的特点
🍓特点一:面向对象
- 两个基本概念:类、对象;
- 三大主要特性:封装、继承、多态;
🍓特点二:健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制;
🍓特点三:跨平台性
- 跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”
- 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
Java代码的处理过程
程序开发需要经过 编写源码 ——>编译 ——> 运行 的过程。
如果从编程语言的角度而言,分为两种类型的编程语言:编译型、解释型;
编译型源程序(C程序)——>编译链接——>可执行程序EXE——>运行——>操作系统
Java属于两种类型的合集:
源文件——>编译——>字节码文件(二进制文件)——>解释/运行——>解释器——>操作系统
1.2搭建Java开发环境
Java的开发环境
Java开发运行环境是指Java开发工具和相应的硬/软件环境,目前主流是Oracle公司的JDK(java开发工具包 Java Development Kit) 。
为了提高Java程序的开发效率,目前有很多集成开发工具(IDE),包括Eclipse、MyEclipse、JBuilder、JDeveloper、JCreator等,使用这些集成开发工具能帮助我们敏捷快速地开发应用系统。
JDK相关概念
JDK
Java Development kit 即 java开发工具包),用于开发Java程序。
JRE
(Java Runtime Environment 即java运行环境),用于运行Java程序。
JVM
(Java Virtual Machine 即Java虚拟机),将Java程序翻译成机器语言,交给底层操作系统执行,并保证运行效果,实现JAVA程序的跨平台性。
🍓JDK 、JRE、JVM关系
JDK = JRE + 开发工具库(例如javac编译工具等)
JRE = JVM + Java SE标准类库
Java语言运行机制
在Java中所有的程序都是在 JVM(Java Virtual Machine)上运行的。JVM是在一台计算机上由软件或硬件模拟的虚拟计算机。
- 对于不同的平台,有不同的虚拟机;
- 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行;
- Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
Java编译环境
1.3Java程序的运行
文本编辑工具介绍
- 文本编辑工具
记事本
EditPlus
TextPad
NotePad++
准备工作
注:在编写代码之前,先确认系统中“文件扩展名”选项被勾选,如图所示。
“HelloWorld”程序
步骤一:编写
- 选择最简单的编辑器:记事本; (也可以使用NotePad++)
- 敲入代码;
- 将文件保存成HelloWorld.java,这个文件是存放java代码的文件,称为源文件。
步骤二:编译
- 有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件;
- 在命令提示符窗口(win+R)中操作。
Dos常用命令
1、转换盘符
D: 回车 //转到D盘;
C:回车 //转到C盘;
2、cd 目录名 // 进入目录名所表示的目录(即文件夹)
cd myjava //进入myjava目录;
cd … //退回到父目录;
cd \ //退回到根目录;
cd myjava\a\b //进入到myjava下的a下的b目录;
cd命令只能在同一个盘符内进行目录转换,跨盘符不行,需要先转换盘符
3、exit //退出命令行窗口
- 进入Java源文件目录下,通过javac编译工具对HelloWorld.java文件进行编译; 格式: javac HelloWorld.java
- 如果程序没有错误,没有任何提示,在当前目录下会出现一个HelloWorld.class文件,该文件称为字节码文件,也是可以执行的java的程序。
步骤三:解释程序,对生成的Hello.class在JVM上执行。
通过运行工具java.exe对字节码文件进行执行;
格式: java HelloWorld (不写扩展名)
关于CLASSPATH
执行java程序的过程
1.CLASSPATH主要指的是类的运行路径,启动JVM后,JVM在运行时需要通CLASSPATH加载所需要的类。
2.默认情况下,CLASSPATH是指向当前目录(命令行窗口所在的目录)中的类。(因而一般需要进入到程序所在路径下执行程序)
(JDK6.0后一般情况下无需配置CLASSPATH)
HelloWorld代码解释
public class HelloWorld {public static void main( String[] args ) {System.out.println("hello,world!");}
}
如果有public,则文件名必须与类名“HelloWorld”相同,否则可以不同
这是定义一个名字叫做HelloWorld的类,类是java当中所有代码的一个基本组织单位
第二行是固定写法,基本不能改变,这是程序启动的起点
第三行开始,就是程序执行的内容,这一行是一个输出语句、打印语句,就是在屏幕当中显示一行信息英文的双引号中间就是显示的文本内容
1.Java源文件以***“java”为扩展名。源文件的基本组成部分是类(class),如本例中HelloWorld类。
2.Java应用程序的执行入口是main()方法***。它有固定的书写格式:
public static void main(String[] args) {…} 或
public static void main(String args[]) {……}
3.Java语言严格区分大小写。
4.Java方法由一条条语句构成,每个语句以“;”结束。
5.大括号都是成对出现的,缺一不可。
6.一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名。
良好的编程风格
- 🍍正确的注释和注释风格🍍
使用文档注释来注释整个类或整个方法;
如果注释方法中的某一个步骤,使用单行或多行注释;
- 🍍正确的缩进和空白🍍
使用tab键,实现缩进;
运算符两边习惯性各加一个空格,比如:2 + 4 * 5
- 🍍块的风格🍍
行尾风格
次行风格
集成开发环境介绍
- Java集成开发环境(IDE)
JBuilder
NetBeans
Eclipse
MyEclipse
IntelliJ IDEA
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是提供了一个基础的底层支持,而后针对于不同的编程语言都会提供有相应的插件支持。
Eclipse属于绿色免安装软件,解压缩后就可以直接使用(运行 Eclipse.exe程序)。
下载网址:http://www.eclipse.org/downloads/packages/,根据自己的操作系统选择相应的Eclipse版本,本书使用的是windows 64位版。
Eclipse窗口介绍
1.4常见错误总结
🍎
🍓错误原因:
- 源文件名不存在或者写错;
- 当前路径错误;
- 后缀名隐藏问题;
🍎🍎
🍓错误原因:
- 类文件名写错;
- 类文件不在当前路径下(如上不在D盘根目录);
🍎🍎🍎
***错误原因:***声明为public的类应与文件名一致,否则编译失败;
编译失败,注意错误出现的行数,再到源代码中指定位置改错
🍓🍓总结🍓🍓
- JDK,JRE,JVM的关系;
- 环境变量path配置及其作用; Java程序的编写、编译、运行步骤:
- Java程序编写的规则;
- 在配置环境、编译、运行各个步骤中常见的错误以及解决方法。
相关文章:
【Java入门合集】第一章Java概述
【Java入门合集】第一章Java概述 博主:命运之光 专栏:JAVA入门 学习目标 1.理解JVM、JRE、JDK的概念; 2.掌握Java开发环境的搭建,环境变量的配置; 3.掌握Java程序的编写、编译和运行; 4.学会编写第一个Java程序&#x…...
Android无线调试操作说明
1.首先通过手机机蓝牙将jackpal.androidterm-1.0.70.apk(终端模拟器)传的设备上安装 链接: https://pan.baidu.com/s/151SzEgsX0b_VTWowzfUrsA?pwdrn75 提取码: rn75 复制这段内容后打开百度网盘手机App,操作更方便哦 2.打开这个终端模拟器,输入以下命…...
什么是 Python ?聊一聊Python程序员找工作的六大技巧
最近我一直在思考换工作的事情。因此,这段时间我会看一些题目,看一些与面试相关的内容,以便更好地准备面试。我认为无论你处于什么阶段,面试中都会有技术面试环节。无论是初级职位还是高级职位,都需要通过技术面试来检…...
RabbitMQ 01 概述
什么是消息队列 进行大量的远程调用时,传统的Http方式容易造成阻塞,所以引入了消息队列的概念,即让消息排队,按照队列进行消费。 它能够将发送方发送的信息放入队列中,当新的消息入队时,会通知接收方进行处…...
面经|曹操出行供需策略运营
1.自我介绍 面试官表示看了简历之后,表示对专业能力比较放心。想了解下对于专业能力之外,关于其他方面的介绍。 2.策略运营,除了工具之外,还有哪些能力是需要具备的 回答:主要是从做项目的维度逻辑先去回答的。 分析思…...
【Python】selenium工具
目录 1. 安装 2. 测试 3. 无头浏览器 4. 元素定位 5. 页面滑动 6. 按键、填写登录表单 7. 页面切换 Selenium是Web的自动化测试工具,为网站自动化测试而开发,Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,可以接…...
实验六~Web事件处理与过滤器
1. 创建一个名为exp06的Web项目,编写、部署、测试一个ServletContext事件监听器。 BookBean代码 package org.example.beans;import java.io.Serializable;/*** Created with IntelliJ IDEA.* Description:* User: Li_yizYa* Date: 2023—04—29* Time: 18:39*/ Su…...
刷题4.28
1、 开闭原则软件实体(模块,类,方法等)应该对扩展开放,对修改关闭,即在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关…...
做了一年csgo搬砖项目,还清所有债务:会赚钱的人都在做这件事 !
前段時间,在网上看到一句话:有什么事情,比窮更可怕? 有人回答说:“又忙又窮。” 很扎心,却是绝大多数人的真实写照。 每天拼死拼活的996,你有算过你的時间值多少钱? 我们来算一笔…...
线性回归模型(7大模型)
线性回归模型(7大模型) 线性回归是人工智能领域中最常用的统计学方法之一。在许多不同的应用领域中,线性回归都是非常有用的,例如金融、医疗、社交网络、推荐系统等等。 在机器学习中,线性回归是最基本的模型之一&am…...
VP记录:Codeforces Round 868 (Div. 2) A~D
传送门:CF A题:A-characteristic 构造一个只有 1 , − 1 1,-1 1,−1的数组,满足乘积为 1 1 1的数对的个数为 k k k. 发现 n n n的范围很小,考虑直接暴力枚举数组中 1 1 1的个数,记为 i i i,那么对于1的所有数对来说,我们有 i ∗ ( i − 1 ) / 2 i*(i-1)/2 i∗(i−1)/2个,然后…...
【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2
【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2 0、前言Abstract1 Introduction2 Background2.1 Vector Quantized Variational AutoEncoder3 Method3.1 Stage 1: Learning Hierarchical Latent Codes3.2 Stage 2: Learning Priors over Latent C…...
并发编程基石:管程
大家好,我是易安! 如果有人问我学习并发并发编程,最核心的技术点是什么,我一定会告诉他,管程技术。Java语言在1.5之前,提供的唯一的并发原语就是管程,而且1.5之后提供的SDK并发包,也…...
电路中噪声来源
电路包括不同的部件和芯片,所有都有可能成为噪声的来源。例如,电阻会带来热噪声,这个噪声为宽频噪声,几乎涵盖所有频率范围;运算放大器其芯片内部会产生噪声;而 ADC产生的量化噪声相较于其他器件࿰…...
JAVASE的全面总结
(未完待续) 五、子类与继承 5.1 子类与父类 继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并…...
关于repeater录制的流量子调用的identity中带有~S的情况
前段时间同事问我,我们录制的流量中,尤其是dubbo的子调用显示经常他的末尾会带上一个小尾巴这个是什么意思呢,其实之前我没有太在意这个事情,只是同事这么疑问了,确实激起了好奇心,所以就差了下 到底是什么…...
Java面试题队列
Java中的队列都有哪些,有什么区别 1. ArrayDeque, (数组双端队列) 2. PriorityQueue, (优先级队列) 3. ConcurrentLinkedQueue, (基于链表的并发队列) 4. DelayQueue, (延期…...
大型Saas系统的权限体系设计(二)
X0 上期回顾 上文《大型Saas系统的权限体系设计(一)》提到2B的Saas系统的多层次权限体系设计的难题,即平台、平台的客户、客户的客户,乃至客户的客户的客户如何授权,这个可以通过“权限-角色-岗位”三级结构来实现。 但这个只是功能权限&am…...
HTML(四) -- 多媒体设计
目录 1. 视频标签 2. 音频标签 3. 资源标签(定义媒介资源 ) 1. 视频标签 属性值描述autoplayautoplay如果出现该属性,则视频在就绪后马上播放。controlscontrols表示添加标准的视频控制界面,包括播放、暂停、快进、音量等…...
设置苹果电脑vsode在新窗口中打开文件
0、前言 最近切换到mac电脑工作,又得重新安装一些工具软件并设置。虽然这些设置并表示啥复杂的设置,但是久了不设置还是会忘记。于是记录之,也希望给能帮助到需要的人。 我们使用vscode阅读或者编辑文件时,有时候希望同时打开多…...
第二章创建模式—单例设计模式
文章目录 单例模式的结构如何控制只有一个对象呢怎么设计这个类的内部对象外部怎么访问 单例模式的主要有以下角色 单例模式的实现饿汉式 1:静态变量饿汉式 2:静态代码块懒汉式 1:线程不安全懒汉式 2:线程安全—方法级上锁懒汉式 …...
数据结构学习记录——堆的插入(堆的结构类型定义、最大堆的创建、堆的插入:堆的插入的三种情况、哨兵元素)
目录 堆的结构类型定义 最大堆的创建 堆的插入 堆的插入的三种情况 代码实现 哨兵元素 堆的结构类型定义 #define ElementType int typedef struct HNode* Heap; /* 堆的类型定义 */ struct HNode {ElementType* Data; /* 存储元素的数组 */int Size; /* 堆中…...
netperf测试
netperf测试 目录 批量网络流量性能测试 TCP_STREAM测试UDP_STREAM 测试请求/应答网络流量测试 TCP_RR TCP_CRR Netperf 是一个网络性能测试工具,它可以测试网络协议栈的性能,例如TCP和UDP协议。Netperf可以测量网络吞吐量、延迟和CPU利用率等指标。…...
ORACLE常用语句
1.修改用户密码 alter user 用户名 identified by 新密码; 2.表空间扩容 1.增加数据文件 alter tablespace AA add datafile ‘DATA’ size 20G autoextend off; 2.修改数据文件大小 ALTER DATABASE DATAFILE ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\aa.DBF’ RESIZE 400M;…...
[论文笔记]C^3F,MCNN:图片人群计数模型
(万能代码)CommissarMa/Crowd_counting_from_scratch 代码:https://github.com/CommissarMa/Crowd_counting_from_scratch (万能代码)C^3 Framework开源人群计数框架 科普中文博文:https://zhuanlan.zhihu.com/p/65650998 框架网址:https…...
HCIP-7.2VLAN间通信单臂、多臂、三层交换方式学习
VLAN间通信单臂、多臂、三层交换方式学习 1、单臂路由2、多臂路由3、三层交换机的SVI接口实现VLAN间通讯3.1、VLANIF虚拟接口3.2、VLAN间路由3.2.1、单台三层路由VLAN间通信,在一台三层交换机内部VLAN之间直连。3.2.2、两台三层交换机的之间的VLAN通信。3.2.3、将物…...
PHP快速入门17-用spl_autoload_register实现类的自动加载
文章目录 前言实现过程创建两个类创建入口文件 总结 前言 本文已收录于PHP全栈系列专栏:PHP快速入门与实战 PHP类自动载入是指在PHP应用程序中,当需要使用某个类文件时,系统会自动加载该类文件,无需手动引入。 在PHP中…...
【黑马程序员 C++教程从0到1入门编程】【笔记8】 泛型编程——模板
https://www.bilibili.com/video/BV1et411b73Z?p167 C泛型编程是一种编程范式,它的核心思想是编写通用的代码,使得代码可以适用于多种不同的数据类型。 而模板是C中实现泛型编程的一种机制,它允许我们编写通用的代码模板,然后在需…...
分享10个精美可视化模板,解决95%的大屏需求!
前段时间和朋友一起喝茶,我吐槽着excel表格做报表的繁琐,他惊讶的问我竟然不知道大屏模板这种东西,说是直接套用数据就可以,我震惊的同时吃下了这个安利。 回来之后,我好好研究了一番这个叫可视化大屏的“新鲜玩意儿”…...
好用的项目管理软件的具体功能有哪些
随着企业规模不断的扩大,项目管理往往会面临更多的挑战与难题,最常见的会出现以下几个问题:资源消耗失控,而项目部门和相关部门之间沟通越来越困难;团队凝聚力下降、项目进度难以把控,项目成本几乎失控&…...
爱用建站平台/网络域名
给div:background:rgba(190,190,190,0.5);...
丰台网站建设多少钱/seo站点
考研真题资料优惠价原价选择湖南科技大学(专业学位)计算机技术教材,也叫湖南科技大学(专业学位)计算机技术考研参考书、指定书目等等,是考验专业课复习过程中最重要的资料。考研是一种针对性很强的考试项目,参考书目由报考院校的研究生院制定…...
教做3d的网站/百度爱采购官网首页
用yum update 更新的时候,它会更新到当前系列的最新的版本, 比如当前系统版本是centos7.2,而假设centos7系列当前最新版为7.6,那么就会更新到7.6,如果当前最新版本是7.9,则会更新到7.9,而不会更…...
bs系统做的网站有什么特点/爱链接
2019独角兽企业重金招聘Python工程师标准>>> 近期的一个项目中用到将oracle blob转换为base64的字符串 //转换成base64编码(不换行)需要commons-codec1.5jar //换行使用encoder.encode(user.getZp()); Action中 String cardBase64encoder.enc…...
wordpress 发布/seo专业知识培训
代码中可能由于单元测试、注释(方法中的参数)或者maven javadoc插件的问题导致无法打包,影响工作,为避免这两种情况可以在打包时输入命令: mvn clean install -Dmaven.test.skiptrue -Dmaven.javadoc.skiptrue -Dmaven…...
wordpress自定义文章添加标签/seo广州工作好吗
自建epel yum仓库并安装nginx1、创建 repo 文件2、yum repolist查看repolist3、安装 nginx4、验证 nginx 是否安装1、创建 repo 文件 [rootneo ~]# cat /etc/yum.repos.d/epel.repo [epel] nameepel repository baseurlhttps://epel.mirror.constant.com//7/x86_64/ gpgcheck0…...