什么是包装类?

写写我的想法

就是对于对象和基本类型的无法匹配和强转,基本类型在面向对象的实例类型中,反而成了个特殊的数据类型的存在

在一些特定的情况,我们希望通过对象的方式去处理数据,但是基本类型的数据没有像Object的方法可以使用

所以设计者对所有的基本数据类型进行了封装处理,可以说包装类也称为封装类

父类Number

基本类型  对应的封装类

boolean Boolean

byte   Byte

char   Character

short   Short

int    Integer

long  Long

float  Float

double  Double

有了类的特点,就可以像对象一样操作了

基本类型  ->  引用类型

    @Test
public void test1(){
// 基本数据类型 转换 包装类 int i = 20;
Integer integer = new Integer(i); // 默认自动装箱 自动封装 // 或者直接入参
Integer integer1 = new Integer(100); // 支持了字符串入参 如果格式不符合,抛出 NumberFormatException 数值格式异常
Integer integer2 = new Integer("23134");
}

引用类型  ->  基本类型

    @Test
public void test1(){
// 包装类 转换 基本数据类型 Integer integer = new Integer(100); // intValue(); 转换返回基本类型值
int value = integer.intValue(); // 已经自动拆箱处理了
}

现在已经是自动装箱拆箱了

@Test
public void test1(){
Integer integer = 100; // 自动装
int value = integer ; // 自动拆
}

对String的处理

    @Test
public void test1(){
int i = 100;
String str = i + ""; // 直接拼接即可
String str2 = String.valueOf(10.03); // String.valueOf()方法 int anInt = Integer.parseInt(str); // 拆箱
double v = Double.parseDouble(str2); // 拆箱
}

关于包装类在三元运算会提升数据类型

    @Test
public void test1(){
Object object = true ? new Integer(10) : new Double(20);
System.out.println(object); // 10.0 Object o2;
if (true) o2 = new Integer(1);
else o2 = new Double(2);
System.out.println(o2); //
}

比较判断

    @Test
public void test1(){
Integer i = new Integer(10);
Integer j = new Integer(10);
System.out.println(i == j); // false Integer a = 100;
Integer b = 100;
System.out.println(a == b); // true Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false
}

为什么128 就False

- Integer内部定义了一个IntegerCache结构,IntegerCache定义了Integer[]数组,称为预加载池

保存了-128 到 127的字面值 可以直接使用,如果调用超出池范围的字面值,就需要扩容了,所以大于127的都是new的,地址自然不一样

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

  1. 菜鸡的Java笔记 第二十五 wrapperClass 包装类

    wrapperClass 包装类         1.包装类的特点        2.装箱与拆箱操作        3.数据转型处理            内容        Object 类可以接收 ...

  2. 浅谈Java的包装类

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

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

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

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

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

  5. Java学习——包装类

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

  6. 小白学Java:包装类

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

  7. Java:包装类小记

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

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

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

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

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

随机推荐

  1. iOS开发:Swift/Objective-C高效生成随机字符串

    原文连接 Objective-C版 // 随机生成字符串(由大小写字母.数字组成) + (NSString *)random: (int)len { char ch[len]; for (int in ...

  2. Journal of Proteome Research | Improving Silkworm Genome Annotation Using a Proteogenomics Approach (分享人:张霞)

    题目:Improving Silkworm Genome Annotation Using a Proteogenomics Approach 期刊:Journal of Proteome Resea ...

  3. 2020年Java基础高频面试题汇总(1.4W字详细解析)

    1. Java语言有哪些特点 (1)简单易学.有丰富的类库 (2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) (3)与平台无关性(JVM是Java跨平台使用的根本) (4)可靠安全 ...

  4. div 3 frog jump

    There is a frog staying to the left of the string s=s1s2…sn consisting of n characters (to be more p ...

  5. [WPF]总结一些我在开发WPF时常用的工具

    我从一万二千年前开始写XAML,这么多年用了很多各式各样的工具,现在留在电脑里的.现在还在用的.在写WPF时用的也就那么几个.这篇文章总结了这些工具,希望这些工具可以让WPF开发者事半功倍. 1. V ...

  6. 终极解决方案——sbt配置阿里镜像源,解决sbt下载慢,dump project structure from sbt耗时问题

    #sbt下载慢的问题 默认情况下,sbt使用mvn2仓库下载依赖,如下载scalatest时,idea的sbtshell 显示如下url https://repo1.maven.org/maven2/ ...

  7. PyTorch专栏开篇

    目前研究人员正在使用的深度学习框架不尽相同,有 TensorFlow .PyTorch.Keras等.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果. ...

  8. Go语言库系列之dotsql

    导读:能单独拎出SQL文件的某一行或几行执行,是不是非常有趣?今天我们来介绍一下这个有意思的库--dotsql. 背景介绍 dotsql不是ORM,也不是SQL查询语句的构建器,而是可以在一个SQL文 ...

  9. R与金钱游戏:美股与ARIMA模型预测

    似乎突如其来,似乎合情合理,我们和巴菲特老先生一起亲见了一次,又一次,双一次,叒一次的美股熔断.身处历史的洪流,渺小的我们会不禁发问:那以后呢?还会有叕一次吗?于是就有了这篇记录:利用ARIMA模型来 ...

  10. Java生鲜电商平台-电商中"再来一单"功能架构与详细设计(APP/小程序)

    Java生鲜电商平台-电商中"再来一单"功能架构与详细设计(APP/小程序) 说明:在实际的业务场景中(无论是TO B还是TO C)不管是休闲食品.餐饮.水果.日用百货.母婴等高频 ...