问 答26道Java面试题
Posted 动力节点Java学院
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问 答26道Java面试题相关的知识,希望对你有一定的参考价值。
1、Collection 和 Collections的区别?
Collection是集合的根接口,其下有set及list
2、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用?
在比较时先调用hashCode方法,如果不相同,证明不相等。
如果相同,再调用equals方法,如果equals方法相同,证明相等,不相同,证明不相等。
集合中是否包含某一个元素用contains来判断。
3、List, Set, Map是否继承自Collection接口?
Map没有继承于Collection,其相对是独立的。
属于Collection类型的对象,可以通过构造函数将一个集合构造成另外一个集合。
子类继承于父类,具有父类的所有属性与方法,可以重用,也可以覆盖。
基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
int 是基本数据类型,不是对象,占一个内存空间,没有方法。与其同类的有long,char,doble
Integer是封装类,具有方法及属性。与其同类的有Long,Double.Float
一般异常:用户抛出的异常,如果用throws 声明了,调用这个方法的代码必须对其处理。
9、final, finally, finalize的区别?
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。
堆是栈的一个组成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
round方法返回与参数最接近的长整数,参数加1/2后求其floor.
16、给出一个你最常见到的runtime exception
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
17、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length这个属性
18、构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
22、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
Singleton模式主要作用是保证在Java应用程序中,一个类只有一个实例存在。
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是
第一次
instance=new Singleton();
定义一个类,它的构造函数为private的,所有方法为static的。
应用:JAVA的异常就是错误,有两种,一种是运行时,编码可以不用捕捉。一种是一般异常,如果throws声明了,必须进行处理。
26、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
以上是关于问 答26道Java面试题的主要内容,如果未能解决你的问题,请参考以下文章
14道Java开发岗面试题
Java的Exception和Error面试题10问10答
全网最经典26道Spring面试题总结,后台开发JAVA岗
Java的Exception和Error面试题10问10答
Java程序员面试中最容易答错的8道面试题,全网最新
208道面试题,答案