java字符串的比较总结
2016-12-07 08:51
281 查看
java中,常会对字符串进行比较
a == b,是对a,b的内存指向和值都进行了判断,都相等则返回true,否则返回false
a.equal(b),只是对a,b的值进行了判断,相等则返回true,否则返回false
见下面代码:
如果是直接给a,b赋值的话,指向和值都会相同
如果是创建字符串对象,给c,d赋值的话,只是值会相同。内存上的地址是不一样的
package xxxx;
/**
*
* @ClassName: StudyString
* @Description: 对字符串的学习,空判断,相等判断
* @author Van
* @date 2016年12月7日 上午8:26:35
*/
public class StudyString {
public static void main(String[] args) {
String a = "java";
String b = "java";//这样的赋值,a,b的指向是相同的
if(a == b){
System.out.println("a等于b,值和指向相等");
}
if (a.equals(b)) { //equal比较的只是值是否相同
System.out.println("a值等于b");
}
String c = new String("java");
String d = new String("java");//这样的创建对象,c,d的指向就不同了。在内存上的地址不一样
if(c == d){
System.out.println("c等于d,值和指向相等");
}
if (c.equals(d)) {
System.out.println("c只是值等于d");
}
}
}
运行结果是:
a等于b,值和指向相等
a值等于b
c只是值等于d
a == b,是对a,b的内存指向和值都进行了判断,都相等则返回true,否则返回false
a.equal(b),只是对a,b的值进行了判断,相等则返回true,否则返回false
见下面代码:
如果是直接给a,b赋值的话,指向和值都会相同
如果是创建字符串对象,给c,d赋值的话,只是值会相同。内存上的地址是不一样的
package xxxx;
/**
*
* @ClassName: StudyString
* @Description: 对字符串的学习,空判断,相等判断
* @author Van
* @date 2016年12月7日 上午8:26:35
*/
public class StudyString {
public static void main(String[] args) {
String a = "java";
String b = "java";//这样的赋值,a,b的指向是相同的
if(a == b){
System.out.println("a等于b,值和指向相等");
}
if (a.equals(b)) { //equal比较的只是值是否相同
System.out.println("a值等于b");
}
String c = new String("java");
String d = new String("java");//这样的创建对象,c,d的指向就不同了。在内存上的地址不一样
if(c == d){
System.out.println("c等于d,值和指向相等");
}
if (c.equals(d)) {
System.out.println("c只是值等于d");
}
}
}
运行结果是:
a等于b,值和指向相等
a值等于b
c只是值等于d
相关文章推荐
- JAVA与C++::关于JNI中文字符串操作问题总结
- Java字符串的比较(收藏)
- Java 5种字符串拼接方式性能比较
- Java 的字符串比较
- Java字符串使用总结
- Java中字符串比较的注意点
- java 字符编码 比较 总结
- 字符串比较问题(java)
- 常见数据库java && jdbc连接字符串总结
- java 字符串编码总结
- Java字符串对象的比较(zz)
- Java语法总结 - 字符串
- 一个很巧的java字符串比较表达式
- Java 5种字符串拼接方式性能比较。
- java中字符串的比较,必须使用string1.equals(string2)来进行判断
- Java中的字符串比较
- Java语法总结 - 字符串
- java中字符串比较为什么不能用“==”
- java中字符串转换成时间格式总结
- 在JAVA中的字符串比较