一、字符串比较最好用 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加载。