七、Java基础类
1、Object类
Object是所有Java类的最终祖先,若没有使用extends关键字显示声明继承某个类,则默认继承Object类
1.1、equals方法与==
a==b:
比较两个基本类型的数据a和b是否相等
比较两个对象a和b是否是同一个对象的引用(指向的堆中地址是否相同)
a.equals(b):
比较两个对象a和b是否是同一个对象的引用(指向的堆中地址是否相同)
如果要比较两个对象的值是否相等,而不是引用,需要重写equals方法
1.2、对象的字符串表示
一个对象通过调用toString方法可以获得该对象的字符串表示
若一个类没有重写toString方法,该类的对象调用toString方法,得到的字符串格式为:类名@对象的引用(内存地址)
直接输出类名等价于输出:类名.toString()
2、String类
2.1、基本概念
字符串是字符的有限序列
Java中使用String类创建一个字符串变量,因此字符串变量是类类型变量,是一个对象
只读、不可修改,使用+连接,会产生一个新的字符串对象
字符串常量储存在字符串常量池中
2.2、创建字符串对象
public class Main{
public static void main(String[] args){
// 方法一:声明+创建
String s1;
s1 = new String("a");
// 方法二:声明创建一块
String s2 = new String("b");
// 方法三:用已创建的创建另一个
String s3 = new String(s2);
// 方法四:直接赋值
String s4 = "d";
}
}
直接赋值法:
该对象直接指向堆内存中的常量池中的该常量的地址
使用new()方法的:
该对象指向堆内存的一个空间,该空间再指向常量池中该常量的地址
2.3、说明
不是字符串数组,不能使用[ ]操作
2.4、常用的构造方法
说明 | |
---|---|
String(char[] a) | 使用一个字符数组创建一个字符串对象 |
String(cahr[] a,int startindex,int count) | 使用字符数组中,从startindex开始的count个字符创建一个字符串对象 |
2.5、常用的方法
使用 | 说明 |
---|---|
对象名.length() | 返回字符串长度 |
对象名.charAt(x) | 返回索引为x的字符 |
对象名.indexOf(“s”) | 从前往后查找字符串“s”,若找到返回索引,为找到返回-1 |
对象名.indexOf(“s”,x) | 从索引为x的位置开始,从前往后查找字符串“s”,若找到返回索引,为找到返回-1 |
对象名.lastIndexOf(“a”) | 从后往前查找字符串“s”,若找到返回索引,为找到返回-1 |
对象名.Substring(st [,end]) | 获取从st开始到(end-1)的字符串,省略end默认到最后 |
对象名.split(“s” [,x] ) | 按指定字符串拆分x次(x省略全部拆分),若全部拆分后数量多余x,将第x个拆分后的合并成一个 |
对象名.toCharArray() | 将字符串对象转换为字符数组 |
对象名.getBytes() | 将字符串对象转换为字节数组 |
对象名.toUpperCase() | 转换为大写字母 |
对象名.toLowerCase() | 转换为小写字母 |
对象名.raplace() | 替换 |
对象名.trim() | 删除两边的空格 |
对象名.startsWith(" ") | 判断是否以指定字符串开头 |
对象名.endsWith(" ") | 判断是否以指定字符串结尾 |
对象名.contains(" ") | 判断是否包含指定字符串 |
对象名.concat() | 字符串连接 |
对象名.compareTo(对象名2) | 对象2的ascil编码 - 对象1的ascil编码 |
3、StringBuilder类
创建一个可修改的字符串序列
4、基本数据类型的包装类
都是最终类
//自动装箱
Integer i = 3 ; // 等价于: Integer i = new Integer(3);
//自动拆箱
int j = i; //等价于: int j = i.intValue();
5、System类
数组复制:System.arraycopy(a,x,b,y,z)
将a中从x开始的z个元素复制给b从y开始的z个位置