Surpass Day17——Java 包装类

目录

1、包装类

1.1 引入包装类的目的

1.2 关于包装类

1.3 关于部分包装类的父类Number

1.4 Integer类的构造方法

1.5 自动装箱/拆箱

1.6 数字格式化异常

1.7 Integer中常用方法

1.7.1 Integer的String转int方法

1.7.2 十进制转二进制

1.7.3 十进制转十六进制

1.7.4 十进制转八进制

1.7.5 valueOf方法

2、String、int、Integer三者的互相转换


1、包装类

1.1 引入包装类的目的

假设有一个方法的参数是Object类型的,现在需要传入一个整数,如何解决?

这时候把100这个 数字经过构造方法包装成对象

MyInt myint = new MyInt(100);

上面MyInt就是一个自定义的包装类

1.2 关于包装类

Java中除了8种基本数据类型之后又有8种包装类型,这八种包装类型属于引用数据类型

基本数据类型

基本数据类型                                  包装类型
byte                                    java.lang.Byte(父类NUmber)
short                                   java.lang.Shrot(父类NUmber)
int                                     java.lang.Integer(父类NUmber) 
long                                    java.lang.Long(父类NUmber)
float                                   java.lang.Float(父类NUmber)
double                                  java.lang.Double(父类NUmber)      
boolean                                 java.lang.Boolean(父类Object)         
char                                    java.lang.Character(父类Object)           

1.3 关于部分包装类的父类Number

Number是一个抽象类,无法实例化对象

Number中有以下方法:(负责拆箱)

byte byteValue()    以byte形式返回指定的数值
abstract double doubleValue()   以double的形式返回指定数值
abstract float floatValue()     以float的形式返回指定的值
abstract int intValue()         以int的形式返回指定的值
abstract long longValue()       以long的形式返回指定的值
short shortValue()              以short的形式返回指定的值 

这些方法其实所有子类中都有

1.4 Integer类的构造方法

将整形转换成Integer包装类型 Integer(int)

将String类型转换成Integer类型 Integer(String)

1.5 自动装箱/拆箱

自动装箱 int --> Integer Integer x = 100;

自动拆箱 Integr --> int int y = x;

//z保存的是内存地址
Integer z = 100;//等同于 Intteger z = new Integer(100);
System.out.println(z + 1);//这里z自动拆箱

注意:java中为了提高程序的执行效率,将【-128到127】之间所有的包装对象提前创建好,放到一个方法区的"整数型常量池"当中了,目的是只要在这个区间的数据都不需要再new了,直接从整数型常量池当中取出来

Integer a =128;//Intteger a = new Integer(128;
Integer b =128;//Intteger b = new Integer(128;
System.out.println(a == b);//false
​
Integer x =127;
Integer y =127;//x,y当中保存的内存地址是一样的
System.out.println(x == y);//true

1.6 数字格式化异常

之前所学的经典异常

1)空指针异常 NullPointerException

2)类型转换异常 ClassCastException

3)数组下标越界异常 ArrayIndexOutOgBoundsException

4)数字格式化异常 NumberForematException

Integer a = new Integer("中文");//编译没问题,运行时出现数字格式化异常

1.7 Integer中常用方法

1.7.1 Integer的String转int方法

parseInt()方法

static int parseInt(String s)

用途:网页上文本框输入的100实际上是字符串"100",而后台数据库要求存储100数字,这时候需要将"100"转换成100

唯一静态方法,传String,返回int

int retvalue = Integer.parseInt("123");

double retvalue = Double.parseInt("3.14");

1.7.2 十进制转二进制

Integer.toBinaryString(3);//11

1.7.3 十进制转十六进制

Integer.toHexString(16)//10

1.7.4 十进制转八进制

Integer.toOctalString(8)//10

1.7.5 valueOf方法

静态的 int——>Integer

static Integer valueOf(int i)

静态的 String——>Integer

static Integer valueOf(String i)

2、String、int、Integer三者的互相转换

//String ——> int
int i = Integer.parseInt("100");//i是100数字
System.out.println(i+1);//101
​
//int ——> String
String s = i + "";//"100"字符串
System.out.println(s+1);//"1001"
​
//int ——> Ingeter
//自动装箱
Integer x = 1000;
    
//Integer ——> int
//自动拆箱
int y = x;
​
//String ——> Integer
Integer k = Integer.valueOf("123");
​
//Integer ——> String
String e = String.valueOf(k);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖虎不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值