Java面试题大全(Java基础二)

6、Java有没有goto?

goto是Java中的保留字,暂时还不是Java的关键字。

7、String 和StringBuffer、StringBuilder的区别

Java提供了:String、StringBuffer和StringBuilder,它们都是CharSequence的实现类,都可以作为字符串使用。
String代表了字符序列不可变的字符串;而StringBuffer、StringBuilder都代表了字符序列可变的字符串。
StringBuffer、StringBuilder的区别是StringBuffer是线程安全的、性能略低,而StringBuilder是线程不安全的,适合单线程环境使用,性能较好。

8、Collection 和 Collections的区别。

Collection是集合类(List、Set、Queue)的根接口。
Collections是针对集合类的一个工具类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

9、说说&和&&的区别。

&和&&都可以用作逻辑与的运算符,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(a >8 && b > 5),当a小于等于8时,由于&&之前的表达式已经为false了,因此&&之后的表达式根本不会执行;
再例如if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,因此不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
再例如if(x > 8 & ++y)与if(x > 8 && ++y ),当a小于等于8时,前一个表达式中y的值会增长;后一个表达式中y的值不会增加。
除此之外,&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

10、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

Overload是方法的重载
Override是方法的重写,也叫覆盖。
Overload要求两个方法具有方法名相同、形参列表不同的要求,返回值类型不能作为重载的条件。
Override要求子类方法与父类方法具有“两同两小一大”的要求。两同指:即父类方法、子类方法的方法名相同、形参列表相同;两小指:子类方法返回值类型要么是父类方法返回值类型的子类、要么与父类方法返回值类型相同;子类方法声明抛出的异常类型要么是父类方法声明抛出的异常类型的子类、要么与父类声明抛出的异常类型相同;一大指:子类方法的访问权限要么与父类方法的访问权限相同,要么比父类方法的访问权限更大。
Overloaded的方法是可以改变返回值的类型。

你可能感兴趣的:(java基础,面试)