当前位置: 首页 > news >正文

帝国cms做门户网站网站建设公司讯息

帝国cms做门户网站,网站建设公司讯息,wordpress 工具栏图标,免费建站网站网页从一道选择题开始分析选项A选项A中比较的是i01和i02#xff0c;Integer i0159这里涉及到自动装箱过程#xff0c;59是整型常量#xff0c;经包装使其产生一个引用并存在栈中指向这个整型常量所占的内存#xff0c;这时i01就是Integer 的引用。而int i0259由于int是基本类型…从一道选择题开始分析选项A选项A中比较的是i01和i02Integer i0159这里涉及到自动装箱过程59是整型常量经包装使其产生一个引用并存在栈中指向这个整型常量所占的内存这时i01就是Integer 的引用。而int i0259由于int是基本类型所以不存在引用问题直接由编译器将其存放在栈中换一句话说i02本身就是59。那么System.out.println(i01 i02)结果任何呢这里涉及到了拆箱的过程因为等号一边存在基本类型所以编译器后会把另一边的Integer对象拆箱成int型这时等号两边比较的就是数值大小所以是true。好了到了这里你有没有想到这样一个问题如果是Integer i0159Integer i0259然后System.out.println(i01 i02)的结果是可能你会说比较数值大小所以相等啊也有可能说等号两边对象引用所以比较的是引用又因为开辟了不同的内存空间所以引用不同所以返回false。可是正确答案是true.再来看这个问题如果是Integer i01300Integer i02300然后System.out.println(i01 i02)的结果是 你可能说上面你不是说了true嘛怎么还问这样的问题可是这次的答案是false。你是否会吃惊大牛除外我是小白求不打脸解析当靠想象无法解决问题的时候这是就要看源代码了很重要我们可以在Integer类中找到这样的嵌套内部类IntegerCacheprivate static class IntegerCache {//静态缓存类static final int low -128;static final int high;static final Integer cache[];static { //静态代码块// high value may be configured by propertyint h 127;String integerCacheHighPropValue sun.misc.VM.getSavedProperty(java.lang.Integer.IntegerCache.high);if (integerCacheHighPropValue ! null) {int i parseInt(integerCacheHighPropValue);i Math.max(i, 127);// Maximum array size is Integer.MAX_VALUEh Math.min(i, Integer.MAX_VALUE - (-low) -1);}high h;cache new Integer[(high - low) 1];int j low;for(int k 0; k cache.length; k)cache[k] new Integer(j);}private IntegerCache() {}}这个类就是在Integer类装入内存中时会执行其内部类中静态代码块进行其初始化工作做的主要工作就是把一字节的整型数据(-128-127)装包成Integer类并把其对应的引用存入到cache数组中这样在方法区中开辟空间存放这些静态Integer变量同时静态cache数组也存放在这里供线程享用这也称静态缓存。所以当用Integer 声明初始化变量时会先判断所赋值的大小是否在-128到127之间若在则利用静态缓存中的空间并且返回对应cache数组中对应引用存放到运行栈中而不再重新开辟内存。所以对于Integer i0159Integer i0259**i01 和 i02是引用并且相等都指向缓存中的数据所以返回true。而对于**Integer i01300Integer i02300因为其数据大于127所以虚拟机会在堆中重新new (开辟新空间)一个 Integer 对象存放300创建2个对象就会产生2个这样的空间空间的地址肯定不同导致返回到栈中的引用的只不同。所以System.out.println打印出false。B选项从上面的分析我们已经知道Integer i0159返回的是指向缓存数据的引用。那么Integer.valueOf(59)返回的是什么或者操作是什么呢这个函数的功能就是把int 型转换成Integer简单说就是装包那他是新创建一个对象吗还是像之前利用缓存的呢有了之前的经验肯定想到的是利用缓存这样做既提高程序速度又节约内存何乐而不为来看一下源代码public static Integer valueOf(int i) {assert IntegerCache.high 127;if (i IntegerCache.low i IntegerCache.high)return IntegerCache.cache[i (-IntegerCache.low)];return new Integer(i);}很明显跟之前的思想一致若在-128到127范围直接返回该对象的引用否则在堆中重新new 一个。到这System.out.println(i01 i03)的结果毋庸置疑就是true.选项CInteger.valueOf(59)返回的是已缓存的对象的引用而Integer i04 new Integer(59)是在堆中新开辟的空间所以二者的引用的值必然不同返回false,这道题呢就选C选项DSystem.out.println(i02 i04) i02是整型变量i04是引用这里又用到了解包虚拟机会把i04指向的数据拆箱为整型变量再与之比较所以比较的是数值5959返回true.学习并转载自https://blog.csdn.net/dawn_after_dark/article/details/74154338对我很有帮助感谢作者
http://www.yutouwan.com/news/373016/

相关文章:

  • wordpress回收站位置服务器如何发布网站
  • 网站推广技术哪家好公司起名字大全免费好听必过的
  • 哪个网站可以做翻译赚钱内蒙古中汇建设有限公司网站
  • 网站建设金手指空间网站模板
  • 深圳网站建设哪个公司号企业app下载安装
  • 网页设计与网站建设专业权威发布封面
  • wordpress任务插件搜索引擎优化技术
  • 做机网站wordpress 修改小工具样式
  • 中国建设银行钓鱼网站做外汇网站代理
  • 网站设计建设公司需要什么资质企业seo网站营销推广
  • html5手机网站调用微信分享wordpress不能分页
  • 广州网站排名优化公司推进门户网站建设工作会议
  • 生物科技公司网站模板下载字画价格网站建设方案
  • 建个小型网站服务器企业的网站建设策划书
  • 网站追踪如何做编程培训班多少钱
  • 简答网站内容建设的时候内链重要性wordpress的vieu4主题破解版
  • 网站定制首页费用花艺企业网站建设规划
  • cms大型门户网站 源码在360网站上怎么做推广
  • 免费又实用的网站免费网站建设可信吗
  • 做营销看的网站有哪些内容台州企业自助建站
  • 做图软件ps下载网站有哪些内容成都手机网站建
  • 建一个营销网站多少钱wordpress用户验证失败
  • ASP.NET网站建设实战站长统计芭乐官方网站下载
  • 番禺网站建设优化wordpress 不同权限
  • 如何模板建站怎么创网址
  • 建设网站需要购买哪些商城网站建设预算
  • 做网站遇到的问题全自动免费网页制作
  • 给网站添加百度地图网站建设设计 网络服务
  • 平阳网站制作一 建设网站前的市场分析
  • 网站发布与推广方式营销宝