java中的String类
来源:互联网 发布:在线翻译软件 编辑:程序博客网 时间:2024/06/02 15:47
String 类是java.lang 包下的类,是 java 中非常重要的 API,final 修饰的,因此该类不能被继承。String 是不可变对象,即字符串一旦创建便不可改变。非要改变则一定创建新的字符串,但是字符串的引用可以重新赋值。String 类是采用 Unicode 编码,一个字符都占用2个字节(不管是中文还是英文)
1.String 常量池
由于字符串是不可变对象,java 为了提高性能,在创建静态字符串(常量、字面量)时会先从字符串常量池中去查找,如果已经存在则引用直接指向该字符串在内存中的地址,若不存在则才会创建该静态字符串,并且将该字符串放到常量池中。 比如: String s1="hello"; String s2="hello"; System.out.println(s1==s2)//true; String s3=new String("hello") System.out.println(ss2==s3)//false;从上面的代码中可以看出,s1\s2 都是字面量,而且s2 用了s1 所指向的对象。由于s3 是强制创建的,所以没有从常量池中重用字符串 “hello” 。
2.String 中的API
String s4="thinking in java "; s4.toUpperCase(); s4.toLowerCase(); s4.indexOf("in"); s4.substring(3,6);//注意含头不含尾,起始下标从0开始 s4.trim();//去除字符串的空白部分 s4.charAt(3);//获取指定位置的字符 s4.startsWith("thi"); s4.endsWith("a"); String.valueOf(false);//静态方法可以将其他类型转换成字符串 String.valueOf(122); String.valueOf("12.2");
3.StringBuilder
由于String 提供的方法只能获取字符串的相关信息,不能对字符串的内容进行操作,所以java提供了 StringBuilder 类,该类提供了一些对字符串内容进行操作的方法,是可变对象,StringBuilder 是非线程安全的,所以运行性能较高。 StringBuilder sb=new StringBuilder(s4); sb.append("abc"); sb.insert(2,"abc");//在下标为2的位置插入给定字符串 sb.delete(2,4); sb.replace(2,4,"ABC"); sb.reverse();
4.StringBuffer
StringBuffer 是线程安全的,同步处理,性能稍慢; StringBuilder 是非线程安全的,并发处理,性能稍快。
0 0
- java中的String类
- Java中的String类
- JAVA中的String类
- Java中的String类
- java 中的String类
- java中的String类
- java中的String类
- Java中的String类
- java中的String类
- java中的String类
- JAVA中的String类
- Java中的String类
- Java中的String类
- Java 中的 String 类用法
- 关于Java中的String类
- 关于Java中的String类
- Java中的字符串string类
- java中的String类(转)
- 解析xml的四种方式
- Spinner之动态用法
- ural 1019. Line Painting 线段树 离散化
- LeetCode Add Digits
- 服务器、交换机、IP与IP地址
- java中的String类
- jvm_outofmemory_HeapOOM
- [leetcode]367. Valid Perfect Square
- 第二次课笔记
- 2016 Bluebridge cut_stamps
- 第二章 数据模型
- jvm_outofmemory_JavaVMStackOOM
- 一种适合懒人的JSON解析方法
- Android 沉浸式状态栏的实现方法、状态栏透明