Java常用类学习
-
object类是Java所有类的顶尖父类,任何一个类,包括我们数组最终都继承了Object类。
-
Object类中提供了很多核心的方法,目前比较重要的有三个:
- toString
- 将Java对象转成字符串输出(一般情况下输出的都是对象的属性)
- 在Java中使用System.out.println(对象名)默认会调用toString()方法,输出的是toString结果
- Object的toString方法如果没有重写,那么默认就是输出当前类的包名.类名@哈希码(对象的地址)
- equals
- == 基本数据类型判断值是否相等,引用数据类型判断地址是不是相等
- 判断两个引用数据类型值是不是相等 应该使用Object类自带的equals方法。equals方法就是用来判断两个引用类型的值是不是相等的。
- 在调用equals方法时,如果你没有在当前类中重写equals方法,那么默认调用Object类中equals方法。而Object中的equals方法判断两个对象是不是相等,用的是==判断
- 一般我们如果要判断两个对象是否相等,需要重写equals方法,不能使用Object类
- String字符串也是一个Java类,它把equals方法给重写了。比较的两个字符串的值是不是相等的
- hashCode
- 代表的是当前对象的哈希码,在Java中可以理解称为Java对象的地址值
- hashCode方法有一个要求,如果两个Java对象使用equals方法返回的是true,两个对象相等,那么两个对象调用hashCode方法返回的哈希码应该是一致,反之不成立
- hashCode值一般也是根据当前类的属性值计算的
这三个方法都是公开的,任何一个类,只要是Object的子类,最后都会具备这三个方法
- toString
-
包装类
- Java是一门纯面向对象编程语法。面向对象就是以类来组织代码,以对象来调用
- Java数据类型
- 基本数据类型
- 不符合我们Java的面向对象规则
- 引用数据类型
- 面向对象的直接体现
- 基本数据类型
- 为了让Java更加面向对象,弥补基本数据造成的面向对象缺失的问题,在Java中提出了包装类。包装类就是基本数据类型在Java中的类的表现形式
- 包装类都在Java的java.lang包下
- byte short int long float double char boolean
- Byte Short Integer Long Float Double Character Boolean
- 自动装箱和自动拆箱
- 自动装箱
- 可以直接将基本数据类型的值赋值给包装类,而不使用我们的new创建对象
- 自动装箱会对=右边的值调用我们包装类中valueOf(值)方法完成
- 自动拆箱
- 在进行计算的时候,直接使用引用数据类型的变量也可以完成+ - * /等运算
- 自动装箱
- 注意事项
- 整数类型的包装类的问题
- 整数类型的缓冲池和自动装箱问题
- 整数类型的包装类的问题
-
String字符串类
- String是Java中一种引用数据类型,表示的是一个用“”包括起来的数据
- String也是一个Java类,而且是一个被final修饰的类
- String底层是使用的一个不可变的字符数组char[]来存放字符串数据
- String中也有类似于自动装箱的功能。可以直接将值赋值给String类型,但是我们说String底层是一个不可变的字符序列
- String中对某一个字符串进行更改修改之后,都会产生一个新的字符串序列,而原有的字符串序列不受影响
- String中定义的任何一个字符串数据最终都会放到堆区的字符出常量池当中