Java的简单解释:Java是一门后台的、后端的编程语言,除了Java编程语言,还有其他许多编程语言(eg:C语言,前端html、css、Javasprite、python等)。
一、Java的历史
1.1995年,sun公司推出的一款面向对象的编程语言;
2、jdk:Java开发的必要软件;
jdk的发展史:
1996年,jdk被推出;
1997年,jdk1.1
.......
2004年,jdk5.0版本添加大量的新特性:注解(Annotation)、泛型(Generics)、自动装包拆包(Autoboxing/Unboxing)、枚举(Enum)、变长参数、静态导入等新特性。
2006年,JDK 6.0
引入了编译器API、脚本引擎API、动态代理等新特性。这些特性的引入,进一步增强了Java在应用程序开发方面的表现。2009年,sun公司被Oracle(甲骨文)公司收购
2011年,JDK 7.0
引入了try-with-resources、二进制字面量、在IDE中直接调试压缩文件等新特性。这些特性的引入,提高了Java程序员的开发效率。2014年,JDK 8.0
引入了lambda表达式、函数式编程、紧凑语法等新特性。这些特性的引入,使得Java程序员能够更加方便地进行高阶函数编程。2017年,JDK 9.0
引入了模块系统、JVM指令集扩展、改进的JIT编译器等新特性。这些特性的引入,提高了Java在模块化编程和性能优化方面的表现。2018年3月,JDK10 .0
它是Java语言的第十个更新版本。它引入了一些新特性,如增强的try-with-resources语句、增强的switch语句等。此外,JDK10还改进了一些原有特性的实现方式,如增强了并行流的性能。
2018年9月,JDK11.0
它是Java语言的第十一个更新版本。它引入了一些新特性,如增强的字符串匹配函数、增强的日期和时间API等。此外,JDK11还改进了一些原有特性的实现方式,如增强了JIT编译器的性能。
2019年3月,JDK12.0
它引入了一些新特性,如可插拔注释、可扩展标记语言(XML)支持增强等。此外,JDK12还改进了一些原有特性的实现方式,如增强了Switch表达式中default分支的性能。
2019年9月,JDK13.0
它引入了一些新特性,如改进了的Switch表达式、改进了的日期和时间API等。此外,JDK13还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2020年3月JDK14.0
它引入了一些新特性,如条件接口、改进了的try-with-resources语句、改进了的Switch表达式等。此外,JDK14还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2020年9月,JDK15.0
它引入了一些新特性,如Records、Sealed Classes、ZGC和Shenandoah等。此外,JDK15还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2021年3月,JDK16.0
它引入了一些新特性,如改进了的Switch表达式、Records等。此外,JDK16还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2021年9月,JDK17.0
它引入了一些新特性,如模块系统、JVM指令集扩展、改进了的Switch表达式等。此外,JDK17还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2022年3月,JDK18.0
它引入了一些新特性,如改进了的Switch表达式、Records等。此外,JDK18还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
2023年3月,JDK21.0
它引入了一些新特性,如改进了的Switch表达式、Records等。此外,JDK21还改进了一些原有特性的实现方式,如增强了JVM的JIT编译器的性能。
Java分为三个发展方向:
JavaSE:Java语言核心基础
JavaEE:企业版本开发
JavaME:通信
二、Java语言的特点
1.简单性:相对于C、C++等;
2.开源性:开放源代码;
3.编程资源广泛性:很多大厂作为推手;
4.跨平台性:可以在不同的操作系统上(window、MACOS、linux),执行Java代码;
5.面向对象性:三大基本特征: 封装、继承、多态
三、Java运行机制
1.Java的执行机制:先编译后解释运行
(1)先编译:将Java代码通过编译器生成对应的字节码文件(以 .class结尾);
Java的源文件:以 .java结尾
(2)后运行:将.class文件通过解释器,逐行的解释运行。
注意:
java文件(源文件)一次编译,生成对应 的.class;
.class可以被多次的执行 (一次编 译,多次运行) 源文件内容发生改变,需要重新的编译,生成新的 .class文件,再次运行,可以看到更改之后的结果
四、环境搭建
1. 名词解释:
(1) JVM: Java虚拟机,作用:用于屏蔽不同操 作系统之间的差异性
(2) JRE:Java运行环境,JRE= 解释器 + JVM
(3) JDK:java开发的工具,JDK=JRE+编译器+工 具+类库
2. jdk的安装: 点击 安装软件,默认点击 下一步。
注意:默认存储盘符 是 C;jdk安装之后在 对应 的文件夹中生成一个 java文件夹;
jdk没有可视 化操作界面;
操作界面安装的为 notpad++(非集 成)
配置环境变量:C:\Program Files\Java
(1) java_home: java的跟目录 C:\ProgramFiles\Java\jdk1.8.0_131
(2) path:java的bin目录 C:\Program Files\Java\jdk1.8.0_131\bin
(3) classPath:代表告知 jvm去哪找对应的执 行 .class文件;类路径 classPath = . ; 当前路径 检测环境变量是否配置成功:
1. 需要打开 dos 命令 窗口
(1) 搜索 输入 cmd,回车(enter键)
(2) 先windows键 + 同时再R,输入cmd,回 车即可
(3) 盘符文件夹中输入cmd
2. 在 dos命令窗口中输入:
java 回车
javac 回车
五、Java第一个程序
1. 创建源文件: 以 .java 结尾,源文件名为 First
2. class:类,代码容器
class 类名{
// 程序入口:一个类有且只能有 一个 main函数
public static void main(String[] args){
}
}
注意:main函数为程序的入口,也称为主函数
文件中的类:Test,类名为 Test
class Test{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
注意:System.out.println("Hello World!");打印输出语句,用于给用户展示信息的
案例中源文件名字为 First.java
类名为:Test
3. java--->先编译再运行
(1)编译:javac 源文件名.java
javac First.java
注意:编译之后生成对应的.class文件,而且.class文件名字以类名进行命名,Test.class
System.out.println("Hello World!");
---打印输出并换行
System.out.print("Hello World!");
---打印输出不换行
4.公开类
(1) 被 public 修饰类,称为公开类
(2) 语法:
public class 类名{
// ...
}
(3) 公开类的类名必须和源文件名字一致
(4) 一个源文件中最多只能有一个公开类
5.注意事项:
(1)一个源文件中可以定义多个类,但是每个类之间 不允许重名
(2) 每个类中都可以定义一个主函数
(3) 每个类都会生成对应的 .class文件
六、包(package)
1. 作用:类似于文件夹,用于分门别类进行管理文 件;方便存储和维护
2. 语法:package 包名;
package 包名1.包名2.包名; // 多级包结构
3. 注意事项:
(1) package 语句必须定义在源文件中第一行有效语句
(2) 一个源文件中最多只能定义一行 package语句
4. 带包的编译和运行
(1) 编译:javac -d . 源文件名.java
(2) 运行:java 包名.类名
java 包名1.包名2.包名3.类名
七、编码规范
1. 标识符命名规范(语法要求)
标识符:开发中 起名字的地方统称为标识符
(1) Java中标识符只能以:数字、字母、下划线 (_)、$组成,但是不能以数字开头
(2) Java中的标识符没有长度的限制
(3) Java中的标识符严格区分大小写
(4) 不能使用 java中关键字、保留字、特殊符号 (true\false\null)进行命名
java中标识符可以采用中文进行命名;但是不建议,容易出现乱码
2. 标识符的建议要求:
(1) 望文生义, Student/ User / Admin / name
(2) 包名 全小写,demo ; demo.aa.lx
(3) 类名:每个单词首字母大写,TestStudent
(4) 变量名、函数名、方法名:第一个单词首字母 小写,其余单词首字母大写,称为 驼峰命名法 (ageAndName)
(5) 常量:建议全大写,PI / A
3. 良好的格式要求:
(1)建议每行写一句代码
(2) 层级之间有严格缩进,通常为 Tab
4. 良好的注释规范
注释:对代码解释和说明,可以提高代码的可读性
(1) // :单行 注释 ,只能写一行注释,不能换 行
(2) /*
多行 注释,可以写 多行内容
*/
注意:单行注释中不能嵌套多行注释;
多行注释可以嵌套单行注释
创建 源文件 TestStudent.java,在源文件中定 义公开类,
在源文件中package语句,demo包中:
打印输出 "good good study" // 代码加注释
"day day up..."
编译 、运行