09_常用类_其他

发布时间 2023-07-06 17:17:59作者: 水木夏

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其实常被称为不可变字符串类型,它的对象在创建后不能被更改。

image-20230226165815369

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一次都会产生一个新对象,放在堆内存中。

image-20230226171929189

image-20230226171939284

StringBuilder

StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。

选用原因:操作字符串的性能比String要更高(如拼接、修改等)

内存分配图:

image-20230305164242789

image-20230305164405893

构造器

名称 说明
public StringBuilder() 创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str) 创建一个指定字符串内容的可变字符串对象

常用方法

方法名称 说明
public StringBuilder append(任意类型) 添加数据并返回StringBuilder对象本身
public StringBuilder reverse() 将对象的内容反转
public int length() 返回对象内容长度
public String toString() 通过toString()就可以实现把StringBuilder转换为String