Java面试题库:语法中会出现的相关面试题(组图)

介绍

大家好,我是Java面试题库的裤姐。今天的文章是 JavaSE 系列的第四篇文章。主要总结了JavaSE语法中会出现的相关面试题。后续我会按照第一篇文章开头的知识线走。不断总结,每天都做!如果我能每100天做一次构造方法没有返回类型,我希望你能跟着它,在100天内养成一个好习惯。

问:

过载和覆盖有什么区别?

方法重载和覆盖都是实现多态的两种方式。区别在于前者实现了编译时多态,而后者实现了运行时多态。

重载发生在一个类中构造方法没有返回类型,同名的方法如果有不同的参数列表(不同的参数类型,不同的参数数量,或两者兼有),则认为它们被重载;

覆盖发生在子类和超类之间。重写要求子类的重写方法和超类的重写方法具有相同的返回类型,比超类的重写方法更易访问,不能比超类的重写方法更易访问。重写方法声明更多异常(理查德替换原则)。

重载对返回类型没有特殊要求。

方法重载规则:

方法覆盖的规则:

问:

可以重写构造函数吗?可以超载吗?可以显式调用构造函数吗?

不能被覆盖,但可以重载

不能显式调用,构造函数不能作为普通方法调用。它只会在创建对象时被系统调用。

问:

解释静态变量和实例变量的区别?

静态变量:

它是一个被static修饰符修饰的变量,也称为类变量。它属于一个类,不属于该类的任何对象。无论一个类创建多少对象,内存中的静态变量都只有一份;

实例变量:

必须依赖于一个实例,你需要创建一个对象,然后通过该对象访问它。静态变量允许多个对象共享内存。

问:

图片[1]-Java面试题库:语法中会出现的相关面试题(组图)-老王博客

什么是隐式转换?什么是显式强制转换?

显式转换是一种强制类型转换,它强制将大类型的数据分配给小类型的数据;

隐式转换是自动类型转换,大范围的变量可以接受小范围的数据;

问:

什么是拆包?

拆箱:将包装类型转换为原始数据类型

装箱:将原始数据类型转换为包装类型

问:

break 和 continue 和有什么不一样?

break 和 continue 都是用于控制循环的语句。

break 用于完全结束一个循环,跳出循环体执行循环后面的语句。

continue 用于跳过此循环并执行下一个循环。

问:

内部类和静态内部类的区别?

内部类:

1、内部类中的变量和方法不能声明为静态的。

2、内部类实例化:B是A的一个内部类,实例化B:AB b = new A().new B()。

3、内部类可以引用外部类的静态或非静态属性和方法。

静态内部类:

1、静态内部类属性和方法可以声明为静态或非静态。

2、实例化静态内部类:B是A的静态内部类,AB b = new AB()。

3、静态内部类只能引用外部类的静态属性和方法。

比较两者:

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论