Java基础篇之----String

String不是基本数据类型,是Java封装字符串的一个类。也是一个引用数据类型。
//String 声明方式有两种: 
String str1 = "hello";
 String str2 = new String("hello");
//我们观察一段代码:
        String str1 = "hello";
        String str2 = new String("hello");
        String str3 = "hel"+"lo";
        String str4 = "hello";
        System.out.println(str1==str2);		//false
        System.out.println(str2==str3);		//false
        System.out.println(str3==str4);		//true
        System.out.println(str3==str1);		//true
        System.out.println(str4==str1);		//true
        System.out.println(str4==str2);		//false
最开始我一直没搞懂 "str4==str2" 为什么是 false ,然后看了一些大神的博客得出了一些总结: 
String str4 = "hello";这种方式赋值的原理是先在内存中通过equals寻找 "hello" 这个值,如果找到了,那么str1 就直接引用,如果没找到那么就从新建一个对象。
这里的 寻找的内存 并不是所谓的堆中,而是JVM内部维护的String pool ,也是class中的常量池(这里不深入解释常量池)。所以用 = 赋值的对象是存储在
常量池中的,所以 == 的时候他们内存地址是不同的。这里Str4创建的时候引用了str1创建在常量池中的的"hello",而str2是在堆内存中创建的。所以输出false



String常用方法    
boolean | contains (CharSequence s)   判断此字符串是否包含指定字符串
String    | concat (String str) 将指定字符串添加到此字符串结尾
boolean | endsWith(String suffix) 判断此字符串是否以指定字符串结尾
boolean | startWith(String suffix) 判断次字符串是否以指定字符串开始
int | indexOf(int ch|String str , [int fromIndex]) 查找指定字符或字符串第一次出现的索引(即坐标),fromIndex可声明从指定索引开始查找
String | trim() 去除首尾空格
String | subString(int beginIndex , [int endIndex]) 以索引范围截取字符串
String | replace(char oldChar , char newChar) 字符串替换
String | toUpperCase() 转大写
String | toLowerCase() 转小写
boolean | equalseIgnoreCase(String anotherString) 不区分大小写比较
String[]| split(String regex) 字符串分割
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值