
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java编程开发语言是目前大多数软件开发程序员都在学习和应用的一个编程开发语言,而本文我们就通过案例分析来简单了解一下,Java编程基础知识分享。
Java是一种面向对象的语言,有两个明显特性:
跨平台能力:一次编写,到处运行(Writeonce,runanywhere);
垃圾收集:
Java通过字节码和Java虚拟机(JVM)这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现「一次编译,到处执行」的基础。
Java通过垃圾收集器(GarbageCollector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。
常见的垃圾收集器,如SerialGC、ParallelGC、CMS、G1等,对于适用于什么样的工作负载好也心里有数。
JVM、JRE、JDK关系
码老湿,能说下JVM、JRE和JDK的关系么?
JVMJavaVirtualMachine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。
JREJavaRuntimeEnvironment包括Java虚拟机和Java程序所需的核心类库等。
核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDKJavaDevelopmentKit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。
所以安装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等。
Java是解释执行么?
码老湿,Java是解释执行的么?
这个说法不太准确。
我们开发的Java的源代码,先通过Javac编译成为字节码(bytecode),在运行时,通过Java虚拟机(JVM)内嵌的解释器将字节码转换成为终的机器码。
但是常见的JVM,比如我们大多数情况使用的OracleJDK提供的HotspotJVM,都提供了JIT(Just-In-Time)编译器。
也就是通常说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。
采用字节码的好处
什么是字节码?采用字节码的好处是什么?
字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。
采用字节码的好处:
众所周知,我们通常把Java分为编译期和运行时。这里说的Java的编译和C/C++是有着不同的意义的,Javac的编译,编译Java源码生成“.class”文件里面实际是字节码,而不是可以直接执行的机器码。Java通过字节码和Java虚拟机(JVM)这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现“一次编译,到处执行”的基础。