Java————String类型详解
2016-08-04 20:04
190 查看
Java————String类型详解
String类型,在源代码中其实就是创建了char类型的数组,private final char value[];
final决定了string类型的引用只能够初始化一次,且引用不可以被修改,但是只有这一个修饰符的话,数组里面的数值是可以修改的。
private决定了char数组只能在当前的类里面使用,对外部没有提供相应的修改里面数据的方法,所以char数组里面的值,定义了就不能被修改了。
因为这两个修饰符的同时存在,所以,string类型的值,只能够初始化一次,且不能被修改。
然而对于字符串的拼接,删除的操作,对于string来说,在源代码里面会创建一个新的数组,然后把之前数组里面存放的数据复制到新的数组里面。
所以每当创建一个对象,就会在常量池中开辟一个空间存放这个常量,多个引用变量的引用都可以指向这个变量,假如,string的值可以被改变,那么一个常量被多个引用指向,一个引用修改了它的值,那么所有引用他得变量都会被改变,这样的话安全性就得不到了保证。
string类型,和string类型的比较,比较的始终都是指向地址的值。
string类型中包含的方法:
String name="abcdefghijklmnopqrstuvwxyz"; String name1="abcdefghijklmnopqrstuvwxyz123456"; /* ------------charAt(int index) 返回的是下标是index的值得字符 char c=name.charAt(1);//返回的是下标为一的字符 ------------compareTo() 字符串比较,相等的话返回的是0,大于的话返回的是一个正数,小于返回的是一个负数。 System.out.println(name.compareTo(name1)); ------------concat 连接字符串,将两个字符串拼接起来。会创建一个新的字符串并且返回。 concat和+的区别 concat,如果字符串的长度为0,那么会返回这个原字符串,否则会创建一个新的字符串存放。 +是可以将任何类型的数据加在后面。 String s=name.concar("中百发"); System.out.println(name); ------------contains 查询是否包含指定的字符串 boolean flag=name.contains("abcd"); ------------startsWith 判断一个数是不是以xxx开头, endswith 判断一个数是不是以xxx结尾 boolean a=name.startsWith("aaaaa"); boolean b=name.endsWith("cc"); ------------equals 比较字符串是否相等,我们也可以重写equals方法 注意区分equals和==的区别, equals比较的是两个字符串在堆内存中的值是否相等,而==是比较两个字符串指向的地址是不是同一个地址。 System.out.println(name.equals(name1)); ------------hashCode() 获取对象的哈希值,如果两个对象使用equals相同,那么他们的哈希值一定相同,如果两个哈希值相同,那么他们两个字符串不一定相等 System.out,println(name.hashCode()); ------------getBytes 获取字符串对应的字符数组 有可能产生乱码 byte[] b=name.getBytes(); -------------indexOf() 返回当前字符所在的索引值。 int i=name.indexOf("a"); -------------length 返回字符串的长度 System.out.println(name.length()); -------------replace 替换字符串 String newname=name.replace("abc","_"); System.out.println(newname); -------------split 拆分字符串 拆分成两个字符串,其中split里面参数的字符就会被删掉 name.split("aaa"); -------------trim 去掉前后两端的空格 System.out.println(name.trim()); -------------toLowerCase() toUpperCase() 将字符串转换成大小写 name.toLowerCase(); */
相关文章推荐
- Java String类型剖析及其JVM内存分配详解
- Java String类型剖析及其JVM内存分配详解
- java 参数类型后跟三个点详解:test(String... s)
- 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数据类型转换详解
- 全面理解Java中的String数据类型