Object
概述:
Object是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或间接继承自该类
构造方法:
-
常用方法:
public String toString()
- 得到对象地址值,格式为”类全名@16进制地址值”
- 打印对象默认调用toString()方法,打印对象地址值
- 一般会重写toString()方法
public boolean equals(Object object)
- 比较对象是否相等,默认比较地址值,重写比较内容,自动生成
- 如果想比较对象的内容,需要重写该方法 ::: equals与==区别 :::tips ==与equals的区别
==是比较运算符
- JAVA中基本数据类型只有八种:byte,short,char,int,long,float,double,boolean。
- 除了这八种之外的类型,都称为引用类型。
- ==即可以判断基本类型,又可判断引用数据类型
- 如果判断基本数据类型 判断的是值是否相等
- 如果判断的是引用数据类型 判断的是地址是否相等
- equals是object类中的方法,只能判断引用类型
默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等 :::
public class Equal {
public static void main(String[] args) {
A a = new A();
A b = a;
A c = a;
System.out.println(a == b && b == c);//true
B bobj = a;
System.out.println(c == bobj);//true
"a".equals("a");
Integer integer1 = 1000;
Integer integer2 = 1000;
System.out.println(integer1 == integer2);//false
System.out.println(integer1.equals(integer2));//true Integer有重写equals方法
}
}
class A extends B{ }
class B{ }
String
概述:
String代表字符串,java程序中的所有字符串文字都被实现为此类的实例
特点:
字符串不可变,它们的值在创建之后不能改变。
- 字符串缓冲区支持可变字符串。因为String对象是不可变的,它们可以被共享
- 字符串效果相当于字符数组(char[]),但是底层原理是字节数组(byte[])
String构造方法:
- public String() 创建空白字符串对象,不含任何内容
- public String(char[] chs) 根据字符数组内容来创建字符串对象
- public String(byte[] bys) 根据字节数组内容来创建字符串对象
- String str = “…”; 直接赋值方式创建字符串对象
String对象特点:
- 通过new创建的字符串对象,每次都会申请一个内存空间
- 以 “ “ 方式给出的字符串,只要字符序列相同(顺序和大小写),无论程序代码出现几次,JVM都只会建立一个String对象,并在字符串池中维护
字符串的比较:
- 基本类型:比较的是数据值是否相同
- 引用类型:比较的是地址值是否相同
- 字符串是对象,通过equals()比较内容是否相同
- public boolean equals(Object anObject)将字符串与指定对象进行比较,
- 由于比较的是字符串对象,所有参直接传递一个字符串
String中的方法:
- public boolean equals(Object anObject)比较字符串内容,严格区分大小写
- public char charAt(int index)返回指定索引出的char值
- public int length()返回字符串的长度
- public String split(String regex)将此字符串按照给定regex拆分为多个字符串
- public String substring(int beginIndex)从指定索引开始截取字符串的所有内容
- public String substring(int beginIndex,int endIndex)从beginIndex开始(包含),截取到endIndex(不包含)
- public boolean contains(String str)判断字符串中是否包含指定的字符串
- public int indexof(int ch1)返回字符串ch1第一次出现的位置,返回类型为int
- public int indexOf(int index1,int index2)在该字符串中,从第index个位置开始,子字符串ch1第一次出现的位置,返回值为int
- public char[] toCharArray()将此字符串转换为新的字符数组char[] c = str.toCharArray()
- public boolean startsWith(String prefix)判断字符串是否以传入的字符开头
public boolean endsWith(String suffix)判断字符串是否以传入的字符结尾 :::
StringBuilder
概述:
如果对字符串进行拼接操作,每次拼接,都会构成一个行的String对象,
- 即耗时,又浪费内存空间,java提供StringBuilder来解决此问题
- StringBuilder是一个内容可变的字符串类,可以把它当成一个容器
StringBuilder与String的区别:
- String:内容不可变
- StringBuilder:内容可变
StringBuilder构造方法: StringBuilder strb = new StringBuilder()
- public StringBuilder() 创建空白可变字符串对象,不含任何内容
- public StringBuilder(String str) 根据字符串内容来创建字符串对象
StringBuilder添加和反转:
- public StringBuilder append(任意类型) 添加数据并返回对象本身
- public StringBuilder reverse() 返回相反的字符序列
StringBuilder转换为String:
- public String toString()
String 转换为StringBuilder:
- public StringBuilder(String str)
:::
| Object | /ˈɒbdʒɪkt; əbˈdʒekt/ | 对象 |
| —- | —- | —- |
| split | /splɪt/ | 分割 |
| substring | /ˈsʌbstrɪŋ/ | 截取字符串中的子串 |
| contains | /kənˈteɪnz/ | 包含 |
| indexof |
| 查找字符或者子串第一次出现的地方 | | toCharArray |
| 转换为字符数组 | | startsWith |
| 以…开头 | | endsWith |
| 判断字符串是否以某个字符或字符串结尾的 | | StringBuilder |
| 可变的字符序列 | | append | /əˈpend/ | 追加 | | reverse | /rɪˈvɜːs/ | 相反的 |