包装类

什么是包装类

java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征。

 * byte 			Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean

基本数据类型–>包装类

调用包装类的构造器:

int num1 = 10;
Integer in1 = new Integer(num1);
System.out.println(in1.toString()); Integer in2 = new Integer("123");
System.out.println(in2.toString());//数字字符串也可以 //报异常,只能使用对应数据类型的字符串,含有其他类型会报错
Integer in3 = new Integer("123abc");
System.out.println(in3.toString()); Float f1 = new Float(12.3f);
Float f2 = new Float("12.3");
System.out.println(f1);
ystem.out.println(f2); //布尔类型是特例,只要不是标准的true就都是false
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("TrUe");
System.out.println(b2);
Boolean b3 = new Boolean("true123");
System.out.println(b3);//false

包装类–>基本数据类型

调用包装类Xxx的xxxValue(),xxx为具体的基本数据类型。

Integer in1 = new Integer(12);
int i1 = in1.intValue();
System.out.println(i1 + 1); Float f1 = new Float(12.3);
float f2 = f1.floatValue();
System.out.println(f2 + 1);

自动装箱与自动拆箱

JDK 5.0 新特性:自动装箱 与自动拆箱。

public void method(Object obj){
System.out.println(obj);
} public void test(){
int num1 = 10;
method(num1);//按理来说基本数据类型是不能直接放入该方法中,但有了自动装箱的新特性,num1被自动装箱成包装类。 //自动装箱:基本数据类型 --->包装类
int num2 = 10;
Integer in1 = num2;//自动装箱 boolean b1 = true;
Boolean b2 = b1;//自动装箱 //自动拆箱:包装类--->基本数据类型
int num3 = in1;//自动拆箱
}

基本数据类型、包装类与String的转换

基础数据类型、包装类–>String

方式1:连接运算

int num1 = 10;
String str1 = num1 + "";

方式2:调用String的valueOf(Xxx xxx)

int num1 = 10;
float f1 = 12.3f;
String str2 = String.valueOf(f1);//"12.3" Double d1 = new Double(12.4);
String str3 = String.valueOf(d1);
System.out.println(str2);
System.out.println(str3);//"12.4"

String–>基础数据类型、包装类

调用包装类的parseXxx(String s)

public void test5(){
String str1 = "123";
int num2 = Integer.parseInt(str1);
System.out.println(num2 + 1); String str2 = "true1";
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);
}
public void test3() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true Integer x = 128;//相当于new了一个Integer对象
Integer y = 128;//相当于new了一个Integer对象
System.out.println(x == y);//false
}

Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128-127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在-128-127范围内时,可以直接使用数组中的元素,不用再去new了,此时地址是一样的,所以使用==是true,如果不在该范围的数,则是false。目的:提高效率。

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

  1. Java 包装类笔记

    @(JDK)[包装类] Java 包装类笔记 当需要使用到集合的时候,如果是基础数据类型,需要转换为包装类,再使用,在JDK1.5之前,每次使用的时候,都需要手动转换为包装类(称为装箱),然后在使用的 ...

  2. Java包装类及其拆箱装箱

    Java包装类,Wrapper~由于在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型).基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提 ...

  3. Java包装类的常量池

     Integer a=Integer.valueOf(100); Integer b=Integer.valueOf(100); System.out.println(a==b); Double d1 ...

  4. JAVA包装类的缓存范围

    JAVA包装类的缓存范围 前两天面试遇到两个关于JAVA源码的问题,记录下来提醒自己. 1.写出下面的输出结果 System.out.println(Integer.valueOf("100 ...

  5. java包装类和值类型的关系

    java包装类总是让人疑惑 它与值类型到底是怎么样一种关系? 本文将以int和Integer为例来探讨它们的关系 java值类型有int short char boolean byte long fl ...

  6. java包装类的缓存机制(转)

    出处: java包装类的缓存机制 java 包装类的缓存机制,是在Java 5中引入的一个有助于节省内存.提高性能的功能,只有在自动装箱时有效 Integer包装类 举个栗子: Integer a = ...

  7. java : 包装类 缓冲机制的使用(转载)

    摘要: 八种基本数据类型和其包装类中 Integer valueOf(int i).Byte valueOf(byte b).Short valueOf(short s).Long valueOf(l ...

  8. Java 包装类 自动装箱和拆箱

    包装类(Wrapper Class) 包装类是针对于原生数据类型的包装. 因为有8个原生数据类型,所以对应有8个包装类. 所有的包装类(8个)都位于java.lang下. Java中的8个包装类分别是 ...

  9. Java包装类缓存

    1.基本概念 在jdk1.5及之后的版本中,Java在5大包装类中(Byte,Charactor,Short,Integer,Long)增加了相应的私有静态成员内部类为相应包装类对象提供缓存机制,In ...

  10. 学习笔记——Java包装类

    由于Java不能定义基本类型的对象,所以通过包装类提供了各种可用方法的封装. 这一部分的知识,需要能够通过查看Integer.Boolean.Byte.Character.Double.Number类 ...

随机推荐

  1. LuoguB2030 计算线段长度 题解

    Content 已知线段的两个端点的坐标 \(A(X_a,Y_a),B(X_b,Y_b)\) ,求线段 \(AB\) 的长度. 数据范围:\(|X_a|,|Y_a|,|X_b|,|Y_b|\leqsl ...

  2. CF734B Anton and Digits 题解

    Content 有 \(k_2\) 个 \(2\).\(k_3\) 个 \(3\).\(k_5\) 个 \(5\) 和 \(k_6\) 个 \(6\),你可以用这里面的数字来组成 \(256,32\) ...

  3. centos使用docker安装clickhouse

    拉取镜像 docker pull yandex/clickhouse-server:20.3.12.112 启动 docker run -d --name=clickhouse-server -p 8 ...

  4. 金智维RPA培训(一)产品基础架构-RPA学习天地

    1.产品组成分为:Server,control,agent三个组件,支持CS和BS架构.独有的中继服务器可以解决跨网段的问题,这里应该还是采用了多网卡模式. 其中:Agent负责对流程的执行工作.Co ...

  5. 痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(2) - 在Flash调试及离线启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板在Flash调试与离线启动. 腾讯 TencentOS 团队于 ...

  6. qt5之使用QtXlsxWriter库

    note Qt version: 5.12 platform: os x 10.15 本文将介绍直接使用QtXlsxWriter源码 准备 下载QtXlsxWriter 使用Qt Creator 创建 ...

  7. C/C++ 结构体字节对齐

    在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题.从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此 ...

  8. 1170 - Counting Perfect BST

    1170 - Counting Perfect BST   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...

  9. misc之压缩文件处理

    misc之压缩文件处理 一.预备知识 1.头文件名代码   二.实验环境 1.winhex   三.题目来源 攻防世界杂项:János-the-Ripper.再见李华   实验一 打开题目文件是一个压 ...

  10. 洛谷1052——过河(DP+状态压缩)

    题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...