马上就业班考试了,分享一些java基础复习的知识点,大一起加油!欢迎交流
1.说明Java中String str=null与String str=""的区别?
String str = null 表示声明了一个String对象的引用str,但是没有为其分配内存空间。
String str = "" 表示创建了一个长度等于0的空字符串,并在内存中为其分配了内存空间。
String str = new String("tw"); str在内存中有两个对象,1.堆内存有一个 new Sting 2.常量池中有一个字符串。
2、使用运算符"= ="和方法equals() 进行比较对象的区别?
使用"= ="算符比较基本数据类型时,比较的是值相等;使用"=="算符比较对象时,比较的是内存地址和内容。
使用equals()方法 比较对象时,比较的是对象的内容,与地址无关,如果没有重写equals()方法就直接调用的是Object的equals()方法。
"=="比较的是外在和内涵;equals()比较的是外在。用博大精深的中文讲就是:一个相同,一个相似。
3、接口和抽象类有何区别?
(1)成员特点:
构造方法:接口没有构造方法;抽象类有构造方法。
成员变量:接口中只有常量;抽象类中可以是常量,也可以是变量。
成员方法:接口中只有抽象方法;抽象类中既有抽象方法,也有非抽象方法。
(2)关系特点:
类与类:类与类之间只有单继承,可以有多层继承。
类与接口:类与接口之间是实现关系,可以单实现,也可以多实现。
接口与接口:接口与接口之间是继承关系,可以单继承,也可以多继承。
(3)设计理念:
接口对应的设计模式是简单工厂设计模式,它被实现,这个接口中定义的是整个体现的扩展内容,体现:like a。
抽象类对象的设计模式是模板设计模式,它被继承,这个类中定义的是整体体现的共性内容,显现is a。
小编的理解:抽象类与接口类比为一个人的亲爹和干爹,亲爹血浓于水,感情深,爱你发自内心;干爹各种机缘认来的(中国式干爹你懂得)。
4、简述方法的重写与重载
重写是指重新实现基类中的方法。在运行过程中,如果将子类创建的对象赋值给子类的引用或父类的引用,则无论通过哪个类型的引用,真正调用的方法都将是在子类中重写的方法。 如果希望调用父类中的方法,则需要通过父类创建类的实例,然后通过该实例才能访问父类定义的方法。重写方法时实现多态的一个重要表现。
在Java中,一个类的内部可以定义多个同名的方法,但是它们的方法参数要有所不同。重写的是与父类同名的方法,与返回值有关。重载是同名方法,与返回值无关,与参数有关,如:个数、类型、排列。
重写注意事项:
(1)父类中的私有方法不可以被重写
(2)子类方法访问权限一定要大于父类的访问权限
(3)静态的方法只能被静态的方法重写,这个其实不能算对象的关系。
5、final、finally、finallize有何区别?
final表示一个修饰符,如果用它来修饰一个类,则该类是不能继承的;如果用它来修饰一个变量,则该变量一旦赋值之后就不能再修改;如果用它来修饰一个方法,则该方法不能够被重写。
finally用于异常处理,它用来修饰一个代码块,即使前面的代码处理异常,该代码块中的代码也会执行。它通常用于释放资源。finally代码块之前有调用System.exit()方法的话,finally里面的代码就不会执行。
finallize表示Object类中定义的一个方法,他可以重写,用于回收资源。 |