16. 匿名对象是什么?应用场景是什么?
匿名对象就是没有名字的对象,由于没有指向,所以效率较高一些。
应用场景:
1、调用方法,但是仅仅只限调用一次而已
2、匿名对象用作实际参数传递
17. 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项是什么?
构造方法的作用是初始化数据
特点:
名称和类名一致,并且没有返回值类型的修饰和返回值
注意:
如果我们没有给构造方法,系统将给出一个无参构造方法;
如果我们给出了构造方法,系统将不再提供构造方法
18. 给成员变量赋值有几种方式?
1、通过set/get方法
2、通过带参构造
19. 方法重写和方法重载的区别?重载可以改变返回值类型吗?
方法重写:
子类中出现和父类中一模一样的方法声明的方法
方法重载:
同一个类中,出现方法名相同,参数列表不同的方法
跟返回值无关
重载可以改变返回值类型,因为他跟返回值无关。
20. static关键字是什么?有什么特点?
static关键字:
是静态的意思,可以修饰类中成员变量和成员方法
静态的特点:
随着类的加载而加载、优先与对象而存在、被所有对象所共享、可以通过类名.静态的内容调用
21. this和super的区别,以及应用场景?
this : 当前类的引用对象。谁调用代表谁
super: 父类的存储空间标识。可以理解为父类对象,谁调用代表谁父亲
应用场景:
1、成员变量
this.成员变量 本类的成员变量
super.成员变量 父类的成员变量
2、构造方法
this(...) 本类的构造方法
super(...) 父类的构造方法
3、成员方法
this.成员方法() 本类的成员方法
super.成员方法() 父类的成员方法
22. 代码块是什么?代码块的分类有哪些及每种代码块的作用是什么?
用 { } 括起来的代码,就叫代码快
分为:
1、局部代码快: 就是在方法中用 { } 括起来的代码
作用:
限定变量的生命周期,提高效率
2、构造代码快:在类中,方法外。用 { } 括起来的代码
作用:
把所有构造方法中相同的内容抽取出来,定义到构造代码块中,将来在调用构造方法的时候,会去自动调用构造代码块,构造代码快优先于构造方法
3、静态代码快:在类中、方法外。用 { } 括起来的代码,只不过加了static修饰
作用:
随着类的加载而加载,而且只加载一次的代码
23. 一个类的实例化过程有哪些步骤?
Student s = new Student(); 在内存中到底执行了哪些步骤。
1、加载Sutdent.class文件进内存(类加载器)
2、在栈内存为 s 变量申请一个空间
3、在堆内存为Student对象申请空间
4、对类中的成员变量进行默认初始化
5、对类中的成员变量进行显示初始化
6、有构造代码块就先执行构造代码块,如果没有,则省略
7、执行构造方法,通过构造方法对对对象数据进行初始化
8、堆内存中的数据初始化完毕,把内存值复制给 s 变量
24. 继承是什么?继承的好处是什么?Java中的继承特点是什么?
继承:把多个类中相同的内容提取出来,定义到一个类中,然后让这多个类和这个类产生一个关系,这多个类就具备该类的数据了,这种关系叫:继承。
好处:
提高代码的复用性,提高了代码的维护性,让类与类之间产生了一个关系,是多态的前提
特点:
Java中类只能够单继承,不能够多继承,但是可以多层继承
25. 方法重写和重载有什么区别?重载可以改变返回值类型吗?
方法重写:子类中出现和父类一模一样的方法声明的方法
方法重载:同一个类中,出现的方法名相同,参数列表不同的方法
重载可以改变返回值类型,因为跟返回值无关
26. 子父类中构造方法的执行有什么特点?为什么要这样?
子类构造方法的执行,首先会去执行父类的构造方法
因为子类中可能直接访问了父类的数据,父类的数据要优先于子类的数据进行初始化
27. 静态代码块,构造代码块,构造方法的执行顺序是什么?
静态代码块 -- 构造代码块 -- 构造方法
28. final关键字是什么,可以修饰什么,有什么特点?
final关键字:是最终意思,可以修饰类、方法、变量。
修饰类:类不可以被继承。
修饰方法:方法不可被重写
修饰变量:变量为常量。
29. 多态是什么,前提是什么?
多态:对象在不同时刻表现出来的多种状态。是一种编译时期状态和运行时期状态不一致的现象
成员变量:编译看左边,运行看左边。
成员方法:编译看左边,运行看右边。因为,普通成员方法可以重写,变量不可以。
静态方法:编译看左边,运行看左边。
前提:
类与类之间要有继承关系。要有方法的重写。父类引用指向子类对象
30. 多态的好处及弊端?
好处:提高了程序的可维护性(前提要有继承保证),和扩展性
弊端:不能使用子类的特有功能
|
|