java学习之路2
忙碌了3周,总算逃出了js的苦海,这三周一直在写各种js,写的我头大,一直没时间来继续整理java,确实也挺遗憾的,不过还好回来了。
不过话说回来,这几天的文档整理让我觉得我前几次的文章显得很冗余,为什么这么说呢,因为我在每天学java的这几个小时了,我能学到很多很多的知识点,可惜的是为了整理一个小知识点并理解清楚,我会花大量的篇幅来把这个知识所涉及到的原理给讲的清晰透彻,但是现在网络的发达,在我整理这个知识点之前,网上已经有了非常多非常多的干货,他们讲的甚至比我更清晰深刻,只不过我会以一种更人性化的形式展现给大家,所以在一顿反思之后,我还是觉得要想能够在接下来的几个月里准备好今年大三的暑期实习,必须得抓紧时间,我的梦想是能够去阿里巴巴或者腾讯、拼多多这种大型网络公司,所以为了面试,我可不能光浪费时间,所以从这次知识点起,我都会将知识点以几句话的形式概括,然后贴出我(个人)觉得讲的最清晰易懂的文章链接,这样即能够在一篇篇幅里涉及到更多的知识,还能够节约我的时间,所以我还是要继续加油呀,只是希望不辜负以后的自己。
java自动装箱与拆箱
自动装箱:根据当前已存在的基本类型创造出对象类型;
拆箱:根据当前已存在的包装器(对象)类型,转换为基础类型;
Integer i = 10; //装箱 int n = i; //拆箱
装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。
对于Integer对象来说,在[-128,127]之间的相同数值,JVM会判断成相等,其他的为不等
对于所有的Double等浮点型对象来说,都会判成不等(因为两个数值之间有无数个浮点数)
对于所有的Boolean对象来说,都会判成相等,因为JVM对Boolean类型的存储方式采取的是1bi
4.谈谈Integer i = new Integer(xxx)和Integer i =xxx;这两种方式的区别。
当然,这个题目属于比较宽泛类型的。但是要点一定要答上,我总结一下主要有以下这两点区别:
1)第一种方式不会触发自动装箱的过程;而第二种方式会触发;
2)在执行效率和资源占用上的区别。第二种方式的执行效率和资源占用在一般性情况下要优于第一种情况(注意这并不是绝对的)。
文章链接:https://www.cnblogs.com/dolphin0520/p/3780005.html