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

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
posted @ 2023-07-06 17:13  水木夏  阅读(1)  评论(0编辑  收藏  举报