抽象的(abstract)是否同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized
都不能,抽象方法需要没子类重写的,静态方法无法被重写,因此二者是矛盾的。本地方法是由本地代码(如c代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchronized和方法的实现细节有关,抽象方法不涉及实现细节,因此也是矛盾的。
阐述静态变量和实例变量的区别?
静态变量: 是被static修饰符修饰的变量,也称作类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少对象,静态变量在内存中仅有一个拷贝。
实例变量: 必须依赖某一实例,需要先创建对象然后通过对象来访问到它。静态变量可以实现让多个对象共享内存。
==和equals的区别?
equals和=的最大区别是一个是方法,一个是运算符。
*==:如果比较的对象是基本数据类型,则比较数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址是否相等。
equals(): 用来比较两个对象内容是否相等
注:equals方法不能用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址。另外,如果a.equals(b)==true,那么对象a和对象b的哈希值是相同,但是如果哈希值相同,对象不一定相同。