Java有哪些基本数据类型?什么是自动拆装箱?

《命运赋》

天有不测风云,人有旦夕祸福。蜈蚣百足,行不及蛇;雄鸡两翼,飞不过鸦。马有千里之程,无骑不能自往;人有冲天之志,非运不能自通。
盖闻:人生在世,富贵不能淫,贫贱不能移。文章盖世,孔子厄于陈邦;武略超群,太公钓于渭水。颜渊命短,殊非凶恶之徒;盗跖年长,岂是善良之辈。
尧帝明圣,却生不肖之儿;瞽叟愚顽,反生大孝之子。张良原是布衣,萧何称谓县吏。晏子身无五尺,封作齐国宰相;孔明卧居草庐,能作蜀汉军师。楚霸虽雄,败于乌江自刎;汉王虽弱,竟有万里江山。李广有射虎之威,到老无封;冯唐有乘龙之才,一生不遇。韩信未遇之时,无一日三餐,及至遇行,腰悬三尺玉印,一旦时衰,死于阴人之手。

日常鸡血:

冲冲冲!!!

正文:

基本类型概念:

      Java的基本类型可以简称为“四类八种”:
  • 整数:byte、short、int、long(整数数据类型默认为int)
  • 浮点:float、double。(浮点数据类型默认为double)
  • 字符:char
  • 布尔:boolean(true真、false假)

       数据类型转换:
  • 自动类型转换(自动),较小的类型转换为一个更大的类型:
    byte - > short -> char ->int ->long ->float->double

  • 强制类型转换(手动),更大类型转换为一个较小的类型:
    double ->float->long->int->char->short->byte

       数据类型对比表:

在这里插入图片描述

什么是包装类?

    因为Java是一种面向对象语言,很对地方都需要使用对象而不是基本数据类型
    比如,在集合中,我们是无法将int,double等类型放进去的.因为集合的容器要
    求的是Object类型.

     为了让基本类型也具备对象的特征,就出现了包装类型,他相当于将基本类型”包
     装起来”,使得他具有了对象的性质,并为其添加了属性和方法,丰富了基本类型的操作.

什么是自动拆装箱?

  在Java SE5中,为了减少开发人员的工作量,Java提供了自动拆箱和自动装箱的功能。
  • 自动拆箱:就是将基本数据类型自动转化为对应的包装类型
  • 自动装箱:就是将包装类型自动转化为对象的基本数据类型

那些场景会发生自动拆箱和装箱?

  • 将基本数据类型放入集合类
  • 包装类型和基本数据类型的大小比较
  • 包装类型的运算
  • 三目运算的使用
  • 函数参数与返回值

intInteger有什么区别?

 基本使用对比:
对比
Integer 包装类型 速度慢 堆中 初始值=null
int 基本数据类型 速度快 栈中 初始值=0
 深入对比:
  • New Integer 生成的是两个对象,内存地址不同:
Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.println(i==j);//false
  • 包装类Integer和基本类型int比较时,Integer会自动拆箱为int:
Integer i = new Integer(100);
int j = 100;
System.out.println(i==j);//true
  • 非new生成的Integer变量指向的是静态常量池中cache数组中的存储,而new Integer生成的变量指向堆中,两者在内存中的对戏引用地址不同:
Integer i = new Integer(100);
Integer j = 100;
System.out.println(i==j);//false
  • Integer的值会进行缓存[-128-127],之外的数都不会被Integer重用,相当于每次装箱都新建一个Integer对象
Integer i = 100;
Integer j = 100;
System.out.println(i==j);//true
Integer ii = 128;
Integer jj = 128;
System.out.println(ii==jj);//false  

励志句子 -->黑暗总会过去,黎明终会到来

在这里插入图片描述

如果对大家有所帮助的话,不要白嫖奥~~~
有错误的地方,欢迎下方评论,我每天都看~~~

发布了4 篇原创文章 · 获赞 6 · 访问量 91

猜你喜欢

转载自blog.csdn.net/weixin_45302340/article/details/103947884