`
zsxzmxg
  • 浏览: 5058 次
社区版块
存档分类
最新评论

java包装类和基本类的分析(以Integer来介绍)

阅读更多
1.Integer类型的对象保存在堆中,引用保存在栈中。而int类型的数直接保存在栈中。
2.用==比较
Integer i1=1;
Integer i2=1;
Integer i11=128;
Integer i22=128;
Integer i3=new Integer(1);
Integer i4=new Integer(1);
int i5=1;
int i6=1;
//----------分类比较
System.out.println("i1=i2:"+(i1==i2));//true比较的是引用,因为有个装箱的过程,而装箱的时候会有一个1---127的缓存
System.out.println("i11=i22:"+(i11==i22));//false大于128了,所以不等
System.out.println("i3==i4:"+(i3==i4));//false比较的是栈里的引用,包装类型只要有new就会创建一个新的对象和引用,故为false
System.out.println("i5==i6:"+(i5==i6));//true比较的栈里的值,所以相等
//--------互相比较
System.out.println("i1=i5:"+(i1==i5));//true比较的时候先拆箱后比较,故相等
System.out.println("i1=i3:"+(i1==i3));//false比较的引用,i1走的是装箱流程,i3是new出来的,故不等
System.out.println("i3==i5:"+(i3==i5));//true较的时候先拆箱后比较,故相等
3.用equals比较
首先int和int是不能用equals进行比较的
然后其他的全部为true
我们来看一下Integer的equals方法是怎么写的
public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
}
比较两个对象的alue,如果传进来的参数是基本数据类型就会有一个装箱的过程,所以结果全部为true。


分享到:
评论

相关推荐

    java包装类练习.doc

    Java 包装类包括 Boolean、Byte、Character、Short、Integer、Long、Float 和 Double 八种。 1. Long 包装类型常量 cache 机制 在 Java 中,Long 包装类型的常量 cache 机制是指在 -128 到 127 之间的值会被缓存在...

    Java 包装类

    Java包装类是Java编程语言中的一个关键特性,主要用于将基本数据类型(如int、char、boolean等)与对象之间进行转换。这是因为Java的API库中许多类和方法都设计为接收或返回对象,而基本类型不是对象。为了解决这个...

    java原始数据类型的包装类

    为了使原始类型能够参与面向对象的编程,Java设计了八种对应的包装类(Wrapper Classes):Byte、Short、Integer、Long、Float、Double、Character和Boolean。这些包装类将原始类型封装成对象,使得我们可以使用对象...

    Java包装类

    ### Java包装类详解 #### 基本概念 在Java编程语言中,为了使基本数据类型也能具备对象的特性,例如调用方法等,Java为每一种基本数据类型提供了对应的包装类。这些包装类不仅提供了丰富的操作接口,还能够帮助...

    Java的基本数据类型和包装类的关系

    但在Java中不能定义基本类型(primitive type),为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本类型都提供了包装类,这样,我们便可以把这些基本类型转化为对象来处理了。这些包装类有:Boolean...

    Java包装类、拆箱和装箱详解.docx

    基本类型和对应的包装类可以相互转换:从基本类型向对应的包装类转换称为装箱,例如把 int 包装成 Integer 类的对象;从包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。 Java 中的八...

    Java包装类详解.pptx.pptx

    Java包装类是Java语言设计中的一个重要特性,它们是为了解决基本数据类型(如int、char、boolean等)无法直接参与面向对象编程的问题而引入的。包装类将基本数据类型转换为对象,使得我们可以在需要对象操作的场景下...

    Java包装类原理与用法实例分析

    Java包装类的版本区别在于,在JDK1.5以前,需要通过构造器来将基本数据类型转换成对应的包装类,而在JDK1.5之后,提供了自动装箱和自动拆箱功能,可以直接将基本类型赋给相应的包装类或将包装类赋给相应的基本类型...

    Java基本类型包装类概述与Integer类、Character类用法分析

    Java基本类型包装类概述与Integer类、Character类用法分析 Java基本类型包装类概述: Java基本类型包装类是将基本数据类型封装成对象的,以便在对象中定义更多的功能方法来操作该数据。常用的操作之一是用于基本...

    Java学习资料-包装类

    以下是关于Java包装类的详细知识: 1. **包装类的定义与作用** - Java的8个基本数据类型包括byte、short、int、long、char、float、double和boolean。每个都有其对应的包装类,分别是Byte、Short、Integer、Long、...

    Java八大基本类型和包装类.docx

    除了八大基本类型之外,Java 还提供了对应的包装类,分别是 Integer、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger 和 BigDecimal。这些包装类可以实现自动装箱和拆箱的功能,方便在不同类型...

    java 包装类发给的发广告豆干

    Java中的包装类是针对基本数据类型(如int、float等)设计的一组类,它们使得基本数据类型能够参与面向对象的编程。包装类解决了Java语言中基本类型与对象之间转换的不便,使得基本类型的数据可以像对象一样进行操作...

    java中Integer包装类的详细讲解(java二进制操作,所有进制转换)

    java中Integer包装类的详细讲解(java二进制操作,所有进制转换) 十进制转成二进制 十进制转八进制 十进制转十六进制 十六进制转成十进制 十六进制转成二进制 八进制转成十进制 等等所有进制转换和操作

    java常用系统类库实验

    以Math类和基本类型的包装类实验为例,实验程序`MathTest.java`展示了如何使用Math类进行数学运算,以及如何使用包装类进行基本数据类型的处理。以下是对实验程序的详细分析: 1. **输入数据**:首先,程序通过`...

    Java学习笔记接口包装类

    2. **自动装箱与拆箱**: 自Java 5开始,编译器支持自动装箱(将基本类型转换为对应的包装类对象)和拆箱(将包装类对象转换为基本类型)。例如,`int i = 10; Integer integer = i;` 这里的i到integer就是自动装箱。...

    JAVA基本类源代码

    3. `Integer`类:作为`int`的包装类,提供了将整数与字符串之间转换的便利方法,以及一些数学运算和比较操作。研究`Integer`源码有助于理解自动装箱拆箱的过程。 4. `ArrayList`类:基于数组实现的动态列表,允许在...

    Java面向对象(高级)- 包装类(wrapper)的使用

    包装类的主要作用是将基本数据类型转换为对象,以满足Java中只针对对象设计的API和新特性的需求,如泛型、接口等。在面向对象编程中,包装类提供了更多的功能和便利。 二、包装类的使用 1. 自定义包装类:虽然Java...

    JAVA-int和Integer的区别1.zip

    另一方面,`Integer`是Java中的封装类(Wrapper Class),它对应于`int`的包装对象。当需要将整数值存储在对象中,或者在集合框架(如ArrayList、HashMap等)中使用整数时,就需要用到`Integer`。`Integer`对象存储...

    Java 常用类 的介绍

    包装类是Java为每种基本数据类型提供的对应类,如Integer、Double等,它们允许基本类型与对象之间进行转换,并提供了额外的功能,如比较、格式化等。 Math类包含各种数学运算函数,如求平方根、绝对值、最大值、...

Global site tag (gtag.js) - Google Analytics