关于JVM的一些冷知识

原文链接: https://juejin.im/post/5ca325e26fb9a05e605e32cb


(1) Java加载类的一般顺序:

1.静态属性,静态方法声明,静态块。

  2.动态属性,普通方法声明,构造块。

3.构造方法。

当加载一个类时,JVM会根据属性的数据类型第一时间赋默认值(一举生成的)。然后再进行静态属性初始化,并为静态属性分配内存空间,静态方法的声明,静态块的加载,没有优先级之分,按出现顺序执行,静态部分仅仅加载一次。至此为止,必要的类都已经加载完毕,对象就可以被创建了

(2) Jvm其实有很多种, sun的叫hotspot,,其他公司也做过jvm,比如IBM的r9,Apple的jvm等,所以jvm主要是整合淘汰掉这些做得不好的jvm,整合成一个统一的openjdk。

(3)jvm里面有js引擎你知道吗?,因为java和javascript虽说表面都说他们两个没有任何关系,实际上javascript为什么含有java这四个字母可有大原因呦,比如js的版权和商标都控制在oracle手里,oracle对于js的支持甚至超过其对java的支持,并且喜欢捆绑销售.

jvm里面除了js engine以外还有一个浏览器排版引擎webkit(google chome的内核)。

(4)java支持绝大多数脚本语言,你能叫得上名字的脚本语言,几乎都可以在jvm上执行,比如常见的js,ruby,python,甚至php,lua,只不过除了js以外你需要找到相关的脚本引擎。


你可能感兴趣的:(关于JVM的一些冷知识)