常用类01
-
Object类
超类,是所有类的直接或间接父类
常用方法- getClass()
获得当前对象的类类型,返回值为Class类型
以下代码可以判断两个对象是否为同一类的对象
Class cls1 = a.getClass(); Class cls2 = b.getClass(); if(cls1 == cls2) return true; return false;
- hashCode()
返回该对象的hash值 - toString()
返回该对象的字符串表示,默认为该类类名+hash值,通常对其进行重写
假设以下为对象a的类重写的toString()方法
public String toString(){ return "aba aba"; }
System.out.println(a);
输出结果为 “aba aba”
- equals()
比较两个对象地址是否相同,返回类型为boolean。可以重写 - finalize()
当对象被判定为垃圾对象时,由JVM自动调用该方法,用以标记垃圾对象,进入回收队列
垃圾对象:没有有效引用指向此对象时,为垃圾对象
可以通过System.gc()方法手动通知JVM回收垃圾
- getClass()
-
包装类
基本数据类型所对应的引用数据类型
基本数据类型 包装类型 byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character 装箱、拆箱
把基本类型转换为引用类型的过程称为装箱,反之称为拆箱
装箱可以通过构造方法或类中提供的方法实现int num = 18; Integer integer1 = new Integer(num); Integer integer2 = Integer.valueOf(num);
拆箱可以通过访问对象中的数据值实现
int num2 = integer1.inValue();
JDK1.5之后,提供了自动装箱拆箱
Integer i = 18; int a = i;
各包装类提供了parse()方法,可以返回对应的基本类型的值
String str = 128; int num = Integer.parseInt(str);
整数缓冲区
系统自动创建了-128~127之间的Integer类对象,当使用new直接赋值时,若在以上范围中,则不会创建新对象,会直接指向创建好的对象Integer i0 = 100; Integer i1 = 100; System.out.println(i1 == i2);
以上代码运行时,结果为true。因为自动装箱使用的是valueOf()方法,100在缓冲区内,所以不会创建新的对象,i0和i1都指向同一个地址
-
String类
字符串是常量,存放在字符串池(常量池)中,创建之后不可改变。该字符串指的是形如
String str = "hello"
中的"hello",对象str指向的是字符串池中的"hello"字符串。当给str赋应该新值时,“hello”并不会被改变,而会在字符串池中建立一个新的字符串,并令str指向他
当使用如下方法时String str = new String("hello");
,字符串池中会生成一个“hello”,堆中会生成一个指向“hello”的对象空间,str指向堆中的对象空间常用方法
- int length()
返回字符串长度 - char charAt(int index)
根据下标获取字符 - boolean contains(String str)
判断当前字符串中是否包含str - char[] toCharArray()
将字符串转为字符数组 - int indexOf(String str)
查找str首次出现的下标,若不存在则返回-1。可以添加第二个参数,为从哪个下标开始查找 - int lastIndexOf(String str)
查找字符串在当前字符串中最后一次出现的下标索引 - String trim()
去掉字符串前后的空格 - String toUpperCase()
转换为大写
toLowerCase()为转换小写 - boolean endWith(String str)
判断字符串是否以str结尾
startWith(String str)判断开始 - String replace(char oldChar, char newChar)
将旧字符替换成新字符
参数也可以是字符串 - String[] split(String str)
根据str做拆分,其中的str可以使用正则语句。如想要以空格或逗号做拆分且连续空格全部去除,str如下“[ ,]+” - boolean equals(String str)
判断两字符串是否相等
equalsIgnoreCase可以进行忽略大小写的比较 - int compareTo(String str)
对比两个字符串大小,返回结果为两字符串第一个不相同的字符的字典序号相减的值。如以下代码中,a得出为-23
当某一字符串为另一字符串的前缀时,返回结果为两者长度差String s1 = "aa"; String s2 = "axyz"; int a = s1.compareTo(s2);
- String subString(int beginIndex, int endIndex)
返回一段子串
可变字符串
StringBuffer:可变长字符串,运行效率慢、线程安全
StringBuilder:可变长字符串,运行效率快、线程不安全常用方法
- append(String str)
在尾部添加字符串str - insert(int index, String str)
在index处插入str - replace(int begin, int end, String str)
将begin到end替换为str - delete(begin, end)
将begin到end之间的字符串删除
ps:以上两个方法中参数左闭右开
- int length()