一、概述

因为基本数据类型的变量身上没有任何的方法和属性,所以针对基本数据类型提供了对应的类形式--包装类。

利用这个类产生对象,调用对象身上的方法来操作这个数据。

二、分类

包装类分为以下几种:

基本数据类型 byte short long float double char  boolean int 
包装类 Byte Short Long Float Double Character  Boolean Integer 

三、包装类使用时需要注意点

  1. 除了int和char以外,其他类型的包装类都是将首字母大写。
  2. 自动封箱:将基本类型的变量直接赋值给对应的引用类型的对象。自动封箱在底层调用的是对应类的valueOf方法。
        //1. 将基本类型的变量直接赋值给对应的引用类型的对象过程--自动装箱
//自动封箱在底层会调用对应类身上的valueOf方法
//等价于Integer in = Integer.valueOf(i);
int i = ;
Integer in = i;
double d = 3.6;
Double dou = d;
Double dou = Double.valueOf(d);
System.out.println(dou);

3.对于整数而言,在进行自动封箱的时候,会有判断范围:-128~127,在此范围内的时候,数据会从Integer源码中的一个cache数组中取值,那么此时相同的两个数,其判断值是相同的,因为来自同一个位置。

当数据大于127时,两个包装类的对象比较时,其地址就不一样了,因此不相等。

         int i = ;
Integer i1 = i; //i = 26 时 cache[26 + 128]
Integer i2 = i; //1 = 526 new Integer(526)
//利用 == 进行比较,比较的是地址
System.out.println(i1 == i2);

4.自动拆箱的定义:将引用/包装类型的对象直接赋值给对应的基本数据类型的变量。自动拆箱在底层调用的是对应对象身上的**Value方法。比如:

        //2. 如果是包装类型和基本类型运算的时候,包装类型会自动拆箱 即in 拆箱成了int 500
int i = ;
Integer in = new Integer();
//i = in.intValue();
System.out.println(i == in); //500==500,此时进行了自动拆箱
System.out.println(in);

5.自动封箱和拆箱是JDK1.5的特性之一。

6.包装类产生的对象,只要实际值一样,那么哈希码一定一样。

7.NaN和任何东西都不相等,包括它本身。示例如下

        //0.0/0 = NaN 非数字;和任何东西都不相等,包括自身
System.out.println(0.0/);
System.out.println(Double.NaN == Double.NaN);
System.out.println(Double.isNaN(0.0 / ));

四、String类型和基本数据类型的相互转化

1、将String类型转化为基本数据类型使用包装类对应的parse***方法。

比如将String转化为int:

  int i = Integer.parseInt("-128");
System.out.println(i);
int i = Interget.valueOf("-128");

注意方法一和方法二的区别,方式1返回的是一个int类型;

方法2底层实际上调用了Integer(Integer.parseInt(s))方法,先转化为int类型,然后封箱变为包装类;再将字符串转换为Integer类型,最后经过自动拆箱转化为int类型。这种方式是不可取的。

2、将基本数据类型转化为字符串,直接调用String的valueOf方法即可。

String str3 = String.valueOf(i2);

Java的包装类的更多相关文章

  1. 浅谈Java的包装类

    一.什么是Java包装类 所谓Java包装类,就是将Java中的8种基本数据类型分别包装成为类的形式.包装类与基本数据类型的对应关系如下表所示. 基本数据类型 包装类 byte Byte short ...

  2. Java开发知识之Java的包装类

    Java开发知识之Java的包装类 一丶什么是包装类 包装类的意思就是对基本数据类型封装成一个类.这些类都是Number的子类.区别就是封装数据类型不同.包含的方法基本相同. 具体可以查询JAVA A ...

  3. [java初探09]__关于java的包装类

    前言 在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想 ...

  4. Java学习——包装类

    Java学习——包装类 摘要:本文主要介绍了Java中常用的包装类和基本类型之间的转换,包装类或基本类型和String之间的转换. 部分内容来自以下博客: https://www.cnblogs.co ...

  5. 小白学Java:包装类

    目录 小白学Java:包装类 包装类的继承关系 创建包装类实例 自动装箱与拆箱 自动装箱 自动拆箱 包装类型的比较 "=="比较 equals比较 自动装箱与拆箱引发的弊端 自动装 ...

  6. Java:包装类小记

    Java:包装类 对 Java 中的 包装类 这个概念,做一个微不足道的小小小小记 基本数据&包装类 四类八种基本数据类型: 数据类型 关键字 内存占用 取值范围 字节型 byte 1个字节 ...

  7. Java api 入门教程 之 JAVA的包装类

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

  8. Java 中包装类wrapped type之间以及和primitive type的比较

    注意, 包装类的实例之间比较, 是不能直接用 == 的 public static void main(String[] args) { // TODO Auto-generated method s ...

  9. JAVA的包装类 【转】

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

  10. java的包装类(转)

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

随机推荐

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:"text-success" 类的文本样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. Acwing779 最长公共字符串后缀

    题目大意:给定n个字符串,让你找到他们的最长公共字符串后缀是什么,可能为空. 分析:题目数据范围比较小,可以O(n*n)暴力匹配,即可解决这道问题.之所以写这道题的题解还是因为写字符串的题还不够多啊, ...

  3. 实验一 git代码版本管理

    实验目的 1. 了解分布式系统版本管理的核心机理. 2. 熟练掌握 git 的基本指令和分支管理指令. 实验内容 1. 安装 git.2. 初始化配置 git,git init ,git status ...

  4. day15-Python运维开发基础(json序列化模块、random / time / zipfile / OS模块函数)

    1. json序列化模块 # ### json """ 所有编程语言都能够识别的数据格式叫做json,是字符串 json: 将数据类型序列化成字符串 pickle:将数据 ...

  5. jq的链式调用.end();

    先上code <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. VUE框架下安装自带http协议

    在控制台CMD 中输入 npm install vue-resource --save-dev

  7. MyBatisPlus代码生成 mvc项目

    package com.test; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus ...

  8. Linux centosVMware vim 编辑模式、vim命令模式、vim实践

    一.编辑模式.命令模式 在一般模式下输入:或/可进入命令模式.在该模式下可进行走索某个字符或字符串,也可保存.替换.退出.显示行号等. /word:在光标之后查找一个字符串word,按n向后继续搜索 ...

  9. Lesson 47 The great escape

    What is one of the features of modern camping where nationality is concerned? Economy is one powerfu ...

  10. HTML设置表格

    1. 设置表格内容对齐方式 在HTML中通常通过align设置对齐方式,文字是: text-align ,表格是:align 如果将align属性设置给<table>标签,只能改变< ...