Java常用工具_2.Java包装类

一、包装类与基本数据类型

包装类的作用

在这里插入图片描述
基本数据类型:(不具有对象的特征)没有属性、方法,无法对象化交互
包装类:拥有属性、方法,可以进行对象化交互

对应关系

在这里插入图片描述

二、包装类常用方法

1.java.lang.Integer

在这里插入图片描述
(1)包装类都是final修饰,因此不能被继承
(2)extends Number
数值型都继承自Number类,而字符(Character)、布尔(Boolean)继承自Object类
(3)在这里插入图片描述
(4)
在这里插入图片描述
(5)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
byteValue…等方法可以将int型转换为byte…型

三、装箱&拆箱

装箱:将基本数据类型的值转换为对应包装类的对象
拆箱:将包装类的对象转换为对应基本数据类型的值

装箱:自动装箱和手动装箱
拆箱:自动拆箱和手动拆箱

package com.study.wrap;

public class WrapTest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 装箱:把基本数据类型转换成包装类
		// 1、自动装箱
		int t1 = 2;
		Integer t2 = t1;
		// 2、手动装箱
		Integer t3 = new Integer(t1);
		// 测试
		System.out.println("int类型变量t1=" + t1);
		System.out.println("Ingeger类型对象t2=" + t2);
		System.out.println("Ingeger类型对象t3=" + t3);
		System.out.println("***********************");
		// 拆箱:把包装类转换成基本数据类型
		// 1、自动拆箱
		int t4 = t2;
		// 2、手动拆箱
		int t5 = t2.intValue();
		// 测试
		System.out.println("Integer类型对象t2=" + t2);
		System.out.println("自动拆箱后,int型变量t4=" + t4);
		System.out.println("手动拆箱后,int型变量t5=" + t5);
		double t6 = t2.doubleValue();
		System.out.println("手动拆箱后,double型变量t6=" + t6);// 2.0
	}

}

四、基本数据类型和字符串之间的转换

package com.study.wrap;

public class WrapTest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 基本数据类型转换为字符串
		int t1 = 2;
		String t2 = Integer.toString(t1);
		// 测试
		System.out.println("int类型转换为String类型对象t2=" + t2);
		System.out.println("*****************************");
		// 字符串转换为基本数据类型
		// 1、包装类的parse
		int t3 = Integer.parseInt(t2);
		// 2、包装类的valueOf先将字符串转换为包装类,再通过自动拆箱完成基本数据类型的转换
		int t4 = Integer.valueOf(t2);
		// 测试
		System.out.println("String类型转换为int类型变量t3=" + t3);
		System.out.println("String类型转换为int类型变量t4=" + t4);
	}

}

五、常量池

1.基本数据类型:

Java 语言提供了八种基本类型:六种数字类型(四个整数型,两个浮点型),
一种字符类型,还有一种布尔型.
1、整数:包括 int,short,byte,long ,初始值为 0
2、浮点型:float,double ,初始值为 0.0
3、字符:char ,初始值为空格,即’’ ",如果输出,在 Console 上是看不到效果的
4、布尔:boolean ,初始值为 false

2.包装类:

Java中的包装类包括:Integer、Long、Short、Byte、Character、Double、Float、Boolean、Big Integer、Big Decimal.
其中Big Integer、Big Decimal没有相对应的基本类型、主要应用于高精度的运算、Big Integer支持任意精度的整数、Big Decimal支持任意精度带小数点的运算。

3.包装类初始值

package com.study.wrap;

public class Cat {
	// 成员属性
	String name;
	Integer month;
	Double weight;
}

package com.study.wrap;

public class CatTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 实例化对象
		Cat one = new Cat();
		// 测试输出
		System.out.println("猫的昵称:" + one.name);
		System.out.println("猫的年龄:" + one.month);
		System.out.println("猫的体重:" + one.weight);
		// 输出结果为:
		/*
		 * 猫的昵称:null 猫的年龄:null 猫的体重:null
		 */
	}
}

3.基本类型与包装类型的异同:

1、在 Java 中,一切皆对象,但八大基本类型却不是对象.
2、声明方式的不同,基本类型无需通过 new 关键字来创建,而包装类型需 new 关键字.
3、存储方式及位置的不同,基本类型是直接存储变量的值保存在栈中能高 效的存取,包装类型需要通过引用指向实例,具体的实例保存在堆中.
4、初始值的不同,包装类型的初始值为 null,基本类型的的初始值视具体 的类型而定,比如 int 类型的初始值为 0,boolean 类型为 false.
5、使用方式的不同,比如与集合类合作使用时只能使用包装类型.

4.Integer的对象常量池:

Integer four = 100;// 自动装箱时,
相当于Integer four=Integer.valueOf(100);
当存入的值为-128<参数<127时,从缓存区(对象池)直接产生,
若不在范围内,则使用new实例化

package com.study.wrap;

public class WrapperTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Integer one = new Integer(100);
		Integer two = new Integer(100);
		System.out.println("one==two的结果:" + (one == two));// false

		Integer three = 100;// 自动装箱
		System.out.println("three==100的结果:" + (three == 100));// 自动拆箱,结果为true

		Integer four = 100;// 自动装箱时,相当于
		// Integer four=Integer.valueOf(100);当存入的值为-128<参数<127时,从缓存区(对象池)直接产生,不在范围内,实例化
		System.out.println("three==four的结果:" + (three == four));// true

		Integer five = 200;// 自动装箱
		System.out.println("five==200的结果:" + (five == 200));// true

		Integer six = 200;
		System.out.println("five==six的结果:" + (five == six));// false
		// 因为six=200,不在缓存区范围内,所以相当于new实例一个对象
	}

}

注意:八种包装类中,除了Float和Double,其他的都可以应用对象常量池的概念。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值