Object类
getClass方法: 此方法用于返回该对象的真实类型(运行时的类型,编译看左边,运行看右边
)
hashCode方法: 返回该对象的十进制的哈希值
toString方法: 返回对象的字符串表现形式,全限定名+@+十六进制的hash值(地址)
equals方法: Object类的equals方法的作用是比较两个对象是否相等。比较的是内存地址
。
finalize方法:当垃圾回收器回收垃圾对象的时候,自动调用
包装类
八中基本数据类型对应包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean
提供一组方法,用于将其中某一种类型转换成其他类型 xxxValue()方法
//将字符串转换成int或者是double
String s = “123”;
//方式1:
int i = Integer.parseInt(s);
//方式2:
int i2 = Double.valueOf(s);
装箱和拆箱:
装箱就是将基本类型转换成包装类
拆箱就是将包装类型转换成基本类型
jdk1.5之前装拆箱:
byte b = 10;
//装箱
Byte b1 = Byte.valueOf(b);
//拆箱
byte b2 = b1.byteValue();
jdk1.5之后自动装拆箱。
String类
- charAt(index) 获取字符串指定下标位置上的字符
- indexOf(“”)获取指定字符串的字符串的下标位置(从前往后找),不存在返回-1
- lastIndexOf(“”)获取指定字符串的字符串的下标位置(从后往前找),不存在返回-1
- length()获取字符串长度
- equals() 判断两个字符串是否相等
- equalsIgnoreCase()判断两个字符串内容是否相等
- contains()判断是否包含指定字符
- endsWith()判断是否以指定字符串结尾
- startsWith()判断是否以指定字符串开头
- isEmpty 判断字符串是否为空串(长度为0,而不是null)
- replace(old,new)将字符串中指定的内容替换,返回值为新字符串,需用字符串接收
- subString()截取从指定下标开始直到字符串结尾的字符串
- split()将字符串按指定规则进行切割,并返回一个数组
- toCharArray()将字符串转换成字符数组
- getBytes()将字符串转换为字节数组
- trim()去除字符串前后的空格
- toUpperCase()将字符串转换成大写
- toLowerCase()将字符串转换成小写
- String.valueOf()将其他数据类型转换为字符串类型
StringBuffer类/StringBuilder类
- append(字符串)在原有的基础上追加字符创
- insert(下标,字符串)在指定下标位置上添加字符串
- delete(下标,下标)删除指定下标范围内的字符串
- reverse()将字符串内容进行翻转
- toString()将StringBuffer类型转换为String类型
StringBuffer类与StringBuilder类一致
常量池
String s1 =“abc”;
首先去常量池
去找是否有"abc",如果有则直接让s指向该"abc",没有则放入"abc"让s指向。
String s2 = new String(“abc”);
先在堆空间中创建一个对象并让s指向他,再在常量池中放入一个"abc"(如果存在则不放)
s2.intern();
将堆中的s对象在常量池中找到相同的字符串,返回常量池中的地址
String str1=“a”;String str2=“bc”;
String str =str1+str2;
此时的str地址并不在常量池中,所以str!=s1。因为在字符串变量拼接时,底层代码进行了优化,自动创建StringBuffer对象使用append()方法进行拼接,导致返回地址数据在堆空间
中。