大纲:

包装类简介

创建包装类

自动装箱、拆箱

判断相等

默认值

其他

一、包装类简介

Java中共有八种基本类型,byte, short, int, long, float, double, char, boolean。

分别对应八种包装类,Byte, Short, Integer, Long,Float, Double, Character, Boolean。

相较于基础数据类型,包装类有许多方法和成员变量供我们使用。

每个包装类型都有一个名为value的成员变量,用来存储它自己基本类型的值。

Integer a = new Integer(1);//包装类

int b = 1;//基础类型

二、创建包装类型

以Integer为例子,其他包装类类似

//通过基本类型创建

new Integer(1);

Integer.valueOf(1);//通过字符串创建

new Integer("1"); //调用parseInt

Integer.valueOf("1"); //调用parseInt

Integer.parseInt("1");

几种常见创建方式,其他包装类也有类似的创建方法。

值得注意的是valueOf方法

public static Integer valueOf(inti) {if (i >= IntegerCache.low && i <=IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return newInteger(i);

}

可以发现使用了缓存,看下这个IntegerCache,它是Integer的嵌套类

private static classIntegerCache {static final int low = -128;static final int high = 127;//默认127,可配置

static finalInteger cache[];static{//将-128至127的包装类缓存到cache中

}

}

也就是说使用valueOf()来创建值为-128至127的包装类时,会使用已经创建好的缓存。我们创建包装类尽量使用这个方法避免重复创建对象。

还有一点需要注意的是,有2个包装类(Float, Double)是不使用缓存的

三、自动装箱、拆箱

Integer a = 1; //自动装箱,反编译后发现使用Integer.valueOf(1)方法

int b = a; //自动拆箱,反编译后发现使用a.intValue()方法

java1.5以后,编译器会帮助我们完成自动装箱拆箱、不需要我们手动转换。

四、判断相等

//基础类型判断相等直接用==判断即可//包装类型判断相等用equals,通过源码可知,比较的是两个包装类的基础类型的value值。//基础类型和包装类型比较

int a = 1;

Integer b= 1;

System.out.println(a==b);//true,这里b会被自动拆箱//包装类用==比较

Integer c = 1;

Integer d= 1;

System.out.println(c==d); //true,包装类自动装箱使用的是valueOf()方法,使用的是缓存

Integer e= 200;

Integer f= 200;

System.out.println(c==d); //false,这里由于200>127没有使用缓存,使用的都是new Integer()

五、默认值

包装类没有默认值,基础数据类型有初始化默认值。

private static inta;private staticInteger b;public static voidmain(String[] args) {

System.out.println(a);//0

System.out.println(b);//null

}

使用的时候需要注意与数据库打交道的po对象尽量使用包装类,因为数据库查询结果为null时,使用基础数据类型会被赋上默认值。

六、其他

泛型只能使用包装类。

计算的时候避免基础类型与包装类直接运算(Long+long 一个包装类与基础类型直接加法运算),会导致自动拆装箱,影响性能。

java包装类默认值_java包装类相关推荐

  1. java 注解默认值_Java系列之注解

    Java 注解(Annotation)又称之为 Java 标注.元数据,是 Java 1.5 之后加入的一种特殊语法,通过注解可以标注 Java 中的类.方法.属性.参数.包等,可以通过反射原理对这些 ...

  2. java 泛型 默认值_java泛型 Java泛型的入门知识

    在学习java的过程当中,我们就肯定会接触到java泛型,那么你知道java泛型是什么吗,有关java的使用方法又有哪些呢?今天小编就从java泛型的使用方法来了解一下java泛型这一知识. java ...

  3. java xmx 默认值_java默认的Xmx大小

    记录这个问题是因为看到CSDN上一个人问的一个问题: 为什么-Xmx的设置不管用,问题的内容大概是用top看进程资源的时候,VIRT列的内容为什么不符合自己设的值的预期(跟Xmx的值的关系). 1. ...

  4. java变量默认值_Java变量的默认值和初始化

    Java变量的默认值和初始化 学习自 <Thinking In Java> 变量的默认值 注意只有成员变量才有默认值,而局部变量必须要赋初值.为什么会这么设计,下面会讨论. 关于各种基础类 ...

  5. java对象默认值_java对象的默认值

    2.4.1 字段和方法 定义一个类时(我们在Java里的全部工作就是定义类.制作那些类的对象以及将消息发给那些对象),可在自己的类里设置两种类型的元素:数据成员(有时也叫"字段") ...

  6. java char 默认值_java 中char 的初始值

    jdk官方教程里有写 Default Values(缺省值) ----------------------------------------------------- |Data Type |Def ...

  7. 八大基本数据类型、数组和包装类默认值

    八大基本数据类型.数组和包装类默认值 1.八大基本数据类型 Java八种基本数据类型总结 序号 数据类型 大小/字节 封装类 默认值 可表示数据范围 1 byte 1 Byte 0 -128~127 ...

  8. java的默认值规则_Java 8:默认方法解析规则

    java的默认值规则 随着Java 8中默认方法的引入,一个类现在可以从多个位置(例如另一个类或接口)继承相同的方法. 在这种情况下,可以使用以下规则来确定选择哪种方法: 类或超类方法声明始终优先于默 ...

  9. java注解封装默认值_Java注解默认值

    可以为注解中的元素定义默认值.不需要为带有默认值的注解元素提供值. 默认值可以使用以下一般语法定义: @interface { () default ; } 关键字default指定默认值.默认值必须 ...

最新文章

  1. NIPS2018 | 腾讯AI Lab入选20篇论文,含2篇Spotlight
  2. 60篇论文入选,两度夺魁,“史上最难ECCV”商汤再攀高峰
  3. 第 5 章 Stream
  4. opengl库中gl glu glut glaux的区别
  5. cs8900a网卡驱动--寄存器
  6. java快捷键 --_Java中的快捷方式“或分配”(| =)运算符
  7. 谈谈你对oracle,对Oracle的优化
  8. SAP License:SAP与ORACLE到底谁更强?
  9. 王者荣耀服务器维护中有什么漏洞,王者荣耀:排位惊现漏洞,利用这个BUG一天上王者,三天登荣耀...
  10. 以贝叶斯思维看待世界
  11. c语言程序设计对称字符串,清华大学C语言程序设计 L13_字符串精选.pdf
  12. 割线法matlab实验报告,牛顿迭代割线法二分法算法实验报告.docx
  13. innodb_flush_method 的理解
  14. 用Springboot写饼状图
  15. 攻防世界_Crypto_Decrypt-the-Message
  16. 完全免费快速搭建个人www服务器
  17. System.Windows.Forms.DataVisualization.Charting.Chart
  18. 【干货】柔性电池的未来展望
  19. 为何要转换为GERBER文件交PCB厂制板
  20. esp32cam 服务端远程视频方案

热门文章

  1. 2017 Android github上优秀开源项目分类汇总
  2. 选择 UTF-8,结束纷争(转载) - 秋阳的软件测试专栏 - IT博客
  3. 第五章 线性规划方法 Linear Programming
  4. 解密中老年理财直播热背后的商业逻辑:用户运营/行业趋势/新风口
  5. Unity3D中XR平台了解
  6. php一次性上传多张图片
  7. 计算机二级C语言学习笔记(一)
  8. html密码输入框type为,添加密码输入框,需要设置
  9. 腾讯京东修改价值观:互联网企业还有梦想吗?
  10. 国产什么品牌的蓝牙耳机比较好?半入耳式蓝牙耳机排行榜