java string类面试_java-String类的常见面试题

package com.day7.one;

public class DemoString {

/**

* @param args

*/

public static void main(String[] args) {

demo1();

demo2();

demo3();

demo4();

demo5();

}

private static void demo1() {

String s1="abc"; //在常量池中创建了abc字符串

String s2="abc";

System.out.println(s1==s2); //s1和s2指向的是同一个地址(true)

System.out.println(s1.equals(s2)); //将此字符串与指定的对象比较。当且仅当该参数不为 null,

//并且是与此对象表示相同字符序列的 String 对象时,结果才为 (true)。

}

private static void demo2() {

String s3=new String("abc"); //创建了两个对象,一个在常量池中,副本在堆内存中

}

private static void demo3() {

String s4=new String("abc");

String s5="abc";

System.out.println(s4==s5); //false,因为s4指向的是堆中abc的地址值,s5指向的是常量池中的地址值

System.out.println(s4.equals(s5)); //true,字符序列相同就行

}

private static void demo4() {

String s6="a"+"b"+"c";

String s7="abc";

System.out.println(s6==s7); //true,java中有常量优化机制

System.out.println(s6.equals(s7)); //true,因为s7直接指向已有的"abc"字符串地址

}

private static void demo5() {

String s8="ab";

String s9="abc";

String s10=s8+"c"; //s10是指向对内存中的地址

System.out.println(s8==s9); //false,

System.out.println(s9.equals(s10)); //true,

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值