2021版JAVA十大面试题及答案

2020-12-11 14:58:48 浏览数 (3373)

  1、String是最基本的数据类型吗?

  答:NO。Java一共又8个基础的数据类型分别为:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type),其余的都是引用类型(reference type),Java 5以后引入的枚举类型也算是一种比较特殊的引用类型。

-----------------------------------------------------------------------------------------------------------------------------------------

  2、Java有没有goto?

  答:没有。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)

-----------------------------------------------------------------------------------------------------------------------------------------

  3、&和&&的区别?

  答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null && !username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

-----------------------------------------------------------------------------------------------------------------------------------------

  4、switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int;从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型;从Java 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

-----------------------------------------------------------------------------------------------------------------------------------------

  5、数组有没有length()方法?String有没有length()方法?

  答:数组没有length()方法,有length的属性。

  String有length()方法。在JavaScript中,获得字符串的长度是通过length属性得到的,这一点容易和Java混淆。

-----------------------------------------------------------------------------------------------------------------------------------------

  6、构造器(constructor)是否可被重写(override)?

  答:构造器不能被继承,因此不能被重写,但可以被重载。

-----------------------------------------------------------------------------------------------------------------------------------------

  7、阐述静态变量和实例变量的区别。

  答:静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

-----------------------------------------------------------------------------------------------------------------------------------------

  8、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?

  答:一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员。

-----------------------------------------------------------------------------------------------------------------------------------------

  9、Java 中的final关键字有哪些用法?

  答:(1)修饰类:表示该类不能被继承;

         (2)修饰方法:表示方法不能被重写;

         (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。

-----------------------------------------------------------------------------------------------------------------------------------------

  10、数据类型之间的转换

  如何将字符串转换为基本数据类型?

  答:调用基本数据类型对应的包装类中的方法parseXXX(String)或valueOf(String)即可返回相应基本数据类型。

  如何将基本数据类型转换为字符串?

  答:一种方法是将基本数据类型与空字符串("")连接(+)即可获得其所对应的字符串;另一种方法是调用String 类中的valueOf()方法返回相应字符串。

  相关阅读推荐:

  java web开发你需要学习哪些内容?

  Java语言哪里好?为什么那么多人选择Java后端开发

  javascript是什么语言?它是干什么的