String常用知识

String常用操作API
  
1.8常量池是放在堆里面
public void test1() {
    // " abc "双引号括起来的字符串:常量字符串,他也是一个对象
    // 1.8之后常量池放到堆,在常量池里面找有没有这个" abc "对象,
    // 如果常量池里面没有这个字符串对象,java就帮你在常量池里面new一个" abc "字符串对象。
    // 如果常量池里面有这个字符串,就把这个字符串的地址赋给这个变量。
   String str1 = "abc";
   String str2 = new String( "abc");
   String str3 = "abc";
    // ==比较的是变量指向的对象的地址值
   System. out.println( str1 == str2); // false
   System. out.println( str1 == str3); // true
   System. out.println( str2 == str3); // false
   
    // 比较字符串的内容是不是相等使用equals()
    // 表str1这个字符串和str2这个字符串的内容是不是相等
   System. out.println( str1.equals( str2)); // true
   System. out.println( str1.equals( str3)); // true
   System. out.println( str2.equals( str3)); // true
}

String、StringBuffer、StringBuilder
异同点:
相同点:都是final类,都不能被继承。
不同点:
1、String长度是不可改变的,StringBuffer、StringBuilder长度是可变的。
2、StringBuffer是线程安全(需要加锁,效率低)、StringBuilder是线程不安全(没有加锁,效率高)
如果对这段代码加锁,就可以实现每次只有一个用户能进入这段代码,当执行完了之后,释放这个锁,另一个用户才能进来。 synchronize : 同步
if (money>1000) {
     money = money - 1000;
}
常量字符串的拼接,编译器会做优化,使用String就可以:
String str = "Java" + "PHP" + "Python" + "C";
final修饰变量、修饰方法、修饰类有什么特点:
1、final修饰变量,就变成常量
2、final修饰方法,这个方法不能被重写
3、final修饰类,这个类不能被继承
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值