Java面试知识点解析-04 —— Java基础知识点
借参加过的多场Java开发面试,应聘岗位均为Java开发方向,在不断的面试中,又仔细对Java知识点进行复习和总结,也算是重新学习一下Java吧。
推荐收藏链接:Java 面试知识点解析
15)Java 对象初始化顺序?
答:不考虑静态成员的初始化,调用一个对象的构造函数时,程序先调用父类的构造函数(可以通过super关键字指定父类的构造函数,否则默认调用无参的构造函数,并且需要在子类的构造函数的第一行调用),之后静态成员变量的初始化函数和静态初始化块则按照在代码当中的顺序执行,成员变量如果没有指定值的话则赋予默认值,即基本数据类型为0或false等,对象则为null;最后调用自身构造函数。
-
我们可以写一段程序来对初始化顺序进行一个简单的验证:
public class Derive extends Base { private Member m1 = new Member("Member 1"); { System.out.println("Initial Block()"); } public Derive() { System.out.println("Derive()"); } private Member m2 = new Member("Member 2"); private int i = getInt(); private int getInt() { System.out.println("getInt()"); return 2; } public static void main(String[] args) { new Derive(); } } class Base { public Base() { System.out.println("Base()"); } } class Member { public Member(String m) { System.out.println("Member() "+m); } }
程序的输出结果是:
Base()
Member() Member 1
Initial Block()
Member() Member 2
getInt()
Derive()
16)true、false 与 null 是关键字吗?
答:不是。true、false 是布尔类型的字面常量,null 是引用类型的字面常量。
面试官:那 goto 与 const 呢?
答:是。goto 与 const 均是 Java 语言保留的关键字,即没有任何语法应用。
17)exception 和 error 有什么区别?
答:exception 和 error都是 Throwable 的子类。exception 用于用户程序可以捕获的异常情况;error 定义了不期望被用户程序捕获的异常。
exception 表示一种设计或设计的问题,也就是说只要程序正常运行,从不会发生的情况;而 error 表示回复不是不可能但是很困难的情况下的一种严重问题,比如内存溢出,不可能指望程序处理这样的情况。
18)throw 和 throws 有什么区别?
答:throw 关键字用来在程序中明确的抛出异常,相反,throws 语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。扫描二维码加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。
在这里插入图片描述