java——包装类及其常用方法;equals和==的区别

一、包装类的分类

1、八种基本数据类型相应的引用类型—包装类

基本数据类型

包装类
booleanBoolean
charCharacter
betyBety
shortShort
intInteger
longLong
floatFloat
doubleDouble

2、类图


 二、包装类和基本数据的转换(以Integer为例)

jdk5 前:手动装箱和拆箱

1、手动装箱 int->Integer

int n1 = 100;
Integer integer = new Integer(n1);//方式 1
Integer integer1 = Integer.valueOf(n1);//方式 2

注意:关于valueOf方法

如果 i 在 IntegerCache.low(-128)~IntegerCache.high(127),就直接从数组返回
如果不在 -128~127,就直接 new Integer(i)

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

2、手动拆箱 Integer -> int

int i = integer.intValue();

jdk5 后:自动装箱和拆箱

1、自动装箱 int->Integer

int n2 = 200;
Integer integer2 = n2; //底层使用的是 Integer.valueOf(n2)

2、自动拆箱 Integer->int

int n3 = integer2; //底层仍然使用的是 intValue()方法

 三、包装类型(以Integer为例)和 String 类型的相互转换

1、包装类->String

Integer i = 100;//自动装箱
String str1 = i + "";//方式 1
String str2 = i.toString();//方式 2
String str3 = String.valueOf(i);//方式 3

2、String -> 包装类

String str4 = "12345";
Integer i2 = Integer.parseInt(str4);//使用到自动装箱
Integer i3 = new Integer(str4);//构造器

四、Integer 类和 Character 类的常用方法

1、Integer 类(方法都是静态的)

System.out.println(Integer.MIN_VALUE); //返回最小值
System.out.println(Integer.MAX_VALUE);//返回最大值

toString(int i, int radix):String//将i转成radix进制的String字符串,并返回
toUnsignedString(int i, int radix):String//将i转成无符号的radix进制的String字符串,并返回
toHexString(int i):String//将i转成16进制的String字符串,并返回
toOctalString(int i):String//将i转成8进制的String字符串,并返回
toBinaryString(int i):String//将i转成2进制的String字符串,并返回

toString(int i):String//将i转成String字符串,并返回
toUnsignedString(int i):String//将i转成无符号的String字符串,并返回

parseInt(String s, int radix):int//将s看成radix进制的有符号整型,将其转化为十进制的int整型,并返回
parseInt(String s):int//将s转成十进制的int整型,并返回
parseUnsignedInt(String s, int radix)//将s看成无符号的radix进制的有符号整型,将其转化为十进制的int整型,并返回
parseUnsignedInt(String s)//调用parseUnsignedInt(s, 10)

2、Character 类

System.out.println(Character.isDigit('a'));//判断是不是数字
System.out.println(Character.isLetter('a'));//判断是不是字母
System.out.println(Character.isUpperCase('a'));//判断是不是大写
System.out.println(Character.isLowerCase('a'));//判断是不是小写
System.out.println(Character.isWhitespace('a'));//判断是不是空格
System.out.println(Character.toUpperCase('a'));//转成大写
System.out.println(Character.toLowerCase('A'));//转成小写

五、equals和==的区别

1、==是一个比较运算符

A)既可以判断基本类型,又可以判断引用类型

B)如果判断基本类型,判断的是值是否相等

C)如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象

2、equals:是Object类中的方法,只能判断引用类型

默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。

String s = new String("123");
boolean x = "123".equals(s);//true

Integer n = new Integer(123);
boolean x = new Integer(123).equals(n);//true

备注:

以上若有明显错误的地方,可以私信我哦,谢谢~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值