一、Java的特点:
1、是一种跨平台面向对象的语言
2、是一种与平台无关的语言,提供程序运行的解释环境
3、是一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放)
Java没有指针,只是在语法没有指针,但其实Java到处都是指针。
因此要会分析内存之中的过程,清楚了内存,基本就掌握了一切,也就不仅学会了Java,也把其他的语言搞懂了,因为所有的语言无非是经过编译器处理,在内存中挪来挪去,copy来copy去,全是这样的过程。
二、Java两种核心机制及运行过程:
1、Java虚拟机(Java Virtual Machine)
(1)Java虚拟机可以理解成一个以字节码为机器指令的CPU
(2)对于不同的运行平台,有不同的虚拟机
(3)Java虚拟机机制屏蔽了与底层运行平台的差别,实现了“一次编译,随处运行”。
“编译”与“解释”的区别:
直接编译成为操作系统认识的可执行文件的语言是编译型语言,
解释,java编译成的.class文件需要虚拟机一行一行解释给操作系统执行的
2、垃圾收集机制(Garbage collection)
(1)不再使用的内存空间应回收—垃圾收集
(2)在C/C++等语言中,由程序员负责回收无用内存
(3)Java消除了程序员回收无用内存空间的责任;提供一种系统级线程跟踪分配空间的分配情况。并在JVM清闲时,检查并释放那些课被释放的存储器空间。
(4)垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。
运行过程: