谈谈
final, finally, finalize
的区别。
第二,
Anonymous Inner Class (
匿名内部类
)
是否可以
extends(
继承
)
其它类,是否可以
implements(
实现
)interface(
接口
)?
第三,
Static Nested Class
和
Inner Class
的不同,说得越多越好
(
面试题有的很笼统
)
。
第四,
&
和
&&
的区别。
第五,
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()
这个方法?
第十五,
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
的一个实现
HashMap
允许将
null
作为一个
entry
的
key
或者
value
,而
Hashtable
不允许
还有就是,
HashMap
把
Hashtable
的
contains
方法去掉了,改成
containsvalue
和
containsKey
。因为
contains
方法容易让人引起误解。
最大的不同是,
Hashtable
的方法是
Synchronize
的,而
HashMap
不是,在
多个线程访问
Hashtable
时,不需要自己为它的方法实现同步,而
HashMap
就必须为之提供外同步。
Hashtable
和
HashMap
采用的
hash/rehash
算法都大概一样,所以性能不会有很大的差异。
***********************
第一个人的补充
abcdhy(程旭)
**********************************
上面的答案有问题
:!!!
我把有争议的几个列出来
:
第二,
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
的
第十六,
Set
里的元素是不能重复的,那么用什么方法来区分重复与否呢
?
是用
==
还是
equals()?
它们有何区别
?
Set
里的元素是不能重复的,那么用
iterator()
方法来区分重复与否。
equals()
是判读两个
Set
是否相等。
这个答案也不正确
, Set
区分重复元素是有具体子类来实现的
.
第二十六,当一个线程进入一个对象的一个
synchronized
方法后,其它线程是否可进入此对象的其它方法
?
不能,一个对象的一个
synchronized
方法只能由一个线程访问。
这个也有问题
,
一个线程进入一个对象的一个
synchronized
方法后
,
这个线程占有了该对象的同步锁
.
其他线程是不能进入此对象的其它同步方法的
,
因为其他线程得不到该对象的同步锁
.
但其他线程可以入此对象的其它非同步方法
,
因为进入非同步方法
,
不需要同步锁
.
第二十九,两个对象值相同
(x.equals(y) == true)
,但却可有不同的
hash code
,这句话对不对
?
不对,有相同的
hash code
。
按照
Java
的编码规范
, x.equals(y) == true
的
,hash code
一定一样
,
但这只是编码规范
,
自己编程的时候可以不这么做
,
一样可以正常运行
.
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
?
是值传递。
Java
编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
晕
,
居然说:对象的引用是永远不会改变 ,对象的引用是什么
,
是内存地址
(uint),
怎么变啊
.
传值还是传引用
,
是针对
"
对象
"
来说的
.
对一个
"
对象的引用
"
来说是
:
传值还是传引用
,
有意义吗
??
晕
我简单看了一下
,
大家有什么意见可以一起讨论
!!
***********************
第三个人的回答
abcdhy(程旭)
**********************************
第一,谈谈
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
无效