- 浏览: 92580 次
- 性别:
- 来自: 无锡
文章分类
最新评论
// Long类型判断相等时,比如Long a = 10L, Long b = 10L;习惯是判断a == b; Long a = 10L; Long b = 10L; if(a == b) { // true System.out.println("aike1"); } Long c = 128L; Long d = 128L; if(c == d) { // false System.out.println("aike2"); } if(c.valueOf(12) == d.valueOf(12)) { // true System.out.println("aike3"); } if(c.valueOf(128) == d.valueOf(128)) { // false System.out.println("aike4"); } // 为什么等于128时就不相等呢? // 查看Java源码Long.class private static class LongCache { private LongCache(){} static final Long cache[] = new Long[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Long(i - 128); } } public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cache return LongCache.cache[(int)l + offset]; } return new Long(l); } /*原来是因为Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。 如果仅仅是缓存下来而不去使用那么就没有任何意义。 valueOf(long l)就是使缓存派上用场的方法,它会判断传入的参数是否在-128-127之间,如果是则直接从缓存中返回对应的引用,否则新创建一个Long的实例。 对于新创建的Long实例, ==比较是否为同一对象, 所以大于127就不相等了。*/ // 判断方法 使用equals Long重写了equals方法,如下: public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; } 它是先通过.longValue()方法获取Long对象的基本类型long的值之后再做比较的。 但是我们用longValue比较时容易忘记后面一个包装类调longValue方法 所以,最好还是使用equals进行比较。也可以直接用.longValue()比较
发表评论
-
java 堆栈
2018-07-24 22:59 406java的内存分为两类 : 堆 ... -
初始化ArrayList, 默认长度10
2018-07-10 17:54 1803// 在初始化ArrayList的时候没有指定初始化长度的话 ... -
循环往list中add对象却总是add的是一个对象
2017-11-11 16:53 18981. 在new 一个对象的时候,对象的ID是唯一确定的;将对象 ... -
变量定义的初始化顺序
2017-11-04 18:05 439//#java编程思想P94 //在类的内部, 定义变量 ... -
JavaBean解释
2017-09-07 15:05 431Spring如何知道setter方法?如何将值注入进去的呢?其 ... -
log4j2配置
2017-08-31 18:22 389//lib log4j-core-xx.jar lo ... -
java为什么不需要sizeof()
2017-07-21 13:51 334在C和C++中,sizeof()操作符可以告诉你为数据项分配的 ... -
回车换行 \r\n
2017-07-06 16:15 358\r就是"回到行首",\n就是" ... -
基本类型直接存储“值”,置于堆栈中。 new将对象存储在“堆”中。
2017-07-04 19:07 636基本类型置于堆栈中,更加高效。 其他java对象存储在堆中 -
Java中如何遍历Map对象的4种方法
2017-05-26 16:42 417http://blog.csdn.net/tjcyjd/art ... -
初始化List泛型时,list为null还是为空?应该是空(size()=0)
2017-04-13 17:29 656List<Object> list = new A ... -
String的拼接
2017-03-21 11:01 422当使用+拼接字符串时,会生成新的String对象,而不是向原有 ... -
判断两个参数的值是否相同
2017-02-06 17:00 496private boolean isValueSame(Obj ... -
检查数组中是否包含特定值(Check if an array contains a certain value)
2017-01-10 10:19 296String[] stringArray = { " ... -
JSP中java代码引用map类
2016-11-04 12:14 467<% java.util.Map m = new ja ... -
批量命名变量名(无法确定字符串数组长度)
2016-11-04 12:00 436String a = "a b c"; ... -
null和""以及==与equals的区别
2016-08-11 17:59 363String str1 = null; str引用为空 ... -
String、StringBuffer与StringBuilder详解
2016-08-18 14:20 4181.三者在执行速度方面的比较:StringBuilder &g ... -
java生成当前日期格式设置
2016-08-03 14:04 470package com.grace.test; ... -
Eclipse/Myeclipse生成serialVersionUID方法
2016-08-03 13:54 550serialVersionUID作用: 序列化时为了保持 ...
相关推荐
主要介绍了Java 判断数组是否相等的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...
•Java 的基本数据类型可以分为两大类: boolean 类型 和 数值类型. •而数值类型又可以分为整型和浮点型 –整型包括:byte short int long(广义的整型包括char型) –在内存中各占:1,2,4,8个字节, 各有各...
比较引用变量时是判断两个在堆中的存储的地址是否相等 equals:操作时是判断两个变量是否是对同一对象的引用,即对堆中的内容进行比较 在比较引用变量时: ==判断的对象的地址 equals判断的是对象的内容 4.位...
long类型值,需跟L或l在数据后;float类型要跟f或F;或强制类型转换 科学计数法:12.5E3 类型转换默认序列: byte > short > int > long > float > double char 」 注意:默认类型转换(自动类型提升)会丢失精度...
1、 Java类型是什么? Java8大基本数据类型是什么? byte、short 、int、long、float、double、boolean、char 2、什么是装箱?什么是拆箱? 装箱就是 自动将基本数据类型转换为包装器类型 拆箱就是 自动将包装器类型转换...
isEquals(Object actual, Object expected) 比较两个对象是否相等 compare(V v1, V v2) 比较两个对象大小 transformIntArray(int[] source) Integer 数组转换为int数组 源码可见ObjectUtils.java,更多方法及更详细...
long digui(int i) {if(i==0||i==1) { return 1; } else { return i*digui(i-1); } } 4. 写一个单例模式(遇到两次) public class Test { private Test(){} private static Test test; ...
如果桶是一个链表则需要遍历判断里面的 hashcode、key 是否和传入 key 相等,如果相等则进行覆盖,并返回原来的值。 如果桶是空的,说明当前位置没有数据存入;新增一个 Entry 对象写入当前位置。 void addEntry(int...
•八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。 把基本数据类型变量包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个包装类中除了 Character之外,...
3 boolean equals(Object obj) 判断此Object是否与指定的Object对象相等 4 void copy(Object obj) 把此Object拷贝到指定的Object对象中 5 Object clone() 克隆此Object对象 6 String toString() 把此Object...
java.io 包 java.io.File ============================================================================================ *表示磁盘文件或目录的路径 *可以表示一个不存在的路径 创建实例 --------------------...
=或者==:判断两个值是否相等. 2. !=:判断两个值是否不等. 3. >或者gt:判断左边值是否大于右边值 4. >=或者gte:判断左边值是否大于等于右边值 5. <或者lt:判断左边值是否小于右边值 6. 或者lte:判断左边值是否...
复习资料 1.1选择题 1.在一个C++程序中,main函数的位置( c )。 (a) 必须在程序的开头 (b) 必须在程序的后面 ( c ) 可以在程序的任何地方 (d) 必须在其它函数中间 2.... (a) 解释 (b) 汇编 (c) 编辑 (d) 编译 ...
$a == $b :相等 $a != $b :不等 $a $b :小于 $a $b :小于等于 $a > $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 ...