前提:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的.如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同. 运行下面代码:…
public static void main(String[] args) { int z1 = 0; int z2 = 0; System.out.println(z1==z2);//TRUE Integer a1 = -129; Integer a2 = -129; System.out.println(a1==a2);// FALSE a1 = -128; a2 = -128; System.out.println(a1==a2);//TRUE a1 = 127; a2 = 127; S…
为什么在 Java 中128==128返回false,而127==127返回true呢? 有这样一段代码 Integer a=127; Integer b=127; System.out.println(a==b); Integer c=128; Integer d=128; System.out.println(c==d); 运行结果为: true false 究竟是为什么呢? 如果两个引用指向相同的对象,它们在 == 表达式中是相等的:如果两个引用指向不同的对象,尽管它们拥有相同的内容即值,…
在处理js代码判断真假时经常会这么写. 但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了. 已经被这个坑过N回了,做个记录,以防再被坑. 自己碰到的 if(!$('#id').length){} 从上面我们可以看到,0是false,非0是true 那么我们来看上面的代码 1,if只有是true的时候才能进入方法体, 2,true就是非false 3,就是 非0, 4,那么$('#id').length就…
在处理js代码判断真假时经常会这么写. var vale = fun();//从某个地方获取的值. if(!value){ 进入这里表示value为false或不存在 }但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了.…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt346 这是一个挺有意思的讨论话题. 如果你运行下面的代码 1 2 3 4 Integer a = 1000, b = 1000;       System.out.println(a == b);//1     Integer c = 100, d = 100;       System.out.println(c == d);//2 你会得到 1 2 false true…
参考文档 枚举 public enum CouponType { PLATFORM("平台优惠券"), NEWCOMER("新人专享优惠券"), INVITE("邀请奖励优惠券"), DESIGNATED_USER("特定用户优惠券"); private final String info; CouponType(String info) { this.info = info; } public String getInfo(…
查看Integer.java类,会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象.如果在这个区间内,他就会把变量当做一个变量,放到内存中:但如果不在这个范围内,就会去new一个Integer对象.所以例子中i1和i2指向了一个对象.因此100==100为true.比较Integer的值,比较靠谱的是通过Integer.intValue()这样出来的就是int值,就可以直接比较了,或者equals()比较. /** * Created by…
如何java中默认的equals方法跟实际不符的话,需要重写equals方法.例如: public class TestEquals { public static void main(String[] args) { Cat c1 = new Cat (1,2,3); Cat c2 = new Cat (1,2,3); System.out.println(c1==c2); System.out.println(c1.equals(c2)); } } class Cat{ int color…
字符串在程序开发中无处不在,也是用户交互所涉及到最频繁的数据类型,那么字符串不仅仅就是我们简单的理解的String str = "abc";一起来更加深入的看一下 在Java中,字符串被作为String类型的对象处理,和基本数据类型不同,字符串可以直接使用各种字符串对象的方法,而基本数据类型不行,String类位于java.lang包中,默认情况下该包会被自动的导入所有的应用程序 String对象创建后不能被更改,是不可变的,我们重新赋值并不是修改了对象所引用的内存空间的数据,而是创建…