1.对于jre,jdk,jvm,api,sdk的解释:
sdk:软件开发工具包
jdk:Java开发工具包
jre:Java运行时环境
api:应用程序编程接口
2.jdk包含:{
javalanguage tools(javac java javadoc),
jre(lib,jvm){包含rt.jar: 包含了api中的class字节码}
}
3.环境变量的配置
javahome:jdk的安装目录
path:Java命令路径(java javac javadoc)
classpath:类加载路径
4.对于Javac命令的理解
javac -cp bin -d bin;
java编译命令 指定类加载路径 编译后的.class文件放在哪里
5.Java的优秀特性
面向对象(多态,继承,封装)
基于C++但是没有指针
一次编译,处处运行
支持多线程
安全性较高
6.Java 程序的运行
编辑:源代码->字节码
运行:类加载器->字节码验证->解释执行或即时编译(JIT)
类加载的双亲委托机制:boot -> ext-> app
问题:类加载器是不是在jvm 中?
7.java字节码验证的是什么:代码兼容JVM,类型转换正确,参数类型一致,不可以堆栈溢出,不可破坏系统完整性
8.Java中的三个顶级元素:Import package class
9.Java中的垃圾回收机制
不同于c++,Java中没有释放内存的关键字,也没那种写法
gc:垃圾回收器
优先级不高的线程,回收没有任何指向的内存,无用的对象内存
System.gc();
标记清扫法
内存搬移法