1、abstract的method是否可以是static,native或synchronized修饰的?
答:都不能!
2、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其他方法?
答:视情况而定。
(1)、如果另一个方法是非互斥方法,那么可以进入。
(2)、如果另一个方法同样是互斥方法且和该方法对应同一个互斥对象,那么不可以进入。
(3)、如果另一个方法同样是互斥方法且和该方法对应不同的互斥对象,那么可以进入。
3、String s = new String("xyz");创建了几个String Object?
答:可能是一个、也可能是两个!一个的情况是只在堆中创建了一个“xyz”对象;两个的情况是在堆中和String池中分别创建了一个!
4、short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;有错吗? short s1=1;s1++;有错吗?
答:前者有错,次者没有错,后者没有错!次者和后者等价于s1=(short)(s1+1)。
5、从局部内部类中访问局部变量需要满足什么条件?
6、>>和>>>的区别是什么?
答:>>是用符号位填充右移后的空缺,>>>是用0填充右移后的空缺。
7、整数除0有异常,double除0有没有异常?
答:没有异常!Double除0的结果是Infinity(无穷大)!
8、const和goto是不是java的关键字?
答:不是,const和goto是java的保留字。
9、将一个整型变量赋给字符型会不会产生错误?将一个整数赋给字符型会不会产生错误?
答:前者会,后者不会!
10、我们在如下的包结构上定义了一个类ClassA,Packet1.Packet2.ClassA ,运行ClassA时在哪儿运行?
答:运行时要在包结构的上一层目录来运行。即:java Packet1.Packet2.ClassA ,直接在Packet2下运行不会成功!
|