11、是否可以从一个static方法内部发出对非static方法的调用?
静态方法不可以调用非静态方法,因为静态方法的执行时间要早于实例对象,而非静态方法只能在对象实例化时
执行,所以会报错
12、Integer与int的区别
二者可以相互转换,Integer转换为int时为拆箱,int转换为Integer时为装箱,Integer是包装类,
可以为null,而int不能
13、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)等於12 Math.round(-11.5)等於-11 Math.round()为四舍五入
即Math.floor(x+5)表示x +0.5,再向下取整
14、Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?
Overload:重载,同一个类中,方法名相同,参数列表不同,与返回值类型无关。
Override:重写,继承关系中,子类继承父类的方法,方法名相同,参数列表相同,返回值类型小于等于父类
的返回值类型,抛出的异常小于等于父类抛出的异常,访问修饰符小于父类的访问修饰符。
Overloaded的方法可以改变返回值类型。
15、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象
类中是否可以有静态的main方法?
一个接口可以继承多个接口,一个抽象类可以实现多个接口,抽象类可以继承具体类,抽象类中可以有静态的
main方法
16、Java中实现多态的机制是什么?
父类类型的变量可以指向子类类型的对象,能够调用哪些方法取决于变量的类型,调用哪个实现方法取决于对象
的类型。
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
17、abstractclass和interface语法上有什么区别?
abstractclass:抽象类,继承关系,单继承,使用abstract关键字修饰,可以有普通变量和普通方法,有构
造函数,不能实例化,抽象方法只能被子类或子孙类实现。
interface:接口类,继承关系,多继承,使用interface关键字修饰,只有静态常量和抽象方法,没有构造函
数,不能实例化,抽象方法只能被子类或子孙类实现。
18、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不可以,abstract需要重载,static为类方法,没有重载一说,abstract为没有实现的方法,native为本机
实现的方法,自相矛盾,abstract方法没有实现,也不可能实际调用抽象方法,没有必要synchronized修饰,
当然子类可以根据需要同步该方法
19、内部类可以引用它的包含类的成员吗?有没有什么限制?
内部类可以直接访问外部类的成员,包括私有。如果不是静态内部类,那没有什么限制,如果把静态嵌套类当做
内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员
20、String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
没有,因为String是不可变类,所以它的所有对象都是不可变对象,在这段代码中,s原先指向一个String对象
,内容是”hello”,然后我们对s进行了字符串拼接操作,这时,s不指向原来那个对象,而指向了另一个String
对象,内容为”Helloworld!”,原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了
上一篇: Java常用面试题之Java基础篇(一)
下一篇: Java常用面试题之Java集合框架篇(三)