80070583类不存在_Java中常见的类

d6ff35ffe749df18cca15f6625b340bf.png
知识点思维导图

Object类

Object类的概念

  1. 类Object是类层次结构的根,也就是说任何类都是该类的直接或间接子类。
  2. 如果定义一个java类时没有使用extends关键字声明其父类,则其父类为Object类。
  3. Object类定义了“对象”的基本行为,被子类默认继承。

Object类中常用的方法

11fc7d71fdd16f131c3b64d84f9f0fde.png

equals方法

  1. Object类中默认equals方法的作用和逻辑运算符“==”相同,都是判断变量中存储的数据值是否相等。只是数据值可能是基本数据类型,也可能是地址。
  2. 想要比较引用数据类型所指向的内存空间中存储的内容是否相同,则需要重写equals方法。
  3. 重写equals方法要注意调用对象和参数对象指向同一个对象,内容一定相同;以及调用对象不为空,参数对象为null时,内容一定不相同的情况。

hashCode方法

为了使得hashCode方法结果与equals方法的结果保持一致,从而满足java官方的规定,需要重写该方法。

toString方法

使用print或println打印引用或字符串拼接引用都会自动调用toString方法。


包装类

包装类的概念

通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装类。

包装类的分类

655c076ae9b602627b07fca75cca1f06.png

Integer类

基本概念

java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。

常用的常量

106c33592c440200162d7e10502acd63.png

常用的方法

3c379808c607076cc97dde8c0fc8330f.png

自动装箱池

在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经装箱完毕,当程序中使用该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率。

java5之后就可以用赋值运算符实现拆装箱了

99a7d220dfda047c5bc9e2e8f89ddebc.png

Double类

基本概念

java.lang.Double类内部包装了一个double类型的变量作为成员变量,主要用于实现对double类型的包装并提供double类型到String类之间的转换等方法。

常用的常量

80efda6d330f462237ba3f4362f3c79f.png

常用的方法

d0a501a3cd7b51c3ef476c61861520df.png

Boolean类型

基本概念

java.lang.Boolean类型内部包装了一个boolean类型的变量作为成员变量,主要用于实现对boolean类型的包装并提供boolean类型到String类之间的转换等方法。

常用的常量

46b2708532106534b81b50e37d1cd2e4.png

常用的方法

e2db48d8414db23fb169135f9c227bcb.png

Character类型

基本概念

java.lang.Character类型内部包装了一个char类型的变量作为成员变量,主要用于实现对char类型的包装并提供char类型到String类之间的转换等方法。

常用的常量

fe47df3ed702685c6b0449b11e9b3f06.png

常用的方法

4d79cf15be45d2401b928f0c27f0b1b8.png

包装类的使用总结

  1. 基本数据类型转换为对应包装类的方式
    调用包装类的构造方法或静态方法即可
  2. 获取包装类对象中基本数据类型成员变量的方式
    调用包装类中xxxValue方法即可
  3. 字符串转换为基本数据类型的方式
    调用包装类中parseXxx方法即可

数学处理类

Math类

基本概念

java.lang.Math类主要用于提供执行数学运算的方法,如:对数,平方根等。

常用的方法

1615efb0fa48ed8597ed9b187994dafb.png

BigDecimal类

基本概念

由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助java.math.BigDecimal类型加以描述。

常用的方法

078ca62aab43457f9d892d885754be99.png

BigInteger类

基本概念

若希望表示比long类型范围还大的整数数据,则需要借助java.math.BigInteger类型描述。

常用的方法

339d1d748ec0b7410bb0bd17ff118e8b.png

String类

基本概念

  1. java.lang.String类用于描述字符串,java程序中所有的字符串字面值都可以使用该类的对象加以描述,如:“abc”。
  2. 该类由final关键字修饰,表示该类不能被继承。
  3. 从jdk1.9开始该类的底层不使用char[]来存储数据,而是改成byte[]加上编码标记,从而节约了一些空间。
  4. 该类描述的字符串内容是个常量不可更改,因此可以被共享使用。

常量池的概念

由于String类型描述的字符串内容是常量不可改变,因此java虚拟机将首次出现的字符串放入常量池中,若后续代码中出现了相同字符串内容则直接使用池中已有的字符串对象而无需申请内存以及创建对象,从而提高了性能。

常用的构造方法

2fd7a8a61ee8d2d7dae97d9feef812d9.png

字符串拼接注意事项

常量优化机制

两个字符串常量拼接起来的字符串如果常量池中存在的话,那么将用常量池中的字符串对象而不会创建新对象。

字符串常量拼接和变量拼接的区别

6d9a7693b0ec2eb3584f14f6e7ca1d7b.png
  • 首先字符串常量池中会增加“abc”,"ab","c"三个字符串对象。
  • “+”两边有一个不是字符串字面量的拼接为变量拼接。拼接结果如果在字符串常量池中存在,字符串常量池中不会创建新的字符串对象,如果不存在则会创建,但是不管怎样都会在堆区中创建新的字符串对象,并且堆区中的对象指向字符串常量池中的字符串。
  • “+”两边都是字符串字面量的拼接为常量拼接。拼接结果如果在字符串常量池中存在,字符串常量池中不会创建新的字符串对象,如果不存在则会创建。而且常量拼接不会在堆区中创建字符串对象。

e842391aad61074a61726b9ffcb71a53.png

String类型和数组之间的转换

常用的成员方法

97746de37fc05246bd999f605abd853b.png

8d7442ccc67b2c63b9d8a0ebda0cdc22.png

String类中字符的获取和使用

常用的方法

9df23fd7fdd2236d98f08041505b791b.png

ba23a850a0b9e68dc31de24f32bea53d.png

注意事项

3b867d428b14251ed93f54e9eb6b82b7.png

字符串之间比较大小

常用的方法

a8534c5a8214857ae381791058023e23.png

988037e9751ae678bcf11027ae45cd28.png

String类中其他方法

8733bb98764d7396ef93dd761801de54.png

41182b08e7d10d850472954166ad9926.png

String类中equals和hashCode方法

6bd38599e6219af8918eb2ded877ad1f.png

2f08610dde030698ea3863fbed4de42c.png

String类实现字符和字符串的正向和反向查找

常用的方法

a255d62bb6231cb5411b621a68aea064.png

25bc4e3487c1431030841dff2a9d11e8.png

854b7a12ad01d274666c1214ca32cebd.png

307408ba475019f943e48e72c54c0bd8.png

String类中子字符串的获取

常用的方法

1ad844cdc786d43433b3d7a837205835.png

c886660863bd0cf571d8b6c62919b738.png

正则表达式

基本概念

正则表达式本质就是一个“规则字符串”,可以用于对字符串数据的格式进行验证,以及匹配、查找、替换等操作。该字符串通常使用^运算符作为开头标志,使用$运算符作为结尾标志,当然也可以省略。

正则表达式的规则

dc6498ec129a66b270e2fff9514e1634.png

506e53e167edb7b5842cbb325f077cd4.png

003d46bc1302851b0044898b039ae33a.png

正则表达式相关的方法

f1bc5397e97ef42b7d321cc95ab44903.png

0c6aa48857e54d2c5b5f357ad2e7b413.png

b601e5b1cd2a6289ca9b56895d79e53e.png

52a2302a55b062d0a7b30579ead95212.png

可变字符串类和日期相关类

可变字符串类

基本概念

  1. 由于String类描述的字符串内容是个常量不可改变,当需要在java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内容空间的浪费。
  2. 为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:“ab”。
  3. StringBuffer类是从jdk1.0开始存在,属于线程安全的类,因此效率比较低。
  4. StringBuilder类是从jdk1.5开始存在,属于非线程安全的类,效率比较高。

StringBuilder类常用的构造方法

ac0f6de4d15a646d752d6e15f35ad45f.png

StringBuilder类常用的成员方法

948c5074a7463169136109d3e5901076.png

fc9a7a363fdb70c8c3ca09723ce3be03.png

d778a002a2c8460d4ff53eb10905db2c.png

b86bec9dcd119010094efac689f20ecb.png

62ebfa7ee5e81726da44fa8f8cc66dc9.png

StringBuilder类扩容算法的源码解析

当字符串的长度超过了字符串对象的初始容量时,该字符串对象会自动扩容。
默认扩容算法是:原始容量*2+2

注意事项

83fba715197ea516363e9e30eff2481b.png

日期相关类

System类的概述

基本概念

Java.lang.System类中提供了一些有用的类字段和方法。

常用的方法

3380b19e54025ead1fe40e6640a73b41.png

c29f2d060fb65a7294ee426b7e6be59b.png

Date类的概念

基本概念

Java.util.Date类主要用于描述特定的瞬间,也就是年月日时分秒,可以精确到毫秒。

常用的方法

bc4ccf7ca2963638a229b0f8e76cf6f8.png

bf293c9cdd09795ac636ffd0fdaa2180.png

SimpleDateFormat类的概念

基本概念

Java.text.SimpleDateFormat类主要用于实现日期和文本之间的转换。

常用的方法

b20ed7243d4a9a4f983bf3e48a187977.png

a9eb282df07caa38cd2256e25972c96a.png

Calendar类的概念

基本概念

  1. java.util.Calendar类主要用于描述特定的瞬间,取代Date类中的过时方法实现全球化。
  2. 该类是个抽象类,因此不能实例化对象,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高利历),对应世界上绝大多数国家/地区使用的标准日历系统。

常用的方法

80ae16b706183bc2316abd0bbcc62c77.png

670c3180673a20d92f27ef485923ee3e.png

f44059bf2600ad36ff713958984035a1.png

Java8日期相关类

java8日期相关类的由来和概述

java8日期类的由来

2ca7e930f272e3a5de3164e00c0b9f9b.png

java8日期类的概述

30e3615788b157fbb29c7e23837fb25c.png

LocalDate类的概述

基本概念

Java.time.LocalDate类主要用于描述年-月-日格式的日期信息,该类不表示时间和时区信息。

常用的方法

bed7ace1b6091f62a9ab935a53ae9878.png

LocalTime类的概述

基本概念

Java.time.LocalTime类主要用于描述时间信息,可以描述时分秒以及纳秒。

常用的方法

e0d67aae103403e883e39d7a22a56396.png

LocalDateTime类的概述

基本概念

Java.time.LocalDateTime类主要用于描述日期和时间信息

常用的方法

05dd23dda5cbd54aa45273722d8c61bc.png

5b49cb07f2dbb36301ca531d76b282b3.png

99657b4139bf8c87405b54459e596c38.png

Instant类的概述

基本概念

Java.time.Instant类主要用于描述瞬间的时间点信息。

常用的方法

f3b425a184034fb0a2a03dfe943d357d.png

e1228d9c8c8792be471238c768721127.png

DateTimeFormatter类的概述

基本概念

Java.time.format.DateTimeFormatter类主要用于格式化和解析日期。

常用的方法

12e5be8a199431f6329cf5b39a0d62bd.png

67221280f63d2c06e414fada61d12734.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值