标签:参数 不可变 length dex 是什么 ring 分享 指定 bsp
Java中字符串是一个比较特殊的对象,可以使用new,也可以不通过new来创建字符串对象。
String s1 = new String("abc"); //在堆中
String str = "abc"; //在常量池中(ps: 常量池为方法区的一部分,字符串在常量池中保存一份,若没有则创建)
字符串是不可变量,一旦初始化就不可以被改变
String s1 = "abc";
s1 = s1 + "123";//s1变量变了,并不是字符串变了
使用构造方法创建的对象都是在堆中
如果直接使用字符串常量创建对象:new String(String original),先在常量池中创建对象,然后在堆中创建对象;
如果是其它构造方法创建的字符串,先在堆中创建出来,并在常量池保存一个副本(如果常量池中没有的话)
构造方法 | 说明 |
String(char[] ch) | 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。 |
String(char[] ch,int offset,int count) | 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。 |
String(byte[] bys,int off,int len) | 使用默认的解码,将字节数组解码成String。 |
String(String original) | 用一个原始字符串构建一个新字符串,相当于为字符串创建副本。 |
方法 | 说明 |
length() | 返回此字符串的长度。 |
charAt(int index) | 返回指定索引处的 char 值。 |
统计大小写字符个数
标签:参数 不可变 length dex 是什么 ring 分享 指定 bsp
原文地址:https://www.cnblogs.com/share23/p/9616107.html