java中==、equals的不同AND在js中==、===的不同

来源:互联网 发布:微博怎样授权手机淘宝 编辑:程序博客网 时间:2024/06/18 12:37

一:java中==、equals的不同

       1.==操作符:用来比较两个相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同才会返回true.

       2.equals方法:用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。注意的是只要值相同就会返回true

       3.例如:

//创建两个String对象,这两个String对象不是同一个内存地址。            String s1 = new String("a");            String s2 = new String("a");            System.out.println(s1.equals(s2));   //输出true            System.out.println(s1==s2);    //输出false
       4.注意:如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法(object为java中所有类的父类),Object类的equals方法的实现代码如下:

boolean equals(Object o){      return this==o;}
也就是说,如果一个方法没有实现自己的equals方法,那么继承的object类的equals方法也是用==操作符进行比较,那么此时==与equals就没有什么不同了。

二:js中==与===的不同

       1.首先===只能在js中使用,不能在java程序中使用,会报错。

       2.==操作符:如果两个操作数不是同一类型,那么==运算符会尝试一些类型转换,然后进行比较。比如,char类型的变量和int类型的变量进行比较时,==会将char转化为int在进行比较。类型不同,如果可以转化并且值相同,那么会返回true。

       3.===操作符:比较这两个值,比较过程没有任何类型转换。比如,类型不同,但如果转化后值相同,那么也会返回flase

       4.例如:

            var p1 = '1'; //字符类型的数字            var p2 = '1' ;//字符类型的数字            var p3 = 1;  //整数类型的数字            p1 === p2; //类型和数值同时相等 true            p1 === p3; //类型不相等和数值相等 false            p1 == p3; //类型不同,但是==会自动转化类型,数值相等 true


原创粉丝点击