Java常用面试题之Java基础篇(二)


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集合框架篇(三)

猜你喜欢

转载自blog.csdn.net/Mr_TXQ/article/details/109045563