JavaSE - 三个特殊类(2)

二、Object类(RealFather) - Object类是Java默认提供的类

Java除了Object类,所有类都存在继承关系,默认会继承Object父类,所有类对象都可以通过Object类进行接收。

1.取得对象信息

直接使用对象输出的话,默认输出地址编码。

如果现在输出的是String对象,此时输出的是字符串的内容而不是地址,因为String类覆写了Object类的toString()方法。

System.out.println()   系统输出会默认调用对象的toString()方法。

如果默认给出的toString()方法功能不足(不想输出地址,而是输出本类信息),需要在子类中覆写toString()方法。

2.对象的比较 - equals()

3.接收引用数据类型

Object可以接收所有引用数据类型,包括:类、数组、接口

三、包装类

1.将基本数据类型封装到类中

- 为了让Object可以接收基本数据类型

(1)对象型包装类 - Object的直接子类

Boolean(boolean)、Character(char)

(2)数值型包装类 - Number的直接子类,存在数值转换异常

Byte(byte)、Short(short)、Long(long)、Double(double)、Float(float)、Integer(int)

2.拆箱与装箱

- 基本数据类型与相应包装类的数据处理

装箱:将基本数据类型变为包装类对象,利用每个包装类提供的构造方法实现装箱。

拆箱:将包装类中包装的基本类型值取出,利用Number类提供的xxValue()实现拆箱处理。

//手工装箱
Integer i = new Integer(10);
//手工拆箱
int result1 = i.intValue();

//自动装箱
Integer j = 20;
//自动拆箱
int result2 = j + 10;

阿里编码规范:所有相同类型的包装类对象之间的值比较,全部使用equals()方法比较。

对于Integer var = ? 

如果值在 -128~127 之间的对象在Integer常量池产生,会复用已有对象。并且在这个区间内的Integer值可以直接使用==比较判断

除此之外的所有数据都会在堆上产生,并不会复用已有对象。

public class Work{
    public static void main(String[] args){
        Integer i1 = 20;
        Integer i2 = new Integer(20);
        Integer i3 = 20;
        Integer i4 = 200;
        Integer i5 = 200;
        System.out.println(i1 == i2);
        System.out.println(i1 == i3);
        System.out.println(i4 == i5);
    }
}

输出结果为:
false
true
false

使用 int 还是 Integer ?

(1)【强制】所有POJO类属性必须使用包装类。POJO是简单Java类,只有基本属性、构造方法和getter、setter。

(2)【强制】RPC方法(远程方法调用)的返回值和参数必须使用包装类。

(3)【推荐】所有的局部变量使用基本类型。

类中的属性用包装类,方法中的局部变量使用基本属性。

3.字符串与基本类型转换

(1)将字符串转为基本类型

调用各个包装类的parseXX(String str)方法

eg:Integer.parseInt(str);      Double.parseDouble(str);

(2)基本类型转为字符串

  • “”+基本类型
  • 使用String类的 valueof(基本类型) 方法,静态方法,此方法不产生垃圾空间(推荐使用)。

eg:str.valueof(10);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值