在初学Java时我们接触到的都是一些基本的数据类型,比如int , float,double等。但是对于高等语言JAVA等面向对象的语言来说,一切都是对象。如此看来这些基本数据类型显得就有些‘单薄’--------它只有一个值。这点令我们在面向对象编程时多少有些不适。因为我们考虑的对象是方法和属性的集合。基于此,这些基础数据类型的包装类就产生了。

二者之间的关系:

(1)包装类和基本数据类型相对应。除了8大基本数据类型的包装类外还有两个BigInteger和BigDecimal。通常用在科学计算中,也就是如果你的数子大于2(31)括号内为平方,不妨用下这个。用法可以参考基本数据类型。这两个包装类前者是整型后者是实数类型。

(2)包装类声明的是一个引用,基本数据类型是值。这是最大的区别,因为我们操作对象其实都是在操作对象的一个引用。举一个最常用的java集合类HashSet里面存储的都是引用。

public static void main(String[] args){

Set aset=new HashSet();  //这里存储的都是引用,另外注意这里的Integer泛型,也表明HashSet内部必须是对象。

Integer a=200;    //很奇怪这里并不是一个创建类对象最常用的方式?没错,Java实现了对应类型之间的自动转换,谓之曰:自动封箱

Integer b=200;

System.out.println(a==b);//这里输出的是false??

aset.add(3);//自动将3封箱成Integer对象

System.out.println(a.compareTo(2));  //a为对象有方法可以调用,如果为基本数据类型,则什么都没有。

System.out.println( a.toString()); //Integer类型的方法,很方便。

}

上面的语句明明相等,为什么还会是false呢?换成100,输出true了?原来这里Integer类中有一个缓存机制,设计者认为通常-128--127之间的数为常用数字,如果你用上面的方式来使用这些类则在上述区间内系统还是会把它当成基本数据类型来对待,不会自动装箱为一个对象;如果你用Integer a=new Integer(100)的使用方式,就是在明确告诉系统忽略数字大小直接给我生成一个新的对象,我们知道对象是基于引用。引用地址不同自然数就不同。所以这种使用方式之间的比较无论数字大小,一律false。关于缓存的一些机制信息请参阅http://blog.sina.com.cn/s/blog_7ffb8dd5010123lt.html。比较其实比较的依然是地址,但是缓存机制的存在使得可以节省空间。比如大量运算中只涉及到某一值时缓存机制省去了不停开辟新地址,创建新对象的麻烦。

在java中除了Integer有缓存机制同样的缓存机制类型还有Short,Byte,Character,Long。浮点型没有该机制,这种使用机制多采用类似Integer a=Integer.valueOf(200)的方法。

大小范围除Character为0-127外其余均为-128--127.

public static void main(String[] args){

Integer a=Integer.valueOf(100);

Integer a1=Integer.valueOf(100);

System.out.println(a==a1);

Character b=Character.valueOf('c');

char b1='c';

System.out.println(b1==b);

Byte c=Byte.valueOf((byte) 100);//这里value内的值必须是byte类型,必须强制转换类型,否则出错。byte数据类型在处理网络或文件数据流时特别有用。

Byte c1=Byte.valueOf((byte) 100);//对于byte总有种既熟悉又陌生的感觉,如果谁有这方面介绍的资料请贴在评论处,感激不尽。

System.out.println(c==c1);

}

输出结果全部为true。

integer对应java类型_Java中的Integer和int等包装类和基本数据类型简单比较相关推荐

  1. java定义integer数组_Java中的Integer

    包装类---Integer Integer 类在对象中包装了一个基本类型int的值.Integer类型的对象包含一个 int 类型的字段.此外,该类提供了多个方法,能在 int 类型和 String ...

  2. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  3. java 基本类型 包装类型_Java中基本类型和包装类

    基本类型运算 boolean类型数据可以进行逻辑运算(&&,||,!),其他的基本类型都可以进行数值计算(+,-,*,/).逻辑运算比较简单易懂,完全与逻辑数学的规则一致,而数值运算涉 ...

  4. Java+包裹类型_java中的包裹类型

    包裹类型将一个基本数据类型的数据转换成对象的形式,从而使得它们可以像对象一样参与运算和传递.下表列出了基本数据类型所对应的包裹类型: 基本类型    包裹类型 boolean    Boolean c ...

  5. java 判断类型_Java中类型判断的几种方式

    在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式.拉勾IT课小编为大家提供java种类型判断方式. instanceof instanceof是Ja ...

  6. java判断类型_Java中类型判断的几种方式

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  7. java 枚举_Java中的枚举类型(Enum)详解

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  8. java volatile 基本类型_Java中Volatile关键字详解(转)

    一.基本概念 先补充一下概念:Java 内存模型中的可见性.原子性和有序性. 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其 ...

  9. java 7种枚举类型_Java中的枚举类型

    枚举类比较用 == 还是 equals,有啥区别? java 枚举值比较用 == 和 equals 方法没啥区别,两个随便用都是一样的效果.因为枚举 Enum 类的 equals 方法默认实现就是通过 ...

最新文章

  1. AAAI 2020 | 自动化所:基于对抗视觉特征残差的零样本学习方法
  2. python第三方库Requests的基本使用
  3. 悼念512汶川大地震遇难同胞——老人是真饿了
  4. 《Matlab实用案例》系列Matlab从入门到精通实用100例案例教程目录(持续更新)
  5. 在WebLogic Server上驯服JMX
  6. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)
  7. Java占位符替换工具类
  8. 定时任务 Wpf.Quartz.Demo.3
  9. ue4 命名插件_实时渲染模拟每根头发丝!新版UE4在实时毛发方面的实验性新功能...
  10. 二叉树非递归程序c语言,二叉树非递归遍历C语言实现
  11. eclipse 工具翻译插件安装
  12. java助教的工作内容_2017-2018-2 165X 『Java程序设计』课程 助教总结
  13. Chrome去除新标签页最近访问
  14. 新概念二册 Lesson 20 One man in a boat独坐孤舟 ( 动名词 doing)
  15. OA之会议排座与送审
  16. 在线CAD看图网页版,一样可以快速查看CAD图纸
  17. 将win7 firefox WebStorm PyCharm等JetBrains系列开发软件设置为豆沙绿护眼背景
  18. 不再发烧,小米 11 推送降温补丁
  19. win10计算机无法搜索,win10搜索框没反应怎么办_win10电脑搜索框点击无反应如何解决...
  20. 2023十大科技趋势

热门文章

  1. 前端学习(3168):react-hello-react之...扩展运算符
  2. [html] 如何在页面上显示Emoji表情?
  3. [html] 说说你对短链接的理解,它有什么应用场景呢?
  4. [html] 举例说明使用data-有什么优点?
  5. 工作380-js判断是否为空
  6. [css] 你是如何规划响应式布局的?
  7. [css] 解释下css3的flexbox(弹性盒布局模型),以及它应用场景有哪些?
  8. [css] 举例说明with属性的fill-available有什么应用场景
  9. 前端学习(2749):uniapp项目目录结构介绍
  10. 前端学习(2700):重读vue电商网站21之如何导入全局样式表