Java基础笔记之数据类型
2019-08-16 11:12:12来源:博客园 阅读 ()
Java基础笔记之数据类型
-
一、数据类型
(一)8种基本数据类型(内置数据类型\C#中为值类型)
- 字符长度:1byte = 8 bit;
- 布尔:可认为是 1byte (8 bit);
- 字符:
- char:2/16
- 整型:
- short: 2/16
- int: 4/32
- long: 16/64
- 浮点型:
- float: 8/32
- double: 16/64
(二)包装类型(与基本数据类型一一对应,把基本数据类型封装成对象的形式)
- 装箱和拆箱:
- 装箱:基本类型 -> 引用类型;
- 拆箱:引用类型 -> 基本类型;
-
基本数据类型与其包装类的对应表:
-
注意:包装类型属于类;
-
理解:
- 自动装箱和拆箱:
-
Integer x = new Integer(3); //非自动装箱写法 Integer x = 2; // 自动装箱写法 int y = x; // 自动拆箱写法
- 什么是自动装箱和拆箱?:
答:
Java中基础数据类型与它们的包装类进行运算时,编译器会自动帮我们进行转换,转换过程对程序员是透明的,这就是装箱和拆箱。自动装箱和拆箱精讲(笔试面试重点)
自动装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本> 数据类型)。
- 装箱和自动装箱的区别:
手动装箱直接使用
new Integer(3)
方法,而自动装箱则是使用valueOf(int)
方法;
两方法的区别:valueOf(int)
方法种包含缓存池 和 new Integer(int), 代码如下,对代码的解读如下:- 自动装箱使用的方法:
valueOf(int):
public static Integer valueOf(int i) { if( i >= -128 && i <= IntegerCache.high) return IntegerCache.cache[i + 128]; else return new Integer(i); }
代码解读:如果数值在[-128,127]之间,便返回指向IntegerCache.cache(就是缓存池)中已经存在的对象的引用,若缓存池中不存在这样的对象就new一个新的Integer(x);如果不在[-128,127],则直接创建一个新的Integer对象。
- 题目1:判断下列代码的输出结果 true/false;
public class Main { public static void main(String[] args) { Integer i1 = 100; Integer i2 = 100; Integer i3 = 200; Integer i4 = 200; System.out.println(i1==i2); //true System.out.println(i3==i4); //false } }
解析:Integer i1 = 100;执行自动装箱,此时缓存池种没有这个对象,故new一个 Integer对象,并把它存到缓存池,当执行 Integer i2 = 100;时, 首先判断其范围i,在[-128,127]之间,故直接到缓存池中找看有没有已存在数值相同的对象,有则直接返回该对象,正好,我们第一步刚存的i1就是这样的对象,所以直接返回i1创建的对象给i2,所以,i1和i2其实是一个对象,所以 i1 == i2是正确的。而三四句,i3 和 i4都不在[-128,127]内,所以直接创建两个新的 Integer对象,所以i3和i4是两个不同的对象,i3自然不等于i4,不过 i3.equlas(i4)是对的。
原文链接:https://www.cnblogs.com/CherishTheYouth/p/CherishTheYouth_2019_0724.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash