包装类、Object类、String类、

系列文章目录

包装类、Object类、String类的一些常用方法,以及包装类、基本数据类型、String类型的相互转换

一、包装类

包装类其实就是将八大数据类型转为引用数据类型(这些包装类都是在java.lang包下的)

int对应Integer,char对应Character,其余的都是首字母大写

1.自动拆装箱

jdk1.5之后就可以实现包装类的自动拆装箱。

1.jdk1.5之前:Integer a = new Integer(1);  int b = a.intValue();

jdk1.5之后:Integer a = 1; int b = a;

2.Integer缓冲区

integer缓冲区是一种特殊的缓存机制,用于存储 [-128,127]的Integer常量对象

1.使用前提:必须是在自动装箱时

2.自动装箱时,如果在 [-128,127]范围里,会返回一个Integer缓冲区的对象,两个对象是一样的。(不是创建了对象),减少内存空间,提高性能

3.常用方法

1.静态方法:

Integer.toString()方法,可以将数字按进制输出(字符串形式)。

例如:Integer.toString((100,2));将100按二进制输出(字符串形式)

Integer.toBinaryString(100);  将100转为二进制形式(同理还有八进制,十六进制)

重要方法:

public static int parseInt(String s):将字符串s转为 int类型(通过类名.调用)

同理可推其他包装类的。

二、Object类

Object类是所有类的父类,所有类默认继承Object类。

1.toString()方法

一般子类需要重写toString()方法,作用是返回当前对象的字符串形式。

  • 返回一个对象的字符串形式

  • Object里使用的是全限类名+@+hashCode的16进制字符串

  • 也可以通过重写,在输出对象时,输出该对象的某些属性值

2.equals()方法

很多类都对equals()方法进行了重写,在Object类中,是使用==去进行比较的

我们可以重写方法去比较对象的具体属性是否相等,而不是比较对象的地址。

3.hashCode()方法

是一种散列算法,将任意长度的数据输入,通过hashCode()计算,得到相同长度的输出(长变短,是一种压缩映射)。

相同的输入会得到相同的输出

不同的输入可能得到相同的输出,也可能得到不同的输出。

引用变量的hasdCode值:

两个引用变量指向同一个对象,hashCode值一定相同

如果两者的hashCode值不同,则不是指向同一个对象

如果hashCode值相同,可能是指向同一个对象,也可能是不同的对象

  • hashCode算法一般和equals一起重写,也是借助属性的值,定义算法

4.getClass()方法

子类不可以重写getClass方法,由final修饰的本地方法。

调用的一定是Object的方法,获取的是当前运行时指向的字节码对象

5.==和equals()的区别(重点)

==是一个操作符,不能被重写,它比较基本数据类型时,比较的是值,比较引用数据类型时,是比较两者的地址值是否相同。

equals()方法可以 被重写,在Object类中也是使用==去比较,如果想要比较对象具体的属性,需要重写方法(根据程序员自己的需求去重写)。

三、String类

1.简述

String类型是在java.lang包下的,字符串值不可变,字符串对象一旦创建值就不能被修改。

2.常用方法(重要)

replace( 字符串,替代的值)方法:将字符串替代为替代的值。(返回一个新的字符串)

3.常量池

String常量池是在堆中的。

1.当我们创建字符串对象时,如果字符串常量池中已经有相同字符串的对象,那么就不会创建对象,而是会返回字符串常量池的对象。

节省内存空间, 还可以享受垃圾回收机制。

2.将字符串放入常量池方法

直接赋值,或者调用intern()方法。

通过new的字符串不能放入常量池中,可以调用intern()方法。

3.使用+拼接的字符串常量,结果也是一个字符串常量,如果常量池中没有,java会自动存入。

四、包装类、基本类型、String类型之间相互转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值