Java基础の第一弹

一。虚拟机的工作机制

  (1) :通过 ClassLoader 寻找和装载 class 文件
  (2) :解释字节码成为指令并执行,提供 class 文件的运行环境
  (3) :进行运行期间垃圾回收
  (4) :提供与硬件交互的平台

二。Java 从代码到运行的全过程

  1.创建类:创建Java类文件,文件名(文件后缀名为java)必须跟其中一个类名完全一致,只有该类可以带public修饰符,一个类文件中最多只有一个类被public修饰(内部类不算)

    类包含如下部分:①包(package)定义,②引用(import)的别的类,③类定义

  2.编译:将类文件编译成JVM可以识别的字节码文件,文件以class为后缀名

  3.类装载ClassLoader:类装载就是JVM把二进制文件加载到内存中

  4.字节码(byte-code)校验:JVM对class文件进行字节码校验,保证代码的安全性

  5.解释:解释器解释加载后的字节码文件

  6.运行:由运行环境中的 Runtime 对代码进行运行

三。 Java 的垃圾回收机制

  1.目的:取消分配已分配的内存,即释放内存

  2.方式:有系统级线程自动追踪内存分配情况,并自动回收

  3.提示:

    (1) :在 Java 里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为。比如垃圾回收什么时候开始,什么时候结束,还有到底哪些资源需要回收等,都是程序员不能控制的。
    (2) :有一些跟垃圾回收相关的方法,比如:System.gc() , 记住一点,调用这些方法,仅仅是在通知垃圾回收程序, 至于垃圾回收程序运不运行, 什么时候运行, 都是无法控制的。
    (3) :程序员可以通过设置对象为 null(后面会讲到)来标示某个对象不再被需要了,这只是表示这个对象可以被回收了,并不是马上被回收。

四。Java 的安全机制

  (1) :第一关:编写的代码首先要被编译成为 class 文件,如果代码写得有问题,编译期间就会发现,然后提示有编译错误,无法编译通过。
  (2) :第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网络资源类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。
  (3) :第三关:类装载后,在运行前,还会进行字节码校验,以判断你的程序是安全的。
  (4) : 第四关: 如果你的程序在网络上运行, 还有沙箱 (Sand Box) 的保护, 什么是沙箱呢?就是如果你的程序没有获得授权, 只能在沙箱限定的范围内运行, 是不能够访问本地资源的,从而保证安全性。

五。 path、classpath、JAVA_HOME 各自的含义和配置方式

  PATH :提供给操作系统寻找到 Java 命令工具的路径。通常是配置到 JDK 安装路径in
  JAVA_HOME :提供给其它基于 Java 的程序使用, 让它们能够找到 JDK 的位置。 通常配置到 JDK 安装路径。注意:这个必须书写正确,全部大写,中间用下划线。
  CLASSPATH :提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。

原文地址:https://www.cnblogs.com/draenei/p/4764970.html