包装类用途

Java中有些异类(8种基本数据类型)它们不能像对象一样进行属性和方法的调用以及进行相互之间的对象化处理,包装类的存在就是为了解决这些异类产生的问题,让它们能像对象一样进行交互。

包装类与基本数据类型之间的关系

image.png

包装类的常用方法

Java中所有包装类都是存放在java.lang这个包中。
以Integer为例,介绍它常用的属性和方法

public final class Integer(){
}

所有的包装类都是用final修饰,不允许被继承,无子类。

image.png

基本数据类型和包装类的转换

  • 装箱 : 基本数据类型转换为包装类
  • 拆箱:包装类转换为基本数据类型

自动装箱(拆箱):

int a = 1;
Integer b = a;

手动装箱(拆箱):

int a = 1;
Integer b = new Integer(a);//拆箱
int c = b.intValue();

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

通过包装类完成基本数据类型和字符串之间转换。

public class Demo {public static void main(String[] args){int a = 3;String name = Integer.toString(a);System.out.println(name);//1.int b = Integer.parseInt(name);//2.包装类的valueOf方法先将字符串转为包装类,再通过自动拆箱完成基本数据类型的转换int d = Integer.valueOf(name);}
}

补充知识

包装类对象的初始值

首先看下基本数据类型的初始值:

image.png

(注:上图中\u是unicode编码)

跟这些基本数据类型对应的包装类,它们的初始值是多少?

包装类的初始值为null。

包装类对象间比较

看代码:

public class WrapperTest {public static void main(String[] args) {// TODO Auto-generated method stubInteger one=new Integer(100);Integer two=new Integer(100);System.out.println("one==two的结果:"+(one==two));//1Integer three=100;//自动装箱//Integer three=Integer.valueOf(100);//等号两端比较的是值System.out.println("three==100的结果:"+(three==100));//2 自动拆箱//执行这个语句时 编译器实际上执行的是这个:Integer four=Integer.valueOf(100);Integer four=100;System.out.println("three==four的结果:"+(three==four));//3Integer five=200;System.out.println("five==200的结果:"+(five==200));//4Integer six=200;System.out.println("five==six的结果:"+(five==six));//5Double d1=Double.valueOf(100);System.out.println("d1==100的结果:"+(d1==100));Double d2=Double.valueOf(100);System.out.println("d1==d2的结果:"+(d1==d2));}}

上边代码这个部分:Integer.valueOf(100),为了执行的效率,在这个方法执行的过程中,java内存提供了一个类似于常量数组的缓存区(对象池),如果传入这个方法的参数是大于-128小于127这个范围,会去缓存区查找是否存在,如果有,直接产生,如果没有,实例化新的产生。这也就解释了为什么three==four打印出的值是ture。而five==six的结果是false。

八种基本数据类型中,除了float和double,其他的都是应用对象常量池这个概念的。

后续持续更新ing...

Java入门之包装类相关推荐

  1. java入门学习_Java入门学习进阶知识点

    Java入门学习进阶知识点 入门阶段,主要是培养Java语言的编程思想.了解Java语言的语法,书写规范等,掌握Eclipse.MyEclipse等开发工具,编写Java代码的能力.学完这个阶段你应该 ...

  2. 小白记事本--JAVA入门

    JAVA的安装与环境配置 Windows传送门 java开发环境搭建与eclipse安装教程 win10环境配置传送门:win10java环境配置 2021/6/8补充:java系统学习传送门:bil ...

  3. Java入门基础及面试100题--初入门

    Java入门基础及面试100题 注:适合应届毕业生或java初入门者 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程, ...

  4. Java入门 技术总结

    Java入门 技术总结 java简介 Java 是Sun Microsystems公司由James Gosling及其团队在1995年5月推出的高级语言,在2009年4月被oracle收购取得java ...

  5. java入门基础教程(纯干货知识点+视频资源)

    本套Java视频教程是黑马程序员冯老师精心录制的Java基础班视频,该视频专门针对零基础的学员录制,授课讲究通俗易懂.干货.通过该套Java视频教程的学习,相信你能够轻轻松松地入门java语言. 完整 ...

  6. 考研二战失败 我的从零开始Java入门学习(十)

    文章目录 一.集合 1.Collection集合类 1.1 Collection集合类方法 1.2 Collection的子类 2.Map集合类 2.1 Map集合类方法 2.2 Map类的子类 3. ...

  7. **JAVA入门基础2**(系列更新)———JAVA 基础变量

    **JAVA入门基础2**(系列更新)---JAVA 基础变量 Java基础 1.注释 2.标识符和关键字 2.1 标识符 2.2 关键字(keyword) 3.数据类型 3.1 基本数据类型 3.2 ...

  8. Java零基础无从下手?悄悄告诉你最快路径,最全方法|附Java入门基础视频教程

    学习路径:前端->后端 先学java前端,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!其中J2SE是关键,如 ...

  9. Java入门姿势【面向对象4】 static关键字

    上次我为大家写出啦"构造方法及其重载_方法的调用",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象3]构造方法及其重载_方 ...

最新文章

  1. 用python 10min手写一个简易的实时内存监控系统
  2. Android仿网易新闻导航栏PagerSlidingTabStrip
  3. Random Forest 实用经验(转)
  4. qq2009显ip版怎么用_毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑
  5. How to: Configure an Azure SQL Database firewall using the Azure Portal
  6. 特斯拉地图数据服务以后由百度地图提供
  7. vb使用open方法读写文件
  8. 期末计算机课总结100字,学期总结:学期总结100字
  9. 小项目,吃货联盟,java初级小项目,源代码
  10. Spring Cloud(Greenwich版)-06-Spring Cloud集成Feign
  11. MyEclipse问题收集
  12. linux dd 命令拷贝iso到U盘
  13. 【Uniapp 原生插件】芯烨云打印机插件
  14. 细胞亚器文章阅读ER-to-Plasma Membrane Tethering Proteins Regulate Cell Signaling and ER Morphology
  15. python能画k线图吗_python画k线图(一天的k线图怎么画)
  16. 解决VO类属性与要返回的json串字段名称不一样的问题
  17. {__ob__: observer}取值报错问题
  18. 别让用户发呆——设计中的防呆策略【转】
  19. h5逻辑_H5+app 混合开发
  20. 新美大和阿里本地生活的竞争趋势是如何的?

热门文章

  1. C++ XML解析之TinyXML篇[转]
  2. linux虚拟终端快捷键
  3. 8.11 更改用户ID和组ID
  4. 一个QQ多用户登陆的实例代码
  5. Mac 10.12安装粘贴板增加工具ClipMenu
  6. 某企业生产系统升级Linux系统及内核
  7. Maven学习教程(六)
  8. Thinkphp5创建控制器
  9. 统计学习方法笔记 -- 概论
  10. HashMap遍历的两种方式,推荐使用entrySet()