1.关于堆空间和栈空间
局部变量放栈空间
new 出来的对象 放堆空间
下面式例中 左边是局部变量 右边是new出来新对象
堆空间需要主动释放(例如像C++)
java不需要堆空间主动释放 因为里面有垃圾回收机制
垃圾回收机制 就是看有没有引用指向该变量的
垃圾回收不会主动去回收 主动回收需要写代码 System.gc()
2.java里面equals和==区别
java里面 object1==object2 是直接比较内存地址是否相等
比较可以自定义方法相等方法 使用 equals
3.关于优化的一些小技巧
尽可能使用位运算 少使用浮点预算
移位运算效率特别高
// 新容量为旧容量的1.5倍 这里进行移位运算 因为这样方法运算逻辑比较快 int newCapacity = oldCapacity + (oldCapacity >> 1);
3.关于java泛型
所以对象都继承自java.lang.object对象
泛型只能放对象类型
4.java抽象类和内部类
proteced 代表只能子类使用
内部类只能类里面使用 并且一般都设置为static
抽象类可以不实现接口 而交给子类去实现
抽象类不可以被创建也就是无法对外可见的
抽象类负责抽取一些公共方法然后让子类继承就行了
5.关于java继承和组合区别
继承的话所有方法都会被继承
而组合可以选择性的继承