摘要:
new(新建): 当程序使用 new 创建一个线程后, 该线程处于新建状态, 此时它和其它 java 对象一样, 仅仅由 JVM 为其分配内存并初始化成员变量值. runnable(可运行状态): 实际上可以细分成两种状态: ready(就绪) 和 running(运行) 状态. ready(就绪) 阅读全文
摘要:
hashCode() 和 equals() 方法的作用其实一样, 都是用来对比两个对象是否相等, 都需要自己去覆写来提高对比效率和准确度, 在向 hashSet, hashMap 等底层用 hash值 判断的集合中存值时, 被存储的对象都需要覆写这两个方法. hashCode() 方法返回一个哈希值 阅读全文
摘要:
==: 它的作用是判断两个对象的地址是不是相等. 就是判断两个对象是不是同一个对象(基本数据类型中就是比较值, 而引用数据类型就是比较内存地址). equals: 它的作用也是判断两个对象是否相等. 但它一般有两种使用情况: 类没有覆盖 equals() 方法: 跟==比较没有区别. 类覆盖了 eq 阅读全文
摘要:
为了实现对象的实例化. 子类中所有的构造函数都会默认调用父类中的无参构造函数, 因为每一个子类构造函数内第一行都有隐式的 super(); 若父类中没有无参构造函数, 那么子类的构造函数内必须通过 super 语句指定要调用的父类中的构造函数. 若子类构造函数中用 this 来指定调用子类自己的构造 阅读全文
摘要:
名字与类名相同. 没有返回值, 但不能用 void 声明构造函数. 生成类的对象时自动执行, 无需调用. 无法被子类继承. 可以重载. 如果定义了有参构造函数, 则无参构造函数将不再自动创建. 阅读全文
摘要:
接口的方法默认时 public, 所有方法在接口中不能有实现(Java 8开始接口方法可以有默认实现), 而抽象类可以有非抽象方法. 接口中除了 static, final 变量, 不能有其他表变量, 而抽象类中则不一定. 一个类可以实现多个接口, 但只能实现一个抽象类. 接口自己本身可以通过继承拓 阅读全文
摘要:
###String为什么是不可变的? String 类中使用 final 关键字修饰字符数组来保存字符串, private final char value[], 所以String对象是不可变的. ###String、StringBuffer 和 StringBuilder 的区别是什么? 可变性 阅读全文