关于Java中的字符串

一、关于String类

String实际上与System类和Scanner类一样,都是Java库中一个预定义的类,String类是final的,不可被继承的。String类不是基本数据类型,而是引用类型。

其实,String类其实是通过char数组来保存字符串的,所以String一旦创建也是不可改变的。char类型只能表示一个字符。当我们需要表示一串字符的时候,就会使用字符串的数据类型。例如:

public class Test_String {

	public static void main(String[] args) {
		char[] a = {'Q','u','a','n','t','a'};
		System.out.println(a);
		String b = "Quanta";
		System.out.println(b);

	}

}
运行结果:Quanta
         Quanta

注意:char用的是单引号,String是双引号。

1、String的定义。

//第一种方式:创建对象的形式
//因为String是个类,当然能使用new一个对象的方法
String string = new String("I am a student.");

//第二种方式:类似于基本数据类型的定义(特殊的方式),其中引号里的是对象,而s2是对象的地址。
String s2 = "I am a student,too.";	

//第三种方式:用+号进行连接
String s3 = "I " + "am " + "a " + "student";

在使用第二种或者第三种创建方式的时候,JVM会先在String池中寻找是否存在相同的内容,如果有,那么就不会创建新的,会直接指向这个已存在的内容,如果没有,才会在String池中创建。

但是使用第一种方法的时候,JVM也会去检查String池,但是不同的时,不论有没有相同的内容,还是会在堆栈区重新创建。

堆内存用于存放由new创建的对象和数组。

 

2、String的比较

String a = "123";
String b = "123";
String c = new String("123");
String d = new String("123");
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a == d);
System.out.println(c == d);
System.out.println(c.equals(d));

运行结果:
true
false
false
false
true

“==”如果是作用在基本数据类型的变量时,就是直接比较变量的值是否相同,但如果是作用String类这样的引用变量中,则是比较所指向的对象地址是否一样(即是否指向同一个对象)。

equals方法是Object基类的方法,而我们所写的类都是继承Object这个类的,所以都存在equals这个方法,而在基类中这个方法比较的是两个对象的引用是否相等(即是否指向同一个对象),所以在基本类型变量中不能使用。而String类对该方法进行了重写,用来比较两个对象所储存的内容是否相等。

3、String类中的方法


 

小练习:

写一个登录信息,用户名和密码,当用户名为:admin,密码为:123456时,打印出“登录成功” ,否则,打印“登录失败”,并能重新输入,直至成功。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值