java概述
1. java发展小知识
jdk1.5是java历史上一个里程碑式的版本,所以jdk1.5改为jdk5.0.之后一直延续。jdk1.8(8.0)是一个java的另一个具有比较多新特性的版本,需要好好学学习。
2. java的分类
- J2SE(javaSE)
早期主要用于桌面级应用的开发。但是随着时代的发展,
基本淘汰。所以现在的javaSE多用于指SE体系中除去桌面开发的那部分(也就是java的基础知识) - J2EE(javaEE)
主要用于开发企业级应用,比如网页开发。也是现在java的主流体系。
- J2ME(javaME)
主要用于支持手机应用程序。但是现在基本已经淘汰,主流为androd,ios占据移动端天下。
- javaCard
主要是用于智慧卡或与智慧卡相近的装置上(如饭卡,公交卡等)。
3. java语言特性
- 面向对象
- 两个基本概念:类,对象
- 三大特性:封装,继承,多态
- 健壮性
- 吸收了c/c++的语言优点,但是摒弃掉影响语言健壮性的特点(如指针,内存申请与释放),同时提供一个相对安全的内存管理和访问机制。
- 跨平台性
- 所谓 ‘一处编写,处处运行’ 。即java编写的程序在不同的系统平台上都可以运行。
- 原理:就是采用JVM负责程序的运行。
4. java虚拟机简介(JVM简介)
java虚拟机(JVM)就是一个虚拟的java程序运行环境。它保证了java的跨平台性。并且由它来进行内存的自动管理,使程序员能够将更多的注意力放在程序本身。
- java程序简介运行流程
java程序 —>经过编译—>字节码—>由JVM读入字节码文件解释执行—>操作系统—>硬件
注意:编译执行和解释执行
- 编译执行:即一次性将整个程序都翻译完然后再执行翻译结果。
- 解释执行:即逐条翻译并执行程序语句,一句一句的翻译,执行。
对于java来说,它是一个混合使的过程。即既有编译执行又有解释执行。
- Java代码经过javac编译成class文件(字节码)
- class(字节码)文件经过JVM编译成机器码进行解释执行(解释执行)
- 对于热点代码,JIT(JustInTime)编译器会在运行时将其编译为机器码执行(编译运行)
参照:具体请参照java中编译执行和解释执行
5. JDK,JRE,JVM关系
-
JDK(java development kit Java开发工具)
用于开发java程序,其包含JRE和一些开发工具(如:编译工具javac.exe,打包工具jar.exe等)。
-
JRE(java runtime enviroment java运行环境)
用于提供java运行环境。包含java虚拟机和所需核心类库。
注意:有了JRE只能运行而不能开发java程序嗷。 -
JVM(java viro machen java虚拟机)
用于执行.class字节码文件,保证java跨平台性。同时也主要进行java的 内存自动管理 和 垃圾回收。
-
三者关系
JDK = JRE + 开发工具
JRE = JVM + java核心类库
JVM:java虚拟机