博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈你对Java平台的理解?
阅读量:3897 次
发布时间:2019-05-23

本文共 841 字,大约阅读时间需要 2 分钟。

java的宣传口号:Write once, run anywhere,我认为这是大家对Java的第一印象

  1. 那么谈谈你对Java 平台有什么看法呢?

    Java 本身是一种面向对象的语言,最显著的特性有两个方面:一次编译到处运行 和 垃圾回收机制。一次编译、到处运行”说的是Java语言跨平台的特性,Java的跨平台特性与Java虚拟机的存在密不可分,可在不同的环境中运行。比如说Windows平台和Linux平台都有相应的JDK,安装好JDK后也就有了Java语言的运行环境。并不是说Java语言可以跨平台,而是在不同的平台都有可以让Java语言运行的环境而已,所以才有了Java一次编译,到处运行这样的效果。另外一个就是垃圾回收机制,Java 通过垃圾收集器(Garbage Collector)回收分配的内存,虽然也带来了一些额外开销,但降低了开发过程中内存回收的难度,也降低内存泄露出现的概率。并且合理的分代策略,提高了内存使用率
    (什么是分代策略:https://www.cnblogs.com/fangfuhai/p/7206944.html )

  2. “Java 是解释执行”,这句话正确吗?

    对于“Java 是解释执行”这句话,这个说法不太准确。我们开发的Java 的源代码,首先是通过Javac 编译器的编译,成为字节码(bytecode),然后,JVM的类加载器会加载字节码文件进入内存。然后,会通过JVM执行引擎中的解释器将字节码转换成为最终的机器码。但是常见的JVM中,比如Oracle JDK 提供的Hotspot JVM,采用的是解释器+JIT编译器的混合执行引擎。
    JIT即时编译器,是利用了代码的热点探测技术,将出现频率较高的热点代码,翻译成机器指令在codeCache缓存起来。后续遇到直接从缓存找,大大提高了执行效率。所以热点代码就属于编译执行,而不是解释执行了。而解释器(interpreter)是逐条读入,逐条解释运行,所以解释器处理的代码才是解释运行

你可能感兴趣的文章
[小技巧] Mac OS X上键盘的键位重映射
查看>>
Java对Oracle中Clob类型数据的读取和写入
查看>>
Spring中Quartz的配置
查看>>
MyBatis 防止 % _ sql 注入攻击 解决方法
查看>>
plsql oracle 无法解析指定的连接标识符
查看>>
Linux后台开发应该具备技能
查看>>
Eclipse Tomcat 无法添加项目
查看>>
SVN更新失败 解决方法
查看>>
关于Java的File.separator
查看>>
linux定时任务的设置
查看>>
MySQL 5.7 完全傻瓜安装教程 图文
查看>>
Hibernate框架概述&SSH框架工作原理以及流程
查看>>
Aapche POI txt 导入excel
查看>>
C语言 ## __VA_ARGS__ 宏
查看>>
C++项目中的extern "C" {}
查看>>
(转)C++中extern “C”含义深层探索
查看>>
【日常小记】linux中强大且常用命令:find、grep
查看>>
Linux多线程编程(不限Linux)
查看>>
C/C++内存泄漏及检测
查看>>
C中的继承和多态
查看>>