java学习中的小问题(Integer、String)
来源:互联网 发布:c语言间接寻址 编辑:程序博客网 时间:2024/06/06 09:22
Integer in1 = 127;Integer in2 = 127;Integer in3 = 128;Integer in4 = 128;System.out.println(in1==in2); // 执行结果trueSystem.out.println(in3==in4); // 执行结果false为什么会出现这种情况呢, 所以我就追究了一下源码,结果发现,其实Integer in1 = 127;类似这样的形式其实是在jdk1.5之后出现的,其实是相当于Integer in1 = Integer.valueOf(127);,那么我们来看看valueOf的源码,结果代码是这样的,
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); }
那么就很显然的说说明了结果。
另外一个就是String方法中的compareTo方法
我们先举一个例子
String s1 = "good";String s2 = "Good";int n = s1.compareTo(s2);System.out.println(n); //会打印出32
那么为什么会出现这种情况呢,那么我们同样来看看compareTo的源码
public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length; int lim = Math.min(len1, len2); char v1[] = value; char v2[] = anotherString.value; int k = 0; while (k < lim) { char c1 = v1[k]; char c2 = v2[k]; if (c1 != c2) { return c1 - c2; // 这里可以很明显看到是Unicode编码做减法 } k++; } return len1 - len2; }
所以显示出了32,这个问题也就迎刃而解了
阅读全文
1 0
- java学习中的小问题(Integer、String)
- Java Integer 小问题
- Java中的String和Integer
- Java学习中的一些小问题
- ==在Integer中和String类中的使用问题
- java中的小问题
- java中的小问题
- Java中的小问题
- Java中的String 和char[] ,int和Integer
- JAVA string int Integer间的转换以及日期问题
- JAVA string int Integer间的转换以及日期问题
- Java学习笔记(二十一):关于Integer.getInteger(String str)的解释
- java学习日志(一)-- String、Integer、int之间的类型转换
- java学习日志(一)--String、Integer、int之间的类型转换
- 【java学习笔记(零散知识点)】Integer类 parseInt(String s ,int radix)方法
- leetcode String to Integer (atoi) java基本编程学习(二)
- Java学习小问题
- Integer源码学习(JAVA)
- 利用51单片机制作一个秒表的详细过程
- android6.0:动态权限申请步骤
- LeetCode
- hibernate的懒加载
- 自定义属性
- java学习中的小问题(Integer、String)
- 【庖丁解牛系列】 项目时间管理之前导图/单代号网络图
- AsyncSocket EXC_BAD_ACCESS unrecognized selector sent to instance:0x6000001908e0
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配
- 直击CVPR2017:商汤科技打造技术盛宴23篇论文刮起中国风 By 机器之心2017年7月25日 10:14 近日,CVPR2017 在夏威夷如火如荼地进行,作为全球计算机视觉顶级会议,CVPR
- Linux 通配符用法简介
- [USACO2.3]控制公司 Controlling Companies
- 高性能MySQL 索引章节温习笔记
- 从拖延到高效,我推荐这 7 本书(附带PDF地址)