1. 如何实现向下转型?需要注意什么问题?如何解决此问题?
(1)强制类型转换:()
(2)注意:ClassCastException异常
(3)使用 instanceof 在向下转型之前进行判断,判断是否是相同类型的对象,是相同类型的再进行强制类型转换。
2. == 和 equals()有何区别?
(1)没有进行重写的 equals() 与 == 完全一样,对基本数据类型来说比较数据值是否相同,对引用数据类型来说比较两个对象的地址是否相同。
(2)equals() 在 String、Data、File 等类中进行了重写之后,用于判断类中的属性是否相等。
(3)一般类都可以对 equals() 进行重写,以判断该类的两个对象的属性是否相同。
3. 重写 equals() 方法
class Person{
String name;
int age;
//重写其equals()方法
@Override
//自动生成
public boolean equals(Object o) {
if (this == o) return true; //比地址
if (o == null || getClass() != o.getClass()) return false;//比对象的类
Person person = (Person) o; //将o进行强制类型转换
return age == person.age && name.equals(person.name);//比属性
}
}
4. 写出8种基本数据类型及其对应的包装类
int-----Integer
char----Character
其他的将数据类型首字母变为大写即可
5. 基本数据类型、包装类与String三者之间如何转换
jdk5.0 后,基本数据类型和包装类可以自动装箱和自动拆箱,相当于等价
Integer i = 1;
(1)基本数据类型、包装类-------->String
方式一:通过添加 “” 表示类型转换为 String
String str = i + "";
方式二:通过调用 String 重载的valueof(Xxx xxx)
String str1 = String.valueOf(i);
(2)String-------->基本数据类型、包装类
通过调用包装类的 ParseXxx(String s) 方法进行转换
String str = "123";
System.out.println(Integer.parseInt(str) + 1);