Java面试题基础第六天

一、Java面试题基础第六天

1.Java创建对象有几种方式?

Java创建对象有以下几种方式:

用new语句创建对象。

使用反射,使用Class.newInstance()创建对象。

调用对象的clone()方法(浅克隆)。

运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法(深克隆)。

2.说说类实例化的顺序

Java中类实例化顺序:

  1. 静态属性,静态代码块。(这是在类对象加载的时候就在就加载)
  2. 普通属性,普通代码块。
  3. 构造方法。

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修饰的类不能被继承

你可能感兴趣的:(java,开发语言,面试)