我是靠谱客的博主 精明红酒,最近开发中收集的这篇文章主要介绍基本类型自动装箱(包装类),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java的8个基本类型:byte、short、int、long、float、double、char、boolean

这8个基本类型都不能当做对象来使用,只有引用类型可以。而且,也不能接受null值,null只能赋给引用类型。
即:int i = null;是错的
为了解决这个问题,Java为这8个基本类型提供了对应的包装类——可将他们包装成对象
8个包装类如下:
byte - Byte
short - Short
int - Integer
long - Long
float - Float
double - Double
char - Character
boolean - Boolean

  1. 自动装箱机制:可以使基本类型的值自动成为包装类的实例!

即:Integer i = 2; 是对的!
——2可以自动装箱成为Integer

Object ob = 2.3; 也是对的!
——2.3自动装箱为Double,Double向上转型为Object(因为Object是父类,Double范围比它小)
同理:Long lg = 3L;

  1. 自动拆箱机制:包装类的实例可以自动作为基本类型的值使用。

即可以直接用于运算:Long res = lg * in;

**【建议】**做项目时,建议使用包装类来声明变量
好处:基本类型能做的,包装类都可以做,它还可以当成对象使用,还可以接受null.

坏处:稍微多占了点内存

包装类的方法:
方法可将字符串转成对应的基本类型值

 String str = "123";
int i = Integer.parseInt(Str);
//输出int类型的123

——Integer.parseXxx (Xxx代表要转的类型)
在前面:《Java命令行输入几个数后做比较》文章中有用到。

【习题】用包装类声明变量时的缓存机制

public class 包装类
{
public static void main(String[] args)
{
//当程序对Integer使用装箱时,它有一个缓存机制,会缓存-128~127之间的对象
Integer i = 20; //在-128~127之间,缓存,系统创建了Integer类的对象i
Integer j = 20; //第二次用Integer类,系统直接用缓存中的对象
System.out.println(i==j); //二者对象相同,值也相同:true
//如果缓存范围太大的话,内存消耗太大
Integer k = 200;
//不在-128~127之间,对象不缓存,用完直接扔
Integer l = 200; //又重新创建了对象
System.out.println(k==l);//二者虽然值相同,但是对象不同:false
}
}

最后

以上就是精明红酒为你收集整理的基本类型自动装箱(包装类)的全部内容,希望文章能够帮你解决基本类型自动装箱(包装类)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部