equals用法

问题描述

今天面试遇到一问题说,平常我们都用public void A(String name){ if(name.equals(""){...}.....} 如果是("").equals(name)会怎么样  我感觉没什么区别啊,请各位不吝赐教 问题补充:<div class="quote_title">mbgmbg 写道</div><div class="quote_div">如果String name=null;的时候你试试看</div><br />用name.equals("")会空指针,第二种只会是不相等,感觉反而是第二种方法更好,第一种还会报错

解决方案

引用如果是("").equals(name)会怎么样我感觉没什么区别啊,请各位不吝赐教还是有区别的,name作为参数,可以为null如果这时调用name.equals(""),则会抛NullPointerException反过来,("").equals(name)则永远不会抛exception.这种写法,一方面,可以避免异常处理(异常处理是比较费CPU的),同时又减少了代码量。
解决方案二:
如果String name=null;的时候你试试看

时间: 2024-09-04 12:21:11

equals用法的相关文章

java判断“==”和equals用法区别

java中的'=='运算符用于比较两个变量本身的值,即两个对象在内存中的首地址. 'equals()'方法比较的是两个字符串中所包含的内容是否相同. 对于非字符串类型的变量来说,'=='运算符和'equals()'方法都是用来比较其所指对象在堆内存中的首地址,即比较两个类类型的变量是否指向同一个对象. 1.声明格式     public  boolean equals(Object obj)    其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false.

java中Object.equals()简单用法

/* equals()方法默认的比较两个对象的引用! */ class Child {     int num;     public Child(int x){         num = x;     }           //人文的抛出运行时异常的好处是:可以自定义错误信息!           /*public boolean equals(Object o) throws ClassCastException{          if(!(o instanceof Child)) t

java equals函数用法详解_java

equals函数在基类object中已经定义,源码如下 复制代码 代码如下: public boolean equals(Object obj) { return (this == obj); } 从源码中可以看出默认的equals()方法与"=="是一致的,都是比较的对象的引用,而非对象值(这里与我们常识中equals()用于对象的比较是相饽的,原因是java中的大多数类都重写了equals()方法,下面已String类举例,String类equals()方法源码如下:) [java

java中hashCode方法与equals方法的用法总结_java

首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复:后者元素无序,但元素不可重复. 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了.但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了. 也就是说,如果集合中现在已经有

Jsp分页原代码,及用法

js|分页 Jsp分页原代码,及用法 1.定义一个分页的Tag Bean,以便用户在Jsp页中使用自定义标签,用户在使用时可以相应的描述 package BSC.tree; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.tagext.TagSupport; import javax.servlet.http.HttpServletResponse; import or

Perl中控制结构的用法

if控制结构 chomp(my $a = <STDIN>); 用户输入变量$a的值 if($a > 0){ 若$a大于0则执行命令 print "$a is larger than 0\n"; } elsif($a == 0){ 若$a等于0则执行命令 print "$a equals 0\n"; } else{ 若$a小于0则执行命令 print "$a is smaller than 0\n"; } unless控制结构与i

selenium-webdriver(python) (十二) 键盘组合键用法

本节重点: l 键盘按键用法 l 键盘组合键用法 l send_keys() 输入中文运行报错问题 键盘按键键用法: #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys #需要引入keys包 import os,time driver = webdriver.Firefox() driver.get("http://passport.kuaibo.com/logi

java的hashtable的用法

Vector允许我们用一个数字从一系列对象中作出选择,所以它实际是将数字同对象关联起来了.但假如我们想根据其他标准选择一系列对象呢?堆栈就是这样的一个例子:它的选择标准是"最后压入堆栈的东西".这种"从一系列对象中选择"的概念亦可叫作一个"映射"."字典"或者"关联数组".从概念上讲,它看起来象一个Vector,但却不是通过数字来查找对象,而是用另一个对象来查找它们!这通常都属于一个程序中的重要进程. 在J

Java中finalize()的另类用法

做过JAVA编程的都知道,在JAVA中有一种垃圾收集器的机制,当它运行时(通常在系统内存低到一定限度时自动运行),会回收不再使用的对象所占用的内存,所以,在JAVA程序中,我们通常只考虑创建对象,而从不关心对象的清除.Finalize()是JAVA为类提供的一种特殊方法.垃圾收集器的工作过程大致是这样的:一旦垃圾收集器准备好释放无用对象占用的存储空间,它首先调用那些对象的finalize()方法,然后才真正回收对象的内存.通过使用finalize(),就可以在垃圾收集器运行期间进行一些特殊的工作