java基础知识---面向对象(二)
1static特点?
1、随着类的加载而加载。
2、优先于对象存在。
3、资源共享。
解释:被static修饰的内容,能被该类下所有的对象所共享。
问:什么时候使用静态?
当一个内容,是被该类下所有的对象 所共享的时候,就可以考虑使用静态。
总结:共性用静态,特性用非静态。
4、静态内容可以通过 类名. 的形式调用(推荐),
也可以通过 对象名. 的形式调用。
注意事项:
1、静态方法中是没有this关键字的。
2、静态方法只能(直接)访问静态成员变量和静态成员方法。
总结:静态只能直接访问静态。
静态方法如果想使用非静态的内容,必须先创建对象,然后才能使用。
2.给成员变量赋值两种方法 的特点
构造方法:主要作用是用来创建对象的,赋值只是一个捎带的动作。
set方法:只能用来赋值。
3.静态方法没有this.why?
没有,因为静态方法是随着类的加载而加载,优先于对象存在.
4.生成1-100间的随机数(两种)
( int)(Math.random()*100) + 1
Random r=new Random();
int x=r.nextInt(100)+1;宝座不包右所以+1
5.代码块分类?
局部代码块:
定义在局部位置,作用是让变量尽可能早的从内存中消失,节约内存,提高效率。
构造代码块:
定义在成员位置。
作用:
里边存储的是所有构造方法的共性内容,因为它是优先于构造方法执行的,从而来提高代码的复用性和编写效率。
静态代码块:
被static修饰的代码块。
作用:一般是用来加载驱动的,因为它是随着类的加载而执行。
特点:静态代码块只执行一次(类文件只加载一次的情况下)。
同步代码块:(多线程的时候讲)
被synchronized修饰的代码块。
6.代码块的面试问题(执行顺序)
父类静态代码块,子类静态代码块,父类构造代码块,父类构造方法,子类构造代码块,子类构造方法
7.继承的好处?
A:复用性。
B:维护性。
C: 让类与类之间产生关系,是多态的前提。
8.高内聚,低耦合?
耦合:类与类之间的关系。
内聚:类自己独立处理问题的能力。
9.继承特点:类与类;类与接口
类与类:继承。可以单继承,不能多继承,但是可以多层继承。
类与接口:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时,实现多个接口。
接口与接口:继承。可以单继承,也可以多继承。
10.看顶层用底层
11.使用局部变量遵循的原则?
使用变量遵循一个“就近原则”。局部位置有就使用,没有就去本类的成员位置找,有就使用;没有就去父类的成员位置找,有就使用,没有就报错.
12.子类所有的构造方法默认都去访问了父类的 无参构造。为什么?(构造方法的第一句都是super)
用于子类对象访问父类数据前,对父类数据进行初始化。
13.继承中的构造关系
第一次:父静,子静,父类的构造代码块,父类的构造方法,子类的构造代码块,子类的构造方法。
第二次:父类的构造代码块,父类的构造方法,子类的构造代码块,子类的构造方法。
14.final,finally,finalize区别
final 修饰类:不能被继承,但是可以继承其他类。
修饰变量:其实是一个常量。
一般和public static共用。
问:public static final 他们三者之间有无顺序关系?
没有顺序关系,但是一般写成:public static final
修饰方法:不能被子类重写。
finally: 关键字:
特点:
被finally修饰的内容,一定会执行。
特殊情况:还没有执行到finally的时候,JVM已经退出了。
作用:
一般是用来释放资源的。
finalize:是一个方法,当对象不存在时,有gc来调用对象的垃圾回收机制.