一、谈谈你对Java平台的理解

Java平台宣称的"write once,write anywhere"即所谓的书写一次,到处运行。这种机制是并不是说Java语言本身具有这种神奇的功能,Java源程序经过Javac编译过后的字节码文件是不能在计算机上直接运行的,之所以能运行是因为JVM在Java程序和计算机之间充当了连接的桥梁,JVM会将
字节码文件翻译成为计算机可以识别的机器码文件,JVM的翻译过程是解释性的:Java字节码文件首先被加载到计算机内存中,然后读出一条指令,翻译一条指令,执行一条指令,这个过程称为解释执行。与解释执行相对应的是编译执行,编译执行会通过编译器将我们输入的所有执行进行编译,
然后一次性的翻译成计算机可以识别的机器码。这两种不同的编译方式各有利弊,解释执行编译时间短,但是执行效率相对较低,编译执行执行效率高但是编译时间长。但是常见的JVM,比如我们熟悉的Oracle JDK提供的Hotspot JVM,都提供了JIT(Just-In-Time)编译器,JIT编译器可以在程序运行时将热点代码翻译成机器码(调用计数器和回边计数器)来提高执行效率,这样其实Java就是混合执行而不是解释执行了。

Java语言另外一个具有代表性的特征就是GC(Garbage Collector)回收机制,这让大部分情况下程序员都不需要自己操心内存的分配和回收。常见的垃圾回收算法有:标记清除算法、标记整理算法、复制算法。常见的垃圾收集器有Serial收集器(复制算法)、Serial Old收集器(标记-整理算法)、ParNew收集器(复制算法)、Parallel Scavenge收集器(复制算法)、Parallel Old收集器(复制算法)、CMS收集器(标记整理算法)。

Java语言的基本特征是封装、继承、多态,是面向对象的语言,支持泛型等特点。

Java类库丰富,如utils包、IO/NIO、并发JUC包、安全包以及海量的第三方类库,比如Apache、Guava等类库。Jdk中提供了多种诊断工具:如jmap、jstack、jconsole等可以帮助我们排查问题。

你可能感兴趣的:(一、谈谈你对Java平台的理解)