java面试必背代码 java面试题( 二 )


第八,GC是什么? 为什么要有GC? (基础) 。
GC是垃圾收集器 。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理 。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s 。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型 。可修改为s1 =(short)(s1 + 1)。short s1 = 1; s1 += 1正确 。
第十二,sleep() 和 wait() 有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法 。在sleep 时间间隔期满后 , 线程不一定立即恢复执行 。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级,(b)正在运行的线程因为其它原因而阻塞 。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到 。
第十三,Java有没有goto?
Goto?java中的保留字,现在没有在java中使用 。
第十四,数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性 。
String有有length()这个方法 。
第十五,Overload和Override的区别 。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现 。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现 。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了 。如果在一个类中定义了多个同名的方法 , 它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading) 。Overloaded的方法是可以改变返回值的类型 。
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否 。equals()是判读两个Set是否相等 。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值 。
第十七,给我一个你最常见到的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
第十八 , error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题 。比如说内存溢出 。不可能指望程序能处理这样的情况 。
exception 表示一种设计或实现问题 。也就是说,它表示如果程序运行正常,从不会发生的情况 。

推荐阅读