摘要:
类加载器 运行时数据区 执行引擎 执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令 JVM架构图 阅读全文
摘要:
缺点 破坏封装:由于反射允许访问私有字段和私有方法,所以可能会破坏封装而导致安全问题。 性能开销:由于反射涉及到动态解析,因此无法执行 Java 虚拟机优化 应用场景 开发通用框架:像 Spring,为了保持通用性,通过配置文件来加载不同的对象,调用不同的方法。 动态代理:在面向切面编程中,需要拦截 阅读全文
摘要:
值传递:当一个参数按照值的方式在两个方法之间传递时,调用者和被调用者其实是用的两个不同的变量——被调用者中的变量(原始值)是调用者中变量的一份拷贝,对它们当中的任何一个变量修改都不会影响到另外一个变量 引用传递: 当一个参数按照引用传递的方式在两个方法之间传递时,调用者和被调用者其实用的是同一个变量 阅读全文
摘要:
// 手动装箱 Integer integer = new Integer(10); // 手动拆箱 int i = integer.intValue(); // 自动装箱,通过 Integer.valueOf() 完成 Integer integer = 10; // 自动拆箱,通过 Intege 阅读全文
摘要:
// Cloneable 接口是一个标记接口,用来表示某个功能在执行的时候是合法的 public interface Cloneable { } 没有引用类型字段时 class Writer implements Cloneable { private int age; private String 阅读全文
摘要:
public final class StringBuffer extends AbstractStringBuilder implements Serializable, CharSequence { public StringBuffer() { super(16); } public sync 阅读全文
摘要:
当调用 intern() 方法时,如果字符串池中已经存在相同内容的字符串,则返回字符串池中的引用;否则,将该字符串添加到字符串池中,并返回对字符串池中的新引用。可以确保所有具有相同内容的字符串共享相同的内存空间 对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s. 阅读全文
摘要:
String类的声明 // final不可被继承 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { } 比较字符串内容 public boolean equals 阅读全文
摘要:
StringBuilder的append() String s1 = "ha"; String s2 = "xi"; // 编译的时候被替换成 new StringBuilder(s1).append(s2).toString(); System.out.println(s1 + s2); Stri 阅读全文
摘要:
new String()创建了几个对象 // 使用new,每次都会创建一个新的对象 String s = new String("hh"); 先在位于堆中的字符串常量池中查找是否已经存在hh字符串对象 如果有,直接在堆中创建一个hh字符串对象,然后把这个堆中新创建的对象地址返回给栈中的变量s 如果没 阅读全文