java小点

一、abstract的方法是否可同时是static,是否同时是native,是否可同时是synchronized?

*abstract:用来声明抽象方法,抽象方法没有方法体,不能被直接调用,必须在子类overriding后才能使用

*static:用来声明静态方法,静态方法可以被类及其对象调用

*native:用来声明本地方法,该方法的实现由非java 语言实现,比如C。一般用于java与外环境交互,或与操作系统交互

*synchronized:用于防止多个线程同时调用一个对象的该方法,与static连用可防止多个线程同时调用一个类的该方法

1、abstract的方法和static不能同时使用:用static表示不用实例化这个类,可直接被类调用,而abstract方法不能被调用,故相互矛盾

2、abstract方法和native不能同时使用:native是暗示这些方法有实现体的,是非java内容的,但是abstract修饰的方法无实现体

3、abstract方法和synchronized不能同时使用:synchronized方法前提是可被直接调用,而abstract方法是不能直接使用的

二、是否可以从一个static方法内部发出对非static方法的调用?

不可以,因为非static方法要和对象关联在一起,使用非static方法首先需要创建一个对象,再用这个对象进行方法调用,而static方法是可以直接调用的。

三、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

       接口可以继承接口,抽象类可以实现接口,抽象类可继承实体类(但是前提是实体类需要有明确的构造函数)

四、匿名内部类是否可以extends其他类,是否可以implements接口?

匿名内部类在实现时必须借助一个接口或者一个抽象类或者一个普通类来构造,从这过层次上讲匿名内部类是实现了接口或者继承了类,但是不能通过extends或implement关键词来继承类或实现接口。

五、final、finally,finalize的区别?

final是一个关键字,可以修饰变量、类、方法;final修饰的变量相当于常量,不能够再重新赋值,final修饰的引用类型变量引用不能够再改变,但是引用的内容可以改变,final修饰的类不能被继承,final修饰的方法不能被重写

finally是处理异常时提供的finally块,用来执行清除操作的。如果抛出异常就会执行相应的try-chatch块,最终会进入finally块

finalize是一个方法名,finalize()方法用于在垃圾回收时确认对象不被引用,清除底层使用malloc创建的变量

猜你喜欢

转载自blog.csdn.net/sinat_36722750/article/details/81908924