background image

对象的等待锁定池,只有针对此对象发出 notify 方法(或 notifyAll)后本线程才进入对
象锁定池准备获得对象锁进入运行状态。

  15、数组有没有 length()

 

这个方法? String 有没有 length()这个方法?

  数组没有 length()这个方法,有 length 的属性。String 有有 length()这个方法。

  16、是否可以继承 String 类?

  String 类是 final 类故不可以继承。

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

  overload 一般翻译为重载,表示多个函数共用同一个函数名,为了保证调用这些同
名函数时能正确区分究竟应该调用的是其中的哪一个,重载的各个函数的参数表(不考

虑形参名)必须彼此不同,通常简略地说成 不同参数表 。它对返回值的类型没有任何要
求,所以你可以随意为每一个重载的函数设置返回类型,相同也行,不同也行。

  override 一般翻译为覆盖,表示子类对从父类继承来的虚函数重新定义,它要求参
数表必须跟父类中被覆盖的那个函数的参数表完全相同,返回值类型原则上也要求相同,
但如果返回类型是父类的指针或者父类的引用,覆盖时返回类型允许是子类的指针或者
子类的引用。

  18、Set

 

里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是

equals()  

? 它们有何区别?

  Set 是 Collection 容器的一个子接口,它不允许出现重复元素,当然也只允许有一
个 null

 

对象。equals()区分更合适。为什么用 equals()而不用==

 

来区分? 应该从它俩的

区别谈起,==是用来判断两者是否是同一对象(同一事物),而 equals 是用来判断是
否引用同一个对象。再看一下 Set 里面存的是对象,还是对象的引用。根据 java 的存储机
制可知,set 里面存放的是对象的引用,所以当两个元素只要满足了 equals()时就已经
指向同一个对象,也就出现了重复元素。所以应该用 equals()来判断。

  19、给我一个你最常见到的 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,