【java开发基础篇】之java八大基本数据类型、引用数据类型以及装箱和拆箱

195 阅读2分钟

前言: 装箱和拆箱是一个比较有意思的课题,也是一大面试陷阱题,此文章仅代表鄙人的总结和理解,如有错漏,欢迎指正...

一、基本数据类型、引用类型定义

1、基本数据类: Java 中有八种基本数据类型“byte、short、int、long、float、double、char、boolean”
2、引用类型: new 创建的实体类、对象、及数组

其他都是包装类型(String、Integer等),基本数据类型之间的转换称为上或下转型比如int和long,基本数据类型与包装类型之间的转换叫做装箱和拆箱(比如int和Integer),不要混淆概念哦

3、基本数据类型、引用类型在内存中的存储方式

基本数据类型: 存放在栈内存中。用完就消失。
引用类型: 在栈内存中存放引用堆内存的地址,在堆内存中存储类、对象、数组等。当没用引用指向堆内存中的类、对象、数组时,由 GC回收机制不定期自动清理。

二、先来转换题练练手

三、int和Integer的装箱拆箱试题

四、对于装箱、拆箱的总结:

1、两个都是包装类型,使用‘==’进行比较的时候,比较的是对象,而不是值。包装类型使用.equal的话,比较的是值

2、当包装类型和基本类型进行 == 比较的时候,都是进行拆箱操作,不会进行装箱的

3、基本类型int自动装箱或者强转Integer类型的包装类时,-128到127的值内进行转换时,都是拿得常量池的值,所以都是同一个对象常量,不会new一个新的常量。 打个简单的比方Integer a =100,Integer b = 100,进行装箱操作后,实际他们就是同一个对象,根本没新new出对象。


结语:以往都是看别人的博客进行学习技术,其中不乏有精华博客也有吊儿郎当的CV大法文章,所以决定将自己所学所用所整理的知识分享给大家,主要还是想为了后浪们少走些弯路,多些正能量的博客,如有错漏,欢迎指正,仅希望大家能在我的博客中学到知识,解决到问题,那么就足够了。谢谢大家!(转载请注明原文出处)