javaSE15-- 基本数据类型包装类

基本数据类型包装类

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类.

为了编程方便

包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。

在java中, 系统为每一个基本类型都提供 了 一个对应的包装类型

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
基本类型包装类
doubleDouble
charCharacter
booleanBoolean

不能直接把基本类型数据赋值给引用类型变量
当前程序没有语法错误,是因为Java把这些基本类型数据自动转换为了包装类对象, 再把包装 类对象传递给obj形参

public class Test01 {
	public static void main(String[] args) {
		m1(true);
		m1(456);
		m1(3.14);
		m1("abc");
		/*
		 * 不能直接把基本类型数据赋值给引用类型变量
		 * 当前程序没有语法错误,是因为Java把这些基本类型数据自动转换为了包装类对象, 再把包装 类对象传递给obj形参
		 */
	}
	// 需求: 定义方法, 可以处理任意类型的数据
	public static void m1(Object obj) {
	}
}

装箱拆箱

  • 装箱:把基本类型转换为包装类对象
  • 拆箱:把包装类对象转换为基本类型
  • 在Java中, 可以自动的进行装箱与拆箱
Integer i1 = 147; 		//自动装箱
int num = i1; 			//自动拆箱

Integer i2 = 666;

Integer i3 = 666; //重新创建了一个包装类对象

Integer i2 = 666; 		//根据基本类型数据666创建了一个包装类对象, 把这个包装类对象的引用赋值给i2
Integer i3 = 666;		//重新创建了一个包装类对象
System.out.println( i2.equals(i3));  	//true
System.out.println( i2 == i3 ); 		//false
Integer i4 = 77;
Integer i5 = 77;
System.out.println( i4 == i5 ); 		//true

Java认为-128~127之间的整数使用最频繁,所以这个范围内整数创建的包装类对象采用享元模式,即把包装类对象存储到共享池中

Long gg1 = 15L;
Long gg2 = 15L;
System.out.println( gg1 == gg2 ); 		//true


包装类对象的创建

  • 根据基本类型创建包装类对象
  • 根据字符串创建包装类对象// 字符串的格式要符合数字的格式
  • 布尔类型的包装类把"true"字符串转换为true, 其他的字符串都转换为false
  • Character包装类只有一个构造方法…character1 = new Character(“A”);
Boolean  boolean1 = new Boolean(true);
short s = 123;
Short short1 = new Short(s);
Integer integer1 = new Integer(78945);
Double  double1 = new Double(3.14);
Character character1 = new Character('a');


boolean1 = new Boolean("true");
integer1 = new Integer("456");
double1 = new Double("45.789");

double1 = new Double("23e3");	//科学计数法
System.out.println(double1);		//23000.0


输出常用字段

System.out.println( Integer.BYTES); 			//字节数, 4
System.out.println( Integer.SIZE);				//位数:  32
System.out.println( Integer.TYPE);				//基本类型 : int
System.out.println( Integer.MIN_VALUE);
System.out.println( Integer.MAX_VALUE);

包装类的常用方法

**可以把字符串转换为基本类型数据 ** 经常用

int num = Integer.parseInt("789");  	
dd = Double.parseDouble("45.78");

把基本类型/字符串转换为包装类对象

i1 = Integer.valueOf(369);
i2 = Integer.valueOf("258");

Integer i1 = new Integer(123);
Integer i2 = new Integer("456");

从Number继承的 方法, 可以把包装类对象转换为基本类型数据

byte bb = i1.byteValue();
double dd = i2.doubleValue();

包装类实现了Comparable接口,重写了compareTo()方法, 根据包装类的value字段比较大小
每个包装类都有一个value字段,保存对应基本类型的数据

System.out.println( i1.compareTo(i2) ); 		//-1
Character c1 = new Character('A');
Character c2 = new Character('a');
System.out.println( c1.compareTo(c2));  		//-32
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean(false);
System.out.println( b1.compareTo(b2));  		//1

equals(), 根据value字段进行判断是否相等

System.out.println( i1.equals(i2));

注意, 字符串要符合数字格式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值