java面试基础题(二)

十一、switch 是否能做用在byte 上,是否能做用在long 上,是否能做用在String上?算法

 * switch可做用于char byte short int
 * switch可做用于char byte short int对应的包装类
 * switch不可做用于long double float boolean,包括他们的包装类
 * switch中能够是字符串类型,String(jdk1.7以后才能够做用在string上)编程

 * switch中能够是枚举类型数组

十二、用最有效率的方法计算2乘以8?安全

 

   2 << 3,编程语言

  //计算2*8=2*2System.out.println(2<<3);//8=2的3次方为8ide

  //计算2*16=2*2System.out.println(2<<4);//16=2的4次方为16函数

1三、数组有没有length()方法?String有没有length()方法?ui

   数组没有length()方法,有length的属性。String有length()方法。集合求长度用size()方法线程

1四、在Java中,如何跳出当前的多重嵌套循环?
code

在 Java 中,要想跳出多重循环,能够在外面的循环语句前定义一个标号,而后在里层循环体的代码中

使用带有标号的 break 语句,便可跳出外层循环

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

 

构造器Constructor不能被继承,所以不能重写Override,但能够被重载Overload。

Constructor不能被继承,因此Constructor也就不能被override。每个类必须有本身的构造函数,负责构造本身这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数。

1六、两个对象值相同(x.equals(y) == true),但却可有不一样的hash code,这句话对不对?

  也对,也不对。得看你的hash算法依赖哪些,若是不只仅依赖于值,那确定就不一样

1七、是否能够继承String类?

 不能够,由于String类有final修饰符,而final修饰的类是不能被继承的,public final class String

1八、当一个对象被看成参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里究竟是值传递仍是引用传递?

是值传递。Java编程语言只有值传递参数。当一个对象实例做为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容能够在被调用的方法中改变,但对象的引用是永远不会改变的。

1九、String和StringBuilder、StringBuffer的区别?

String的长度是不可变的;StringBuffer 的长度是可变的,若是你对字符串中的内容常常进行操做,特别是内容要修改时,那么使用StringBuffer,若是最后须要String,那么使用StringBuffer 的toString()方法;线程安全;StringBuilder 是从JDK 5 开始,为StringBuffer 该类补充了一个单个线程使用的等价类;一般应该优先使用StringBuilder 类,由于它支持全部相同的操做,但因为它不执行同步,因此速度更快

20、重载(Overload)和重写(Override)的区别。重载的方法可否根据返回类型进行区分?

 

方法的重写Overriding 和重载Overloading 是Java 多态性的不一样表现。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。若是在一个类中定义了多个同名的方法,它们或有不一样的参数个数或有不一样的参数类型,则称为方法的重载(Overloading)。Overloaded 的方法是能够改变返回值的类型。

相关文章
相关标签/搜索