11、用最有效率的方法算出2乘以8等於几?
12、Integer与int的区别
13、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
14、Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?
15、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法?
16、Java中实现多态的机制是什么?
17、abstractclass和interface语法上有什么区别?
18、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
19、内部类可以引用它的包含类的成员吗?有没有什么限制?
20、String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
答案
11、2<<2 表示左移2位,用数字表示0010,左移三位00001000 答案为8 ;>>表示逻辑右移,一般用的比较少,但是计算速度回快。
12、1)int是基本数据类型,Integer是封装类;2)int的默认值为0,Integer的默认值为null,因此,Integer可以区分null和0的区别;3)Integer定义了表示整数的最大值和最小值的常量。
在开发中如果有成绩的情况下,要区分学生考试分数为0和未参加考试,可以使用Integer区分,
13、首先要了解到Math的基本函数 ceil、floor、round;ceil表示向上取整例:Math.ceil(11.3)=12; Math.ceil(-11.7)=-11; floor 地板的意思,向下取整 Math.floor(11.6)=11;Math.floor(-13.8)=-14; round表示四舍五入,可以加上0.5之后向下取整Math.round(13.5)=Math.floor(13.5+0.5)=14; Math.round(-11.4)=Math.floor(-11.4+0.5)=-11;
14、原文答案可以自己参考下,太长了,看不下去,于是我自己整理了一番。overload顾名思义方法重载,load是加载的意思嘛,override当然就是方法重写的意思了。区别:方法重写:方法名相同,参数列表不同(参数的个数,参数的类型,参数的位置不同);方法重载:方法名相同,参数列表相同,子类不能抛出比父类更大的异常,返回值或子类相同,访问修饰符不能减小;Overload的方法可以改变返回值的类型,因为它与返回值类型无关。
15、接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方法。
16、父类或接口引用变量指向子类或实现类实例
17、区别一共7点:1)抽象类中可以有构造方法,接口中不存在;2)抽象类中包含静态方法,接口中不存在;3)抽象类的修饰符为public,protected和默认,接口修饰符为public,默认public abstract;4)抽象类中可以有普通变量,接口中只有静态变量;5)抽象类中包含非抽象方法,接口中的方法都是抽象方法;6)抽象类可以实现多个接口,接口只能继承一个抽象类; 7)抽象类中的静态变量修饰符可以任意,接口中的修饰符只能为 public adstract final;
18、抽象类一般是给子类去实现的,加上static方法后,子类不能重载改方法,所以不能用static;native方法不存在着被子类实现的情况,所以,它也不能是抽象的,不能与abstract混用。同步锁的情况几乎没见过;(这个应该很少见吧,奇葩的面试题)
19、完全可以。如果不是静态内部类,那没有什么限制!内部静态类只能使用外部静态变量,不同变量不能使用
class OuterMyTest {
static int i = 1;
int j = 2;
static class Test {
void getFun() {
System.out.println(i);
System.out.println(j); //编译报错,静态内部类只能访问静态成员
}
}
public static void main(String[] args) {
Test interTest = new Test();
interTest.getFun();
}
}
20、没有变,string s="hello"; 内存String类型对象s,内容为hello,s=s+“world”;内存中新建string对象,内容为helloword;