一、Java面试题基础第六天
1.Java创建对象有几种方式?
Java创建对象有以下几种方式:
用new语句创建对象。
使用反射,使用Class.newInstance()创建对象。
调用对象的clone()方法(浅克隆)。
运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法(深克隆)。
2.说说类实例化的顺序
Java中类实例化顺序:
- 静态属性,静态代码块。(这是在类对象加载的时候就在就加载)
- 普通属性,普通代码块。
- 构造方法。
3.equals和==有什么区别?
-
对于基本数据类型,==比较的是他们的值。基本类型是没equal方法。
-
对于对象类型,如果不重写equal , equal,== 他们都是比较的对象存储的地址,
重写的话可以按逻辑去比较(就比如String类equal比较的是字符串里面的值)
4.常见的关键字有哪些?
static
static可以用来修饰类的成员方法、类的成员变量。
static变量就是静态变量,静态变量和非静态变量,是随着类对象的创建而创建的,静态变量是属于类的,非静态变量是在对象创建的时候创建的,是属于每一个实例的,在内存中有很多拷贝。静态变量有且只有一份。
final
1.基本类型被final修饰,则是常量,不能修改,在编译的时候,就已经加载好了,对象用final修饰,对象不能被修改,对象的属性可以被修改。
2.final修饰的方法 ,子类不可以进行重写
3.final修饰的类不能被继承
this
this实在类的内部使用,this代表本类,this用来区分局部变量和成员变量,this.属性名,表示这个属性名是类的属性
super
super 关键字用于在子类中访问父类的变量和方法。
5.final, finally, finalize 的区别
final,用于修饰属性、方法和类,属性赋值就不能重新赋值,方法不可被覆盖,类不可被继承
finally 是异常处理语言,一般以try-catch-finally出现,finnally 总是会被执行
finalize 是Object 类的一个方法,一般情况下finalize 方法,在回收对象时,finallize 方法会被执行,但是jvm 不保证一定执行这个方法,在方法中对象引用其他对象内存,可以能时对象复活
6.Java中的finally一定会被执行吗?
答案是不一定。
有以下两种情况finally不会被执行:
- 程序未执行到try代码块
- 如果当一个线程在执行 try 语句块或者 catch 语句块时被打断(interrupted)或者被终止(killed),与其相对应的 finally 语句块可能不会执行。还有更极端的情况,就是在线程运行 try 语句块或者 catch 语句块时,突然死机或者断电,finally 语句块肯定不会执行了
7. final关键字的作用?
1.基本类型被final修饰,则是常量,不能修改,在编译的时候,就已经加载好了,对象用final修饰,对象不能被修改,对象的属性可以被修改。
2.final修饰的方法 ,子类不可以进行重写
3.final修饰的类不能被继承

被折叠的 条评论
为什么被折叠?



