Java基础学习(3)——Java条件判断语句中equals和random的注意事项
equals是位于java.lang包下的一个方法, 用于判断字符串内容是否一致,区别于 ==, 一般把确定的字符串内容,写在前面,变量写在后面(括号内)。
== :如果是基本类型数值,直接判断值是否相等,如果是字符串类型,判断的内容是对象。
对于非字符串变量,"=="和"equals"方法的作用大致相同,都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象。
对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true。
Scanner input=new Scanner(System.in);
String gender=input.next();
String sex="男";
if("男".equals(gender)){
//if(gender.equals(sex))
System.out.println("两个相同");}
上述if内两种比较方法,第一种会比第二种要好,可以避免空指针问题。
random是随机数,在Java中有两种方法调用,一种是Math.random,另一种是java.util类下的random方法。
System.out.println(Math.random());
int randnum=(int)(Math.random()*10);
System.out.println("10以内的随机数"+randnum);
Random random=new Random();
int n=random.nextInt(10);
System.out.println("10以内的随机数"+n);
其中Math.random中随机数的值是[0,1),可以根据实际需求来进行类型转换和数值运算。个人更倾向于第二种方法,调用直接方便