1. 简述Java从代码到运行的全过程
源文件(.java)通过使用javac命令先被编译成与硬件平台和操作系统无关的二进制代码(.class),然后通过java命令,JVM将会寻找并加载.class文件、解释字节码为指令并执行。
编写代码->编译->类装载->字节码校验->解释->运行
2. 简述虚拟机的工作机制
JVM的基本功能如下:
1)通过一个叫ClassLoader的东东寻找和加载.class文件
2)解释字节码为指令并执行,提供.class文件的运行环境
3)垃圾回收
4)提供与硬件交互的平台
JVM的体系结构如下:
1)类加载器
2)执行引擎
3)运行时数据区
3. 简述Java的垃圾回收机制
垃圾是指在运行程序的过程中,已分配的内存不再被需要,那么这些内存块对程序来说就是垃圾。
Java提供了一种系统级线程以跟踪内存分配。在JVM的空闲周期,垃圾收集线程检查并释放可被释放的内存,有效地避免内存泄露(就是在程序运行期间,所占用的内存一直往上涨,容易造成系统资源耗尽而降低性能或崩溃)
特点如下:
1)程序员不能控制,它是自动的。
2)System.gc()方法仅仅能通知垃圾回收程序,至于垃圾回收程序运不运行,何时运行都是无法控制的。
3)可设置对象为null来表明这个对象不被需要了,可回收。
4.简述Java 的安全机制
1)编译期间
2)类装载检查
3)字节码校验
4)沙箱保护(仅在网络执行的程序)
5. 简述path、classpath、JAVA_HOME各自的含义
1)path:提供给操作系统寻找到Java命令工具的路径,一般是JDK路径\bin。
2)JAVA_HOME:提供给其他基于Java的程序使用,使它们能找到JDK的位置。
3)ClassPath:提供程序在运行期间寻找所需要资源的路径,比如类、文件、图片等。