目录

Java三大类别

Java语言的特性

JDK、JRE、JVM的关系

Java程序运行机制

系统变量与用户变量

Windows操作系统的path环境变量的作用

JDK中的环境变量

JDK中的类加载器(ClassLoader)

JDK自带了三个类加载器

Java中的注释

第一个程序

Java程序中的注意点

GC(垃圾回收机制)


Java三大类:

  • JavaSE
  • JavaEE
  • JavaME

Java语言的特性

  • 简单性
  1. Java程序都是运行在JVM(Java虚拟机)中的,并且是JVM自动去操作内存,不需要人管。
  2. 对于C或者C++则是程序员通过指针去操作内存。
  3. Java语言的底层是C++
  • 面向对象
  1. 以对象的方式去认知事物,方便人们理解
  • 健壮性:就算出现错误也能正常运行。
  1. Java语言不容易导致内存泄漏
  2. 存在垃圾内存回收机制(GC机制)可以自动回收内存
  3. 安全性高
  • 多线程
  • 可移植性、跨平台

编写一次到处运行

原理:Java语言<—>JVM(Java虚拟计算机)<—>OS<—>硬件

notes:不同的操作系统需要安装相应的虚拟机

JDK、JRE、JVM的关系

JDK : Java开发工具包

JRE : Java运行环境

JVM :Java虚拟机

notes:

  1. JDK包含JRE,JRE包含JVM
  2. JDK和JRE可以独立安装,JVM不可以
  3. 安装了JDK就自动安装了JRE和JVM
  4. 安装了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){}

  1. mian方法是程序的入口,必须有
  2. 方法必须在类体中
  3. main方法中只有args可以改,其他的都必须是原模原样
  4. 类体中不能直接编写输出语句,输出语句要写在方法中。

Java程序中的注意点

notes:1、一个Java源文件中可以定义多个类

2、被public修饰的类必须与文件名相同

3、在一个源文件中public修饰的类只能有一个

GC(垃圾回收机制)

垃圾回收机制主要回收的是堆内存,当堆中的对象没有被任何引用指向时,就被GC释放了