Java-书本上没有的知识-JVM详解-知识铺《一》

一、字符串比较最好用 equals

1.== 比较的是引用,不是内容

2.有时候用==是能比较内容的。

3. 如: 两个一样的不可变值,JVM会尝试引用同一个对象 。

    String a1 = "hello", a2 = "hello";

    Integer c1 = 12, c2 = 12;

    这两个例子中用到了对象池,a1==a2和c1==c2都是返回true, 引用的是同样的对象,JVM已经把两个引用都指向了同一个对象。

    如果改下代码,JVM没有把对象放到常量池里的话,==就会返回false,结果就不是想要的。这个时候得用equals了。

二、JVM类加载过程

    加载类的过程分为:

     加载: 加载、连接、验证、准备、解析

     引用: 初始化、使用、卸载

     线程任务执行完成后,既被JVM进行GC,当Class不被引用后就。

三、双亲委派模式

      这个模式是很多三年工作经验都不会被问倒的问题。

      1.java 加载类都是从高到低顺序为 BootstrapClassLoader,ExtensionClassLoader,ApplicationClassLoader三类,JVM加载类的时候都是由AppClassLoader请求他的父类ExtensionClassLoader进行加载,如果没找到,继续向上找到祖先类进行加载。只有一二级加载器都没有发现的类,才被AppClassLoader加载。

打开APP阅读更多精彩内容