J2EE/JAVA——基础数据类型与包装数据类型

目录

1.为什么会有包装数据类型

2.两者的区别

(1)包装数据类型可以为null,基础数据类型不能为nul

(2)包装类型可以用于泛型,基础数据类型不可以

(3)存储方式与位置不同

3.包装数据类型的相关方法

(1)转换为字符串方法

 (2)字符串转换为整形方法

(3)比较数据方法


1.为什么会有包装数据类型

Java中的基础数据类型与包装数据类型:

基础数据类型包装数据类型
int Integer
shortShort
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
byteByte

        Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

        另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

2.两者的区别

(1)包装数据类型可以为null,基础数据类型不能为nul

		int a=null; //提示:Type mismatch: cannot convert from null to int
		Integer A=null;
		System.out.println(a);
		System.out.println(A);

        包装类型可用于 POJO 中,而基本类型则不行。原因是:数据库的查询结果可能是 null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把 Integer 对象转换成 int 值),就会抛出NullPointerException 的异常

(2)包装类型可以用于泛型,基础数据类型不可以

        List<int> listint=new LinkedList<>(); // 提示:Syntax error, insert "Dimensions" to complete ReferenceType
		List<Integer> listInteger=new LinkedList<>();

        因为泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是 Object 类及其子类。

(3)存储方式与位置不同

        基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用。所以在效率上,使用基础类型更加高效,因为包装数据类型需要占用更多的内存空间。由此可知,基础类型和包装类型在数值上可能相等,但是实际两者不相等。

3.包装数据类型的相关方法

        因为包装数据类型有其单独的类,类中包含许多处理数据的方法,接下来就以Integer类为例,介绍其中的部分常用方法。

(1)转换为字符串方法

toString将类型转换为指定进制字符串类型
toBinaryString将类型转换为二进制字符串类型
toOctalString将类型转换为八进制字符串类型
toHexString将类型转换为四六进制字符串类型
        Integer num=10;
		String string = Integer.toString(num); //10
		String string2 = Integer.toBinaryString(num); //1010
		String string3 = Integer.toOctalString(num); //12
		String string4 = Integer.toHexString(num);  //a

		String string5 = Integer.toString(num,2); //1010

 (2)字符串转换为整形方法

parseInt将字符串类型转换为Integer类型
valueOf将字符串类型转换为其他类型

		String str="100";
		Integer num=Integer.parseInt(str);
		Integer num1=Integer.valueOf(str);
		System.out.println(str); //100
		System.out.println(num); //100
		System.out.println(num1);//100

(3)比较数据方法

compare比较两个数据的大小,大于输出1,小于输出-1,等于输出0
min比较两个数据的大小,输出较小的数值
max比较两个数据的大小,输出较大的数值
		Integer num1=10;
		Integer num2=20;
		Integer num3=10;
		System.out.println(Integer.compare(num1, num2)); //-1
		System.out.println(Integer.compare(num1, num3)); //0
		System.out.println(Integer.compare(num2, num1)); //1
		System.out.println(Integer.max(num1, num2));//20
		System.out.println(Integer.min(num1, num2));//10

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值