一、object类
1.Object类:是位于java.lang包,是所有类的父亲(直接或间接)
(1) 通过继承关系,所有类可以使用Object类中方法
(2) Object类型的可以利用多态存储所有的对象
2.Object中常见的方法:
(1) getClass():获取当前对象实际类型类型
注意:通常利用 == 判断两个引用中实际存储的对象类型是否一致,一致-true;否则-false
(2) int hashCode():获取当前对象的哈希码值
a. 将当前对象的十六进制地址转换为十进制的整数,hashCode方法的结果来源
b. 不同的对象返回值不同的哈希码值
(3) boolean equals(Object obj):判断两个对象内容是否相等
a. == :连接引用,则判断两个引用中存储的对象地址相等
b. 通常进行覆盖,进行比较对象的内容是否相等
(4) String toString():获取对象的字符串形式
二、包装类
1. 包装类:基本数据类型对应的类成为包装类,位于 java.lang包中
2. 包装类与基本数据类型的对应关系:
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3. 基本数据和包装类型之间的转换
int a = 19; // 基本数据类型
// 基本数据类型转换为包装类型
Integer i2 = new Integer(a); // int -> Integer
System.out.println(i2);
System.out.println(i2.toString());
// Integer -> int
int value = i2.intValue();
System.out.println(value);
// int -> String
String str2 = a+""; System.out.println(str2);
// String -> int
String str3 = "89 ";
int a3 = Integer.parseInt(str3);
System.out.println(a3); // 89,int
System.out.println(str3+1); // 891
System.out.println(a3+1); // 90
注意:String类型转换为 int类型时,String 的数据必须为纯数字类型,否则运行时报错,错误信息为: java.lang.NumberFormatException(数字的格式类型转换异常)
4. 包装类型的应用:应用在类的属性上,用于区分 有效数据和无效数据,例如:0和null
5. 自动装箱和自动的拆箱:包装类和对应的基本数据类型之间自动相互转换
三、String字符串类
1. 字符串的获取方式:
(1) String str = "hello";
这种获取字符串的方式:直接在字符串常量池中查找是否存在获取的字符内容,存在,直接使用,不存在,在串 池中创建对应的字符串对象
(2) String str2 = new String("world");
这种获取字符串的方式:在堆空间中创建字符串对象,然后再串池中查看是否有该字符串对象,有无需创建,没 有需要在串池中创建一个字符串对象
字符串:由一个或是多个字符组成,字符串的底层为 char类型的数组;字符串具有下标,默认从0开始,以此为 1,2,3....字符串字符个数-1
2. 字符串中创建的方法:
3.不可变性:
String字符串是常量,创建之后不可改变;字符串字面值存储在串池中,可以共享
4. 可变长字符串:
StringBuffer:可变长字符串,JDK1.0,线程安全,运行效率慢。
StringBuilder:可变长字符串,JDK5.0,线程不安全,运行效率快
StringBuilder sb1 = new StringBuilder("hello");
StringBuilder sb2 = sb1; sb1.append("world");// 拼接
System.out.println(sb1);
System.out.println(sb2);