几天前iduanyuming还登过的站,怎么今天wwWiduanyumingcom就变为空白了

羽绒服怎样搭配穿着效果好,保暖又显瘦? - 知乎<strong class="NumberBoard-itemValue" title="1被浏览<strong class="NumberBoard-itemValue" title=",315,648分享邀请回答3.2K286 条评论分享收藏感谢收起weixin.qq.com/r/s0hXT2DEQj09rSQs9x2h (二维码自动识别)我的其他优质回答传送门:平价欧美口红:优衣库:双肩包:鞋牌:推荐:怀旧: 穿搭:内衣品牌:日系女装品牌:基本款春装:口红:化妆品:首饰:手表:衣服品牌网购攻略:网购:衣服品牌:基本款冬装:鞋子:包包:大衣:围巾:耳机:或关注我的专栏:,不定期更新干货。
我叫柳大壮一个写正经答案的不正经IT女
普通长相,略有品位
业余爱好:研究花钱
时尚这条路要想走得好
无非比人多烧钱多踩雷或者,关注我,会变美噢 :)31424 条评论分享收藏感谢收起2501人阅读
java(39)
&/pre&&pre name="code" class="plain"&我们说的左右位置是基于一个常量一个变量来说的,如果都是变量那么左右位置没有任何区别。正常来说这是一个基础问题,为什么我今天又想到了他呢?&/pre&&pre&if (i == 2)
if (stringtokenizer.hasMoreTokens())
s2 = stringtokenizer.nextToken(":/");
if (i == 5)
String s3 = c.a("os.name");
if (s3 != null && s3.indexOf("z/OS") == -1 && s3.indexOf("OS/390") == -1)
String s4;
String s5;
if (i != 5 && s2 != null && s2.equals("/"))
if (i == 2)
throw bd.a(this, null, ErrorKey.DEPRECATED_PROTOCOL, s, "10034");
if (fb.nf || fb.qf || fb.rf)
throw bd.d(this, null, ErrorKey.T4_CONNECTION_NOT_SUPPORTED, "10035");
if (!stringtokenizer.nextToken("/").equals("/"))
throw bd.a(com.ibm.db2.jcc.DB2Driver.class, null, ErrorKey.INVALID_URL_SYNTAX, s, "10041");
String s6 = stringtokenizer.nextToken(":/");
if (s6.equals("/"))
String s8 =
String s10 =
int k = 0;
String s12 = stringtokenizer.nextToken(":");
Properties properties3;
if (stringtokenizer.hasMoreTokens())
if (!stringtokenizer.nextToken(":").equals(":"))
throw bd.a(this, null, ErrorKey.INVALID_URL_SYNTAX, s, "13334");
properties3 = tokenizeURLProperties(stringtokenizer, s, properties);
以上代码摘自db2官方jdbc驱动。
在找db2 9.7fp11与fp4 jdbc驱动有什么区别的时候,反编译了一下官方驱动jar包,发现里面不少equals方法依然把未知变量放到了equals的左边,已知放到了右边,难道IBM程序员水平这么次么?变量放到左右有什么区别吗?此时拿出权威的jdk api来看看吧。
public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
obj - 要与之比较的引用对象。
如果此对象与 obj 参数相同,则返回 true;否则返回 false。
另请参见:
hashCode(), Hashtable
jdk api解释此方法时都有前提对于任何非空引用值。
对此我们可以做个试验:
public class Test {
@SuppressWarnings("rawtypes")
public static void main(String args[]){
List list=new ArrayList();
String str=
System.out.println("0".equals(str));
System.out.println(str.equals("0"));
System.out.println("0".equals(list.get(2)));
System.out.println(list.get(2).equals("0"));
}以上四个打印分别打印什么呢?
System.out.println("/".equals(null));System.out.println("0".equals(str));//falseSystem.out.println(str.equals("0"));// java.lang.NullPointerExceptionSystem.out.println("0".equals(list.get(2)));//Exception in thread "main" java.lang.IndexOutOfBoundsException:System.out.println(list.get(2).equals("0"));//Exception in thread "main" java.lang.IndexOutOfBoundsException:
由此我们可以知道,当equals中有个一个是变量时,应该把他放在右边括号内,这样可以避免参数是null导致的空指针异常,但是这么写并不能避免括号内变量引用某些方法或者属性导致的空指针,例如
String str=
System.out.println("0".equals(str.toString()));
同时如果参数是因为其他异常而获取不到值,那么equals将尊重客观事实,抛出改异常,代码执行终止。
通过此事可以看出程序员不可以盲目崇拜,即使是IBM(国际大嘴巴 International Big Mouth)抱有怀疑的态度 凡事问一下为什么?会收获更多。药品服务许可证(京)-经营-违法不良信息举报: 电话、邮箱youkujubao@service.alibaba.com请使用者仔细阅读优酷、、、、和Copyright(C)2018 优酷 youku.com 版权所有}

我要回帖

更多关于 几天前 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信