09_常用类_其他
Object
一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。
Object作为所有类的父类,提供了很多常用的方法给每个子类对象拿来使用
方法名 | 说明 |
---|---|
public String toString() | 返回:类的全限名@内存地址 |
public boolean equals(Object o) | 默认是比较当前对象与另一个对象的地址是否相同 |
toString:
- 开发中直接输出对象,默认输出对象的地址其实是毫无意义的,更多的时候是希望看到对象的内容数据而不是对象的地址信息。
- 父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息
equals:
- 直接比较两个对象的地址是否相同完全可以用“==”替代equals,很多业务情况下,更想判断2个对象的内容是否一样
- 存在意义:为了被子类重写,以便子类自己来定制比较规则(比如比较对象内容)
Objects
Objects是一个官方工具类,提供了一些通用功能。
方法名 | 说明 |
---|---|
public static boolean equals(Object a, Object b) | 比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。再进行equals比较 |
public static boolean isNull(Object obj) | 判断变量是否为null |
Random
用于生成随机值
import java.util.Random;
Random r = new Random();
int number = r.nextInt(10); // 0-9
Scanner
可用于录入用户键盘输入值
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
String
定义
java.lang.String 类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。
Java 程序中的所有字符串文字(例如“abc”)都为此类的对象:
String name = "小黑";
String schoolName = "黑马程序员";
特点:String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。
String变量每次的修改其实都是产生并指向了新的字符串对象,原来的字符串对象都是没有改变的,所以称不可变字符串
常用方法
字符串的比较不适合使用"==",因为其比对的是对象地址值,而不是具体内容。
推荐使用String类提供的“equals”比较。
方法名 | 说明 |
---|---|
public boolean equals (Object anObject) | 将此字符串与指定对象进行比较。只关心字符内容是否一致! |
public boolean equalsIgnoreCase (String anotherString) | 将此字符串与指定对象进行比较,忽略大小写比较字符串。只关心字符内容是否一致! |
其他常用方法:
方法名 | 说明 |
---|---|
public int length() | 返回此字符串的长度 |
public char charAt(int index) | 获取某个索引位置处的字符 |
public char[] toCharArray() | 将当前字符串转换成字符数组返回 |
public String substring(int beginIndex, int endIndex) | 根据开始和结束索引进行截取,得到新的字符串(包前不包后) |
public String substring(int beginIndex) | 从传入的索引处截取,截取到末尾,得到新的字符串 |
public String replace(CharSequence target, CharSequence replacement) | 使用新值,将字符串中的旧值替换,得到新的字符串 |
public String[] split(String regex) | 根据传入的规则切割字符串,得到字符串数组返回 |
创建方式
-
直接使用“”定义。(推荐方式)
String name = "传智教育"; -
通过String类的构造器创建对象
构造器 说明 public String() 创建一个空白字符串对象,不含有任何内容 public String(String original) 根据传入的字符串内容,来创建字符串对象 public String(char[] chs) 根据字符数组的内容,来创建字符串对象 public String(byte[] chs) 根据字节数组的内容,来创建字符串对象
区别:
- 以“”方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份
- 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。
StringBuilder
StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。
选用原因:操作字符串的性能比String要更高(如拼接、修改等)
内存分配图:
构造器
名称 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
常用方法
方法名称 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据并返回StringBuilder对象本身 |
public StringBuilder reverse() | 将对象的内容反转 |
public int length() | 返回对象内容长度 |
public String toString() | 通过toString()就可以实现把StringBuilder转换为String |