构造方法:就是类构造对象时调用的方法,主要用来实例化对象。 抽象:方法功能声明相同,但方法功能主体不同,这时,将方法声明抽取出,那么,此方法就是一个抽象方法。
对象位于堆内存中 声明能引用对象的实质是声明位于栈中,其在栈中保留了堆中对象的实际地址
对象位于堆内存中 声明能引用对象的实质是声明位于栈中,其在栈中保留了堆中对象的实际地址
报错方式:
当对象没有任何引用与之相关联的时候,对象成为垃圾。
对于垃圾对象系统并不主动的释放对象所占的内存资源,而是在资源不够的请况下才可能进行释放; 通过System.gc()方法提醒系统进行资源释放。
可以重写 finalize方法,当 finalize方法被调用的时候,对象被释放。
final关键字可以用来修饰引用、方法和类。
修饰引用: 1.如果引用为基本数据类型,则该引用为常量,该值无法修改。 2.如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。 3.如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
修饰方法: 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
修饰类: 当用final修改类时,该类成为最终类,无法被继承。
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
默认带上class后缀
DE
运行结果
