23:代码块是什么?代码块的分类有哪些及每种代码块的作用是什么?
用{}括起来的代码,就叫代码快。
分为:
A:局部代码快: 就是在方法中用{}括起来的代码。作用是限定变量的生命周期,提高效率。
B:构造代码快:在类中,方法外。用{}括起来的代码。作用是把所有构造方法中相同的内容抽取出来,
定义到构造代码块中,将来在调用构造方法的时候,会去自动调用构造代码块。构造代码快优先于构造方法。
C:静态代码快:在类中、方法外。用{}括起来的代码。只不过加了static修饰。
作用是:随着类的加载而加载,而且只加载一次的代码。
24:一个类的实例化过程有哪些步骤?(*面试题)
Student s = new Student(); 在内存中到底执行了哪些步骤。
1,加载Sutdent.class文件进内存(类加载器)
2,在栈内存为 s 变量申请一个空间
3,在堆内存为Student对象申请空间
4,对类中的成员变量进行默认初始化
5,对类中的成员变量进行显示初始化
6,有构造代码块就先执行构造代码块,如果没有,则省略
7,执行构造方法,通过构造方法对对对象数据进行初始化
8,堆内存中的数据初始化完毕,把内存值复制给 s 变量
26:继承是什么?继承的好处是什么?Java中的继承特点是什么?
继承就是:把多个类中相同的内容提取出来,定义到一个类中。
然后让这多个类和这个类产生一个关系,这多个类就具备该类的数据了。
这种关系叫:继承。
继承的好处是:提高代码的复用性,提高了代码的维护性,让类与类之间产生了一个关系,是多态的前提。
继承的特点是:Java中类只能够单继承,但是可以多层继承。
27:方法重写和重载有什么区别?重载可以改变返回值类型吗?(*面试题)
方法重写:子类中出现和父类一模一样的方法声明的方法。
方法重载:同一个类中,出现的方法名相同,参数列表不同的方法。
重载可以改变返回值类型,因为跟返回值无关。
28:子父类中构造方法的执行有什么特点?为什么要这样?
子类构造方法的执行,首先会去执行父类的构造方法。
因为子类中可能直接访问了父类的数据,父类的数据要优先于子类的数据进行初始化。
29:静态代码块,构造代码块,构造方法的执行顺序是什么?
静态代码块 -- 构造代码块 -- 构造方法
30:final关键字是什么,可以修饰什么,有什么特点?
final关键字:是最终意思,可以修饰类、方法、变量。
修饰类:类不可以被继承。
修饰方法:方法不可被重写
修饰变量:变量为常量。
31:多态是什么,前提是什么?
多态:对象在不同时刻表现出来的多种状态。是一种编译时期状态和运行时期状态不一致的现象。
成员变量:编译看左边,运行看左边。
成员方法:编译看左边,运行看右边。因为,普通成员方法可以重写,变量不可以。
静态方法:编译看左边,运行看左边。
前提:类与类之间要有继承关系。要有方法的重写。父类引用指向子类对象。 |
|