用ps制作网页步骤,北京网站seo,建站园,湖南智能网站建设哪里好一、数据类型 #xff08;一#xff09;8种基本数据类型(内置数据类型\C#中为值类型) 字符长度#xff1a;1byte 8 bit;布尔#xff1a;可认为是 1byte (8 bit);字符#xff1a;char#xff1a;2/16整型:short: 2/16int: 4/32long: 16/64浮点型:float: 8/32double: 16/6… 一、数据类型 一8种基本数据类型(内置数据类型\C#中为值类型) 字符长度1byte 8 bit;布尔可认为是 1byte (8 bit);字符 char2/16 整型: short: 2/16int: 4/32long: 16/64 浮点型: float: 8/32double: 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];elsereturn 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(i1i2); //trueSystem.out.println(i3i4); //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