JavaSE----01.Java简介
01.Java简介
1、java介绍
Java是于1995年由Sun公司推出的一种跨平台、面向对象的高级程序设计语言。Java最初的名字叫OAK。Java是一种通过解释方式来执行的语言,其语法和C++类似。Java也是一门跨平台的语言,用Java编写的程序可以在任何平台上运行。实现了 "一次编写,到处运行"。
2、java版本
Java主要分为三个版本:
- JavaSE: java标准版,主要用于开发桌面应用程序。
- JavaME: java移动版,主要针对嵌入式设备软件开发。
- JavaEE: java企业版,主要用于开发企业级分布式网络程序。
Java EE 现在已经更名为 Jakarta EE
3、java个版本的特点:
版本 | 发布时间 | 特点 |
---|---|---|
JDK1.0 | 1996 | 代号OAK |
JDK1.1 | 1997 | 引入JDBC、java bean、反射、添加内部类支持等 |
JDK1.2 | 1998 | 引入集合框架等 |
JDK1.3 | 2000 | 引入Java Sound API、jar文件索引,进行了大量优化等 |
JDK1.4 | 2004-02 | 添加XML处理、Java打印服务、支持正则表达式等 |
JDK5.0 | 2004-09 | 重大改变:添加自动装箱、自动拆箱、枚举、泛型、注解等 |
JDK6.0 | 2006 | 支持脚本语言、继承Web Services、插拔注解等 |
JDK7.0 | 2011 | 支持动态语言、引入新I/O文件系统等 |
JDK8.0 | 2014 | 接口改进、引入函数式接口、引入Lambda表达式等 |
JDK9.0 | 2017-09 | 模块化、JShell等 |
JDK10.0 | 2018-03 | 局部变量类型推断、删除工具javah等 |
JDK11.0 | 2018-09 | 字符串、集合增强等 |
JDK12.0 | 2019-03 | Switch 表达式、默认CDS归档等 |
JDK13.0 | 2019-09 | Dynamic CDS Archives等 |
4、java主要特性和优势:
- 分布式:持Internet应用分布式的开发。
- 高性能:相对于解释型的脚本语言来说,的确是高效的。
- 面向对象:面向对象的编程语言。
- 跨平台可移植:一次编写,到处运行。
- 安全健壮:java的强类型机制、异常处理、垃圾自动回收是java程序健壮的重要保证。
- 动态性:反射机制。
- 多线程:在java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
5、java中的JDK、JRE、JVM区别:
- JDK: Java开发工具包(java development kit), 包含了JRE、JVM和开发工具(javac、java、jar、Javadoc等),主要针对开发者。
- JRE: Java运行环境(Java Runtime Environment), JRE的内部有一个Java虚拟机(JVM)以及一些标准的类别函数库,主要针对java用户。
- JVM: Java虚拟机(Java Virtual Machine), 用来解释执行字节码文件(.class文件)的。
**JDK、JRE、JVM关系图: **
6、java程序运行的过程:
Java 程序从源代码到运行一般有如下3个步:
我们需要格外注意的是 .class --> 机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT 编译器,而JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。
什么是字节码?采用字节码的好处是什么?
在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。
7、Java API文档:
API(Application Programming Interface),应用程序编程接口。Java API 是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关系这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
主要使用步骤:
- 查看包
- 查看构造方法
- 查看具体方法