目录
Java三大类别
Java语言的特性
JDK、JRE、JVM的关系
Java程序运行机制
系统变量与用户变量
Windows操作系统的path环境变量的作用
JDK中的环境变量
JDK中的类加载器(ClassLoader)
JDK自带了三个类加载器
Java中的注释
第一个程序
Java程序中的注意点
GC(垃圾回收机制)
Java三大类:
- JavaSE
- JavaEE
- JavaME
Java语言的特性
- 简单性
- Java程序都是运行在JVM(Java虚拟机)中的,并且是JVM自动去操作内存,不需要人管。
- 对于C或者C++则是程序员通过指针去操作内存。
- Java语言的底层是C++
- 面向对象
- 以对象的方式去认知事物,方便人们理解
- 健壮性:就算出现错误也能正常运行。
- Java语言不容易导致内存泄漏
- 存在垃圾内存回收机制(GC机制)可以自动回收内存
- 安全性高
- 多线程
- 可移植性、跨平台
编写一次到处运行
原理:Java语言<—>JVM(Java虚拟计算机)<—>OS<—>硬件
notes:不同的操作系统需要安装相应的虚拟机
JDK、JRE、JVM的关系
JDK : Java开发工具包
JRE : Java运行环境
JVM :Java虚拟机
notes:
- JDK包含JRE,JRE包含JVM
- JDK和JRE可以独立安装,JVM不可以
- 安装了JDK就自动安装了JRE和JVM
- 安装了JRE就自动安装了JVM
Java程序运行机制
Java程序分为两个阶段:编译阶段和运行阶段
编译
*.java(源文件)——>*.class(字节码文件)——>JVM虚拟机——>机械码(二进制)——>
运行
notes:
关键命令
javac:负责编译 语法格式:javac java源文件路径
java:负责运行 语法格式:java 类名(只能是类名,不能带有路径)
notes: java 类名 敲击回车之后是怎么运行的?
1、启动JVM
2、JVM启动类加载器(classloader) 类加载器的作用:在硬盘上寻找类名对应的字节码文件,并装载到JVM中
3、JVM启动解释器将字节码文件转换成二进制文件,然后通过操作系统与硬件交互
系统变量与用户变量
系统变量:只要是使用的这台计算机的,都可以用。
用户变量:只能指定相应的用户使用
notes:程序先扫描用户变量在扫描系统变量
Windows操作系统的path环境变量的作用
为操作系统找相应命令提供路径
javac -version 查看编译器的版本
Java -version 查看JDK(虚拟机)的版本
JDK中的环境变量
JAVA_HOME在安装Tomcat服务器时再配置就可以
classpath环境变量是给classloader指路的 ,但是一旦配置了之后,类加载器只会去配置的目录下找字节码文件,其他的地方都会报错
JDK中的类加载器(ClassLoader)
定义:用来加载类的工具。
JDK自带了三个类加载器
启动类加载器(父加载器)
扩展类加载器(母加载器)
应用类加载器
双亲委派机制:加载顺序 父—>母—>应用类加载器
程序执行之前会将所有需要的字节码文件加载到JVM中,最先的是启动类加载器,它专门加载Java中最核心类库C:\Program Files\Java\jdk1.8.0_311\jre\lib\rt.jar中的字节码文件。当启动类加载器没有加载到所需的文件时,则扩展类加载器就会专门加载C:\Program Files\Java\jdk1.8.0_311\jre\lib\ext\*.jar中的字节码文件,要是还没找到则会启动应用类加载器加载classpath路径下的字节码文件
Java中的注释
// 单行注释
/* 多行注释*/
/**
* (文档注释)javadoc注释:可以自动被Javadoc.exe命令提取,并生成到帮助文档中
*/
第一个程序
public static void main(String[] args){}
- mian方法是程序的入口,必须有
- 方法必须在类体中
- main方法中只有args可以改,其他的都必须是原模原样
- 类体中不能直接编写输出语句,输出语句要写在方法中。
Java程序中的注意点
notes:1、一个Java源文件中可以定义多个类
2、被public修饰的类必须与文件名相同
3、在一个源文件中public修饰的类只能有一个
GC(垃圾回收机制)
垃圾回收机制主要回收的是堆内存,当堆中的对象没有被任何引用指向时,就被GC释放了