谈谈
final, finally, finalize
的区别。
第二,
Anonymous Inner Class (
匿名内部类
)
是否可以
extends(
继承
)
其它类,是否可以
implements(
实现
)interface(
接口
)?
第三,
Static Nested Class
和
Inner Class
的不同,说得越多越好
(
面试题有的很笼统
)
。
第四,
&
和
&&
的区别。
第五,
HashMap
和
Hashtable
的区别。
第六,
Collection
和
Collections
的区别。
第七,什么时候用 assert 。
第八, GC 是什么 ? 为什么要有 GC? ( 基础 ) 。
第七,什么时候用 assert 。
第八, GC 是什么 ? 为什么要有 GC? ( 基础 ) 。
第九,
String s = new String("xyz");
创建了几个
String Object?
第十,
Math.round(11.5)
等於多少
? Math.round(-11.5)
等於多少
?
第十一,
short s1 = 1; s1 = s1 + 1;
有什么错
? short s1 = 1; s1 += 1;
有什么错
?
第十二,
sleep()
和
wait()
有什么区别
?
搞线程的最爱
第十三,
Java
有没有
goto?
第十四,数组有没有
length()
这个方法
? String
有没有
length()
这个方法?
第十五,
Overload
和
Override
的区别。
Overloaded
的方法是否可以改变返回值的类型
?
第十六,
Set
里的元素是不能重复的,那么用什么方法来区分重复与否呢
?
是用
==
还是
equals()?
它们有何区别
?
第十七,给我一个你最常见到的
runtime exception
。
第十八,
error
和
exception
有什么区别
?
第十九, List, Set, Map 是否继承自 Collection 接口 ?
第二十,
abstract class
和
interface
有什么区别
?
第二十一,
abstract
的
method
是否可同时是
static,
是否可同时是
native
,是否可同时是
synchronized?
第二十二,接口是否可继承接口
?
抽象类是否可实现
(implements)
接口
?
抽象类是否可继承实体类
(concrete class)?
第二十三,启动一个线程是用
run()
还是
start()?
第二十四,构造器
Constructor
是否可被
override?
第二十五,是否可以继承
String
类
?
。
第二十六,当一个线程进入一个对象的一个
synchronized
方法后,其它线程是否可进入此对象的其它方法
?
第二十七,
try {}
里有一个
return
语句,那么紧跟在这个
try
后的
finally {}
里的
code
会不会被执行,什么时候被执行,在
return
前还是后
?
第二十八,编程题 : 用最有效率的方法算出 2 乘以 8 等於几 ?
第二十九,两个对象值相同
(x.equals(y) == true)
,但却可有不同的
hash code
,这句话对不对
?
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
?
第三十一, swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上 ?
第三十二,编程题
:
写一个
Singleton
出来。
第三十三
Hashtable
和
HashMap
Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现
Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map interface 的一个实现
HashMap
允许将
null
作为一个
entry
的
key
或者
value
,而
Hashtable
不允许
还有就是,
HashMap
把
Hashtable
的
contains
方法去掉了,改成
containsvalue
和
containsKey
。因为
contains
方法容易让人引起误解。
最大的不同是,
Hashtable
的方法是
Synchronize
的,而
HashMap
不是,在
多个线程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap
就必须为之提供外同步。
多个线程访问 Hashtable 时,不需要自己为它的方法实现同步,而 HashMap
就必须为之提供外同步。
Hashtable
和
HashMap
采用的
hash/rehash
算法都大概一样,所以性能不会有很大的差异。
上面的答案有问题
:!!!
我把有争议的几个列出来
:
第二,
Anonymous Inner Class (
匿名内部类
)
是否可以
extends(
继承
)
其它类,是否可以
implements(
实现
)interface(
接口
)?
匿名的内部类是可以
extends(
继承
)
其它类的
,
这个我做过测试
.
第十一,
short s1 = 1; s1 = s1 + 1;
有什么错
? short s1 = 1; s1 += 1;
有什么错
?
short s1 = 1; s1 += 1 也不是正确。 其中 short s1 = 1 这句会出错的 , 因为 1 是 int 的
short s1 = 1; s1 += 1 也不是正确。 其中 short s1 = 1 这句会出错的 , 因为 1 是 int 的
第十六,
Set
里的元素是不能重复的,那么用什么方法来区分重复与否呢
?
是用
==
还是
equals()?
它们有何区别
?
Set 里的元素是不能重复的,那么用 iterator() 方法来区分重复与否。 equals() 是判读两个 Set 是否相等。 这个答案也不正确 , Set 区分重复元素是有具体子类来实现的 .
Set 里的元素是不能重复的,那么用 iterator() 方法来区分重复与否。 equals() 是判读两个 Set 是否相等。 这个答案也不正确 , Set 区分重复元素是有具体子类来实现的 .
第二十六,当一个线程进入一个对象的一个
synchronized
方法后,其它线程是否可进入此对象的其它方法
?
不能,一个对象的一个 synchronized 方法只能由一个线程访问。
这个也有问题 , 一个线程进入一个对象的一个 synchronized 方法后 , 这个线程占有了该对象的同步锁 . 其他线程是不能进入此对象的其它同步方法的 , 因为其他线程得不到该对象的同步锁 . 但其他线程可以入此对象的其它非同步方法 , 因为进入非同步方法 , 不需要同步锁 .
不能,一个对象的一个 synchronized 方法只能由一个线程访问。
这个也有问题 , 一个线程进入一个对象的一个 synchronized 方法后 , 这个线程占有了该对象的同步锁 . 其他线程是不能进入此对象的其它同步方法的 , 因为其他线程得不到该对象的同步锁 . 但其他线程可以入此对象的其它非同步方法 , 因为进入非同步方法 , 不需要同步锁 .
第二十九,两个对象值相同
(x.equals(y) == true)
,但却可有不同的
hash code
,这句话对不对
?
不对,有相同的 hash code 。 按照 Java 的编码规范 , x.equals(y) == true 的 ,hash code 一定一样 , 但这只是编码规范 , 自己编程的时候可以不这么做 , 一样可以正常运行 .
不对,有相同的 hash code 。 按照 Java 的编码规范 , x.equals(y) == true 的 ,hash code 一定一样 , 但这只是编码规范 , 自己编程的时候可以不这么做 , 一样可以正常运行 .
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
?
是值传递。 Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
晕 , 居然说:对象的引用是永远不会改变 ,对象的引用是什么 , 是内存地址 (uint), 怎么变啊 . 传值还是传引用 , 是针对 " 对象 " 来说的 . 对一个 " 对象的引用 " 来说是 : 传值还是传引用 , 有意义吗 ?? 晕
是值传递。 Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
晕 , 居然说:对象的引用是永远不会改变 ,对象的引用是什么 , 是内存地址 (uint), 怎么变啊 . 传值还是传引用 , 是针对 " 对象 " 来说的 . 对一个 " 对象的引用 " 来说是 : 传值还是传引用 , 有意义吗 ?? 晕
我简单看了一下
,
大家有什么意见可以一起讨论
!!
第一,谈谈
final, finally, finalize
的区别。
太简单
第二, Anonymous Inner Class ( 匿名内部类 ) 是否可以 extends( 继承 ) 其它类,是否可以 implements( 实现 )interface( 接口 )?
都可以
第三, Static Nested Class 和 Inner Class 的不同,说得越多越好。
static 类不存在和外围类的关联
第四, & 和 && 的区别。
太简单
第五, HashMap 和 Hashtable 的区别。
太简单
第六, Collection 和 Collections 的区别。
太简单 : 前者是接口 , 或者是一个应用类
第七,什么时候用 assert 。
调试吧
第八, GC 是什么 ? 为什么要有 GC?
不用说
第九, String s = new String("xyz"); 创建了几个 String Object?
废话 , 当然是一个 , 别说引用是对象
第十, Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ?
我晕
第十一, short s1 = 1; s1 = s1 + 1; 有什么错 ? short s1 = 1; s1 += 1; 有什么错 ?
前者编译不了
第十二, sleep() 和 wait() 有什么区别 ?
前者自己睡 , 后者等别人
第十三, Java 有没有 goto?
关键字 , 没有用
第十四,数组有没有 length() 这个方法 ? String 有没有 length() 这个方法 ?
数组是属性 ,String 是方法
第十五, Overload 和 Override 的区别。 Overloaded 的方法是否可以改变返回值的类型 ?
重载和覆盖
第十六, Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 == 还是 equals()? 它们有何区别 ?
废话 ! 怎么会用 ==?
第十七,给我一个你最常见到的 runtime exception 。
NullPointerException
第十八, error 和 exception 有什么区别 ?
错误和异常 , 严重度不一样
第十九, List, Set, Map 是否继承自 Collection 接口 ?
Map 不是
第二十, abstract class 和 interface 有什么区别 ?
这个也问 ?
第二十一, abstract 的 method 是否可同时是 static, 是否可同时是 native ,是否可同时是 synchronized?
我猜 : 不能
第二十二,接口是否可继承接口 ? 抽象类是否可实现 (implements) 接口 ? 抽象类是否可继承实体类 (concrete class)?
当然可以
第二十三,启动一个线程是用 run() 还是 start()?
废话 ,start
第二十四,构造器 Constructor 是否可被 override?
有点可笑
第二十五,是否可以继承 String 类 ?
noway
第二十六,当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法 ?
当然可以
第二十七, try {} 里有一个 return 语句,那么紧跟在这个 try 后的 finally {} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后 ?
当然是 return 前
第二十八,编程题 : 用最有效率的方法算出 2 乘以 8 等於几 ?
我考 int sb=2<<3;
第二十九,两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对 ?
这个问题是 sb 问给 sb 的 .
可以有不同的 hashCode, 但是 java 不建议这样
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 ?
这个问题又是 sb 问给 sb 的
是传值 , 但是这个值是一个引用
第三十一, swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上 ?
int
第三十二,编程题 : 写一个 Singleton 出来
双重 check 无效
太简单
第二, Anonymous Inner Class ( 匿名内部类 ) 是否可以 extends( 继承 ) 其它类,是否可以 implements( 实现 )interface( 接口 )?
都可以
第三, Static Nested Class 和 Inner Class 的不同,说得越多越好。
static 类不存在和外围类的关联
第四, & 和 && 的区别。
太简单
第五, HashMap 和 Hashtable 的区别。
太简单
第六, Collection 和 Collections 的区别。
太简单 : 前者是接口 , 或者是一个应用类
第七,什么时候用 assert 。
调试吧
第八, GC 是什么 ? 为什么要有 GC?
不用说
第九, String s = new String("xyz"); 创建了几个 String Object?
废话 , 当然是一个 , 别说引用是对象
第十, Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ?
我晕
第十一, short s1 = 1; s1 = s1 + 1; 有什么错 ? short s1 = 1; s1 += 1; 有什么错 ?
前者编译不了
第十二, sleep() 和 wait() 有什么区别 ?
前者自己睡 , 后者等别人
第十三, Java 有没有 goto?
关键字 , 没有用
第十四,数组有没有 length() 这个方法 ? String 有没有 length() 这个方法 ?
数组是属性 ,String 是方法
第十五, Overload 和 Override 的区别。 Overloaded 的方法是否可以改变返回值的类型 ?
重载和覆盖
第十六, Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 == 还是 equals()? 它们有何区别 ?
废话 ! 怎么会用 ==?
第十七,给我一个你最常见到的 runtime exception 。
NullPointerException
第十八, error 和 exception 有什么区别 ?
错误和异常 , 严重度不一样
第十九, List, Set, Map 是否继承自 Collection 接口 ?
Map 不是
第二十, abstract class 和 interface 有什么区别 ?
这个也问 ?
第二十一, abstract 的 method 是否可同时是 static, 是否可同时是 native ,是否可同时是 synchronized?
我猜 : 不能
第二十二,接口是否可继承接口 ? 抽象类是否可实现 (implements) 接口 ? 抽象类是否可继承实体类 (concrete class)?
当然可以
第二十三,启动一个线程是用 run() 还是 start()?
废话 ,start
第二十四,构造器 Constructor 是否可被 override?
有点可笑
第二十五,是否可以继承 String 类 ?
noway
第二十六,当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法 ?
当然可以
第二十七, try {} 里有一个 return 语句,那么紧跟在这个 try 后的 finally {} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后 ?
当然是 return 前
第二十八,编程题 : 用最有效率的方法算出 2 乘以 8 等於几 ?
我考 int sb=2<<3;
第二十九,两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这句话对不对 ?
这个问题是 sb 问给 sb 的 .
可以有不同的 hashCode, 但是 java 不建议这样
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 ?
这个问题又是 sb 问给 sb 的
是传值 , 但是这个值是一个引用
第三十一, swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上 ?
int
第三十二,编程题 : 写一个 Singleton 出来
双重 check 无效