java常用类: String类

String类

一.String类构成

1.定义

String 字符串对象本质上是一个 final 修饰的字符串数组对象所以字符串是常量,它们的值一旦被创建后不能改变。
final char[] ch;

2.String的实例化方式:

方式一:通过字面量定义的方式

方式二:通过new + 构造器的方式

       //通过字面量定义的方式:此时的s1和s2的数据在方法区中的字符串常量池中。
        String s1 = "java";
        String s2 = "java";
        //通过new 的方式:此时s3和s4保存的地址值是数据在堆中开辟空间以后对应的地址值。
        String s3 = new String("java");
        String s4 = new String("java");
        System.out.println(s1 == s2);//true
        System.out.println(s1 == s3);//false
        System.out.println(s1 == s4);//false
        System.out.println(s3 == s4);//false

3.字符串拼接

(1) 常量+常量 : “tu”+“lun” ->“tulun”;
(2) 变量+常量: String str4 = str+“lun”;

1) StringBuilder s = new StringBuilder();  
2) s.append(str);//字符串拼接操作append
3) s.append("lun");
4) String str4= s.toString();
  • 1.常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量。
  • 2.只要其中有一个是变量,结果就在堆中。
  • 3.如果拼接的结果调用intern()方法,返回值就在常量池中

4.字符串比较

基本数据类型:比较的是基本数据类型的值是否相同
引用数据类型:比较的是引用数据类型的地址值是否相同
字符串中String类对象==比较,比较的是地址,而不是内容;所以改写equals方法

二.String类的方法:

  • char[] toCharArray():把字符串转换为字符数组
  • String toLowerCase():把字符串转换为小写字符串
  • String toUpperCase():把字符串转换为大写字符串
  • str.length();获取字符串的长度
  • char charAt(int index):获取指定索引处的字符
  • int compareTo():比较两个字符串的大小
  • String.valueOf(10);将整型10转为字符串类型
  • String substring(int start):从start开始截取字符串
  • String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
  • String[] split(String str) 按照指定符号分割字符串
  • str.equals();比较字符串的内容是否相同

三.String StringBuilder StringBuffer

  • StringBuffer是线程安全(因为 StringBuffer 的所有公开方法都是 synchronized 修饰的)可以不需要额外的同步用于多线程中;
  • StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但是速度就比StringBuffer快多了;

共同点:可以通过append、indert进行字符串的操作。

区别

相同点:都可以对字符串进行操作
不同点:
(1)多线程环境:
StringBuffer(线程安全)String S tringBuilder(不安全)
(2)效率问题分析
常量+常量 →String
变量+常量 →StringBuilder
(3)调用函数不同
StringBuilder s = new StringBuilder();
s.append(“1”);
s.append(“2”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值