java简介

1.java为什么能跨平台?
Java语言在执行的时候分为两步:
①编译期:将.java的源文件编译为.class的字节码
②运行期:利用jvm进行执行;
因为运行期的存在,故只要在不同的操作系统中安装对应的jvm则可以保证java程序的正常运行。
2.java语音的特征?
①高效性:java语言提供了大量的功能类库,能多代码只要简单的修改就能够轻松地运用到各个产品软件中,大大节省了开发周期
②面向对象:java语言的设局主要集中于对象及其接口,java提供了简单的类机制以及动态的接口模式.对象中封装了对象的状态变量及其相对应的方法,实现了模块化和信息的隐藏,同时子类通过集成的方式可以使用父类的方法实现了代码的重用性。
③健壮性:jvm会在编译的过程中对每个java程序进行合法的检查,已消除错误的产生,在运行的时候,如果有出乎意料的事情,也会运用异常处理机制,将抛出的异常进行相对应的处理。
④安全性:java语言之所以安全是因为他不支持指针,并提供了字节码校验机制,禁止在自己的处理空间之外破坏内存。
⑤跨平台:第一个问题的答案;
⑥并发性:java语言中内建了对多线程的支持,多线程的引入大大提升了java程序的效率;

3.java虚拟机的构造及作用?
JVM是由编译的java类组成的,其目的是为了执行java程序。虚拟机有三个主要任务:装载程序,检验程序,执行程序.、
①类加载器(类装载器)(Classloader)
程序执行时类加载器将需要的类加载.类加载器以分离的命名空间的方式来区别类是本地系统装载还是由网络远程装载来增加安全性.本地系统的类会被先加载,可以防止木马入侵。
装载所有的类后,可执行文件内存就被布局了。这个时候地址会被执行给特定的符号引用,且会创建寻找表格。因为内存的布局发生运行时,因此就JAVA解释器会限制未经授权的访问,以保护受限的代码.
②字节码校验器(byte_code)
JAVA程序在执行会被多次校验,JVM会检验字节码的格式是否有错,是否违反对象访问权限或者更改对象类型.所有源于网络的类文件都要通过字节码校验器.
校验器对程勋代码进行四遍校验,这可以保证代码符合规范并且不破坏系统的完整性.如果校验器在完成四遍可以保证代码符合规范不破坏系统的完整性.如果校验器在完成四遍校验后未返回出错信息.
类符合jvm规范的类文件格式
无访问限制异常
代码未引起操作数栈上溢出或下溢出
保证所有操作代码的参数类型的正确
③执行程序(Runtime)
源代码执行javac.exe命令编译的二进制文件后,利用java.exe来执行被编译的二进制文件.
4.Java虚拟机在编译和运行期间进行的操作步骤?
①编写代码
②编译
完成的java代码,机器不认识所写的代码需要被javac.exe编译成.class字节码文件
③类转载器CLassLoader
根据设定好的classpath路径找到对应的.class字节码文件,通过java.exe来运行.class字节码文件.类加载器功能看问题3
④字节码校验
字节码校验答案查看3
⑤解释
机器不能认识.class文件,还需要解释器进行解释,机器才能理解所表达的东西.
⑥运行
最后有运行环境中的Runtime对代码进行运行,真正实现机器我们想要运行的。

如下图
java简介_第1张图片

补充说明:
解释器和JIT运行的区别主要体现在下面两个方面:
①解释器:每扫描一行,执行一行指令,效率比较低。
②JIT代码生成器:讲真个代码一次性翻译,然后一次性运行,效率稍高。
5.java的垃圾回收?
Java虚拟机提供了一种系统县城(垃圾回收线程)赖根宗存储空间的分配情况,bingzaijava虚拟机的空闲时间,检查和释放哪些可以释放的存储空间且该程序时自动启动的.

你可能感兴趣的:(java简介)