本文目录一览:
1、java 两个字符串 为什么相等
2、java中字符串怎么比较3.0和3相等
3、java中比较两个字符串是否相等的方法
java 两个字符串 为什么相等
一般字符串或者数字相等比较的都是内容,只要内容相同就相等了。你可以看下 equals
和 ==
的区别,分清就可以了。注意下,如果是两个对象的比较还会比较地址值。
java中 equals
和 ==
的区别
值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==
操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals
操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。==
比较的是2个对象的地址,而equals
比较的是2个对象的内容。 显然,当equals
为true
时,==
不一定为true
。- 常用的比较:字符串比较相同使用
equals
,数字比较使用==
。
java中字符串怎么比较3.0和3相等
java判断字符串是否相等的方法:
1. java中字符串的比较:==
我们经常习惯性的写上 if(str1 == str2)
,这种写法在java中可能会带来问题。
example1:
String a = "abc";
String b = "abc";
那么 a == b
将返回 true
。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;
example2:
String a = new String("abc");
String b = new String("abc");
那么 a == b
将返回 false
,此时a和b指向不同的对象。
2. 用 equals
方法比较的是字符串的内容是否相同
example:
String a = new String("abc");
String b = new String("abc");
a.equals(b);
(1) 对于 ==
,如果作用于基本数据类型的变量(byte
, short
, char
, int
, long
, float
, double
, boolean
),则直接比较其存储的"值"是否相等;如果作用于引用类型的变量(String
),则比较的是所指向的对象的地址(即是否指向同一个对象)。
(2) equals
方法是基类 Object
中的方法,因此对于所有的继承于 Object
的类都会有该方法。在 Object
类中,equals
方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。
(3) 对于 equals
方法注意:equals
方法不能作用于基本数据类型的变量。如果没有对 equals
方法进行重写,则比较的是引用类型的变量所指向的对象的地址;而 String
类对 equals
方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等。其他的一些类诸如 Double
、Date
、Integer
等,都对 equals
方法进行了重写用来比较指向的对象所存储的内容是否相等。
java中比较两个字符串是否相等的方法
你好,比较两个字符串是否相等可以用 equals
方法。
比如要比较字符串变量 a
和字符串变量 b
是否相等就是 a.equals(b)
。这个表达式返回这个布尔值,为 true
表示相等,为 false
表示不相等。