JAVA 程序设计
————Java SE 7 版本
String类详解
只要是进行开发就一定会使用到String类
对于String在之前已经学习过了基本使用,就是表示字符串,那么当时使用的形式采用了直接赋值
String str = “Hello World!”
对于String而言肯定是一个类,那么程序之中出现的str应该就是这个类的对象,那么就证明以上的赋值操作实际上就表示要为String类的对象进行实例化操作。
但String毕竟是一个类,那么类之中一定会存在构造方法,String类的构造:public String(String str);
String str = new String(“Hello World!”);
String类详解
字符串比较
如果需要比较基本类型,可以使用“==”符号完成。
在String对象上也可以使用
public class StringDemo {
public static void main(String args[]) {
String str1 = "Hello" ;
String str2 = new String("Hello") ;
String str3 = str2 ; // 引用传递
(str1 == str2) ; // false
(str1 == str3) ; // false
(str2 == str3) ; // true
}
}
下面对内存关系做个分析
String类详解
栈内存
str1
堆内存
"Hello"
String str1 = “Hello”;
栈内存
str1
堆内存
"Hello"
"Hello"
String str2 = new String("Hello") ;
str2
栈内存
str1
堆内存
"Hello"
"Hello"
String str3 = str2;
str2
str3
现在使用了“==”的确是完成了相等的判断,
但是最终判断的是两个对象(现在的对象是字符串)判断是否相等,
属于数值判断 —— 判断的是两个对象的内存地址数值,并没有判断内容,
而要想完成字符串内容的判断,
则就必须使用到String类的操作方法:public boolean equals(String str)
String类详解
public class StringDemo {
public static void main(String args[]) {
String str1 = "Hello" ;
String str2 = new String("Hello") ;
String str3 = str2 ; // 引用传递
((str2)) ; // true
((str3)) ; // true
((str3)) ; // true
}
}
现在比较的不再是内存地址的数值,而是两个字符串的内容。
String类详解
面试题:请解释字符串比较之中“==”和equals()的区别?
· ==:比较的是两个字符串内存地址的数值是否相等,属于数值比较;
· equals():比较的是两个字符串的内容,属于内容比较。
以后进行字符串相等判断的时候都使用equals()。
String类详解
字符串常量是String的匿名对象
如果在程序之中定义了字符串(使用“"”),那么这个就表示一个String对象,因为在各个语言之中没有关于字符串数据类型定义,而Java将其简单处理了,所以感觉上存在了字符串类型。
验证字符串是对象的概念
public
String类详解 来自淘豆网m.daumloan.com转载请标明出处.