-
垃圾回收机制算法:(1)引用计数法 (2)引用可达法
https://www.cnblogs.com/andy-zcx/p/5522836.html -
年轻待&&年老代:可以这么理解,年轻代存放的是一些生命周期较短的,在短时间内可能被回收的对象和一些新建的对象,而年老区存放的则是一些生命周期较长的对象。当年轻代存放满时,会存到年老代。两个区都存满,则触发一次Full GC,释放年轻代和年老代的一部分区域
**注意:**虽然Java有了GC(垃圾回收器)但是依然有可能内存泄漏 -
this关键字:this通常用于对成员变量进行初始化,在一个构造方法中也可以使用this,但必须要放在第一行,this不能使用static来修饰,static修饰的在方法区
4.静态方法里可以使用静态变量,静态方法,但是无法调用非静态的变量和方法;静态方法不需要出现this关键字
5.package命名规则:域名倒着写 jd.com->com.jd
6.java.long 中的包不需要导入就可以随意使用,比如Math,String,System……
7.CTRL + T看类的继承结构
8.instanceof可以查看对象是不是属于该类
9.构造方法的第一句都是super(),不管你写没写,都先调用父类的构造方法
public class BasicSuper {
public static void main(String[] args) {
Child c = new Child();
}
}
class Father{
public Father(){
super();
System.out.println("这是父类的构造方法啊");
}
}
class Child extends Father{
public Child(){
super();
System.out.println("这是子类的构造方法啊");
}
}
//child调用father,father调用object,
//生成object对象,在生成father对象,最后生成child对象
10.属性通常设为private;一般方法通常设为public
11.final关键字
- final关键字修饰变量:变量变常量,只能被赋一次值
- final关键字修饰方法:方法不能被子类重写,但是可以被重载
- final关键字修饰类:不能被继承
12.数组初始化 - 静态初始化
int[] arr01 = {1,2,3,4}
People[] arr02 = {new People("Lona",22),
new People("Ming",21),
new People("Kimi",6)}
- 动态初始化:通过下标进行初始化 arr01[0] = 12;
- 默认初始化:int 型,默认为0;double:0.0;String:null
13.foreach:循环,用于读取数组中的数值,不允许修改
for (String i:arr01){ System.out.println(i); }
14.abstract:抽象方法没有方法体;包含抽象方法的类是抽象类;抽象类中可以由普通方法;抽象类不能被实例化,即不能new,只能被继承
Java中小类型可以自动转化成大类型,大类型到小类型的通过强制类型转化
类类型:
//向上转型,将子类引用的对象转化成父类的对象
Animal a = new Dag();
//向下转型,将父类的应用转化成子类的对象
Dog d = (Dog) a;
https://www.cnblogs.com/fickleness/archive/2013/06/21/3149011.html
向上转化:子类的方法丢失
向下转化:如果本身这个引用是父类类型的,向下转化,存在安全性问题,编译不出错,运行出错;若这个父类对象指向子类,向下转化,是安全的
15.接口interface:接口是抽象的;成员变量默认都加上public static final,即只能定义常量,成员方法默认的都加上public abstract,即只能定义抽象方法
16.Java中接口的多继承(Java中类没有多继承)
单一继承:一个类的直接父类只能有一个
多重继承:一个类的直接父类可以有多个(Java类不支持)