Java中的装箱和拆箱以及经典的面试题:1.三元运行符是一个整体,精度自动转换,if_else是单独的。2.自动装箱和拆箱的底层源码

news/2024/11/16 21:53:01/

1.在JDK1.5之前是手动装箱和手动拆箱的

        手动装箱的2种实现方式

                (1)Integer.valueOf(n)

                (2)new Integer(n)

        手动拆箱的实现方法integer.intValue()

2.在JDK1.5以后(包含1.5)是自动装箱和自动拆箱的

        自动装箱的实现方式:Integer integer = m

        自动装箱的实现方式:m = integer

public class IntegerClass {public static void main(String[] args) {//在JDK1.5之前是手动装箱和手动拆箱的//手动装箱的两种实现方式int n1 = 1;Integer integer1 = Integer.valueOf(n1);//若n1在-128~127之间,则不是通过new Integer(i)/*valueOf()的源码:public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)//其中low为-128,high为127return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}*/Integer integer2 = new Integer(n1);//手动拆箱的实现方法int n2 = integer1.intValue();/*Integer的构造器之一:public Integer(int value) {this.value = value;}*///在JDK1.5以后(包含1.5)是自动装箱和自动拆箱的//手动装箱的实现方式int m1 = 1;Integer integer3 = m1;//底层调用的是Integer.valueOf(m1)m1 = integer3;//底层调用的是integer3.intValue()}
}

经典面试题1:

代码:

public class Interview1 {public static void main(String[] args) {Object object = true? new Integer(1):new Double(2.0);System.out.println(object);//1.0三元运行符是一个整体,精度自动转换Object object1;if(true){System.out.println(new Integer(1));//输出1,if_else是单独的}else {System.out.println(new Double(2.0));}}
}

注:三元运行符是一个整体,精度自动转换。if_else是单独的

经典面试题2:

代码:

public class Interview2 {public static void main(String[] args) {Integer n1 = new Integer(1);Integer n2 = new Integer(1);System.out.println(n1 == n2);//false,因为这边是n1和n2是new出来的对象Integer n3 = 1;Integer n4 = 1;System.out.println(n3 == n4);//true,因为底层是Integer.valueOf(1),1在-128~127之间之间,返回的数组中的元素,并不是new的Integer n5 = 128;Integer n6 = 128;System.out.println(n5 == n6);//false,因为底层是Integer.valueOf(1),1不在-128~127之间之间,是new的}
}


http://www.ppmy.cn/news/1050053.html

相关文章

C# 流Stream详解(1)——读写txt和二进制文件

【读写txt文件】 电脑手机上有各种各样的文件&#xff0c;例如视频文件、图片文件、文本文件&#xff0c;其中读写txt文件是最简单的&#xff0c;有多种方式&#xff0c; 使用StreamReader和StreamWriter //读取文件 string path "C:\example.txt"; // 文件路径 …

《你当像鸟飞往你的山》 书目总结

《你当像鸟飞往你的山》 书目总结

c++基础系列:语句

语句 简单语句语句作用域条件语句迭代语句跳转语句try语句块和异常处理

el-row的@click.stop并没有阻止事件冒泡,还是会触发外层div的点击事件

当点击一个元素时&#xff0c;会进行冒泡&#xff0c;一直触发到父元素。可以通过给click加stop来阻止事件冒泡&#xff0c;如&#xff1a;click.stop“search_maf_version(version)”&#xff0c;但是发现给el-row加上click.stop并没有生效&#xff0c;还是会触发外部的点击事…

代码随想录算法训练营(23/6/25)LeetCode 84.柱状图中最大的矩形

LeetCode 84.柱状图中最大的矩形 今天是算法训练营的打卡的最后一天&#xff0c;我开始觉得我能坚持下来&#xff0c;但因为个人原因&#xff0c;还有期末考试我花太多心思&#xff0c;打卡就一直断断续续&#xff0c;博客没怎么写&#xff0c;最终也写完了

C/C++ : C/C++的详解,C语言与C++的常用算法以及算法的各自用法和应用(初级,中级),C++ CSP考题(J居多,S偏少)的详解,NOI的真题题解

目录 1.C语言 2.C 3.C与C语言的共同/不同点 4.导读 5.相关文章 5.1&#xff1a;Dev-C是Windows 环境下的一个轻量级 C/C 集成开发环境&#xff08;IDE&#xff09; 5.2&#xff1a;C是从C语言发展而来的&#xff0c;而C语言的历史可以追溯到1969年 6.C/C最新年度总…

网络安全(黑客)自学笔记建议

前言 1.不要试图以编程为基础的学习开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而且实际向安全过渡后可用到的关键知识并不多 一般人如果想要把编程学好再开…

【Redis】Redis 的学习教程(一)入门基础

1. 简介 Redis 全称&#xff1a;Remote Dictionary Server&#xff08;远程字典服务器&#xff09;&#xff0c;是一款开源的&#xff0c;遵守 BSD 协议&#xff0c;使用 C 语言开发的 key-value 存储系统。简单的说&#xff0c;它是一款跨平台的非关系型数据库&#xff0c;支…