推荐阅读: String是一个特殊的包装类数据。String即可以用String str= new String('abc');的形式来创建,也可以用String str ='abc';的形式来创建。 String str = 'abc'创建对象的过程 1 首先在常量池中查找是否存在内容为'abc'的字符串对象 2 如果不存在则在常量池中创建一个'abc'的字符串对象,并让str引用该对象 3 如果存在则直接让str引用该对象
注意:常量池属于类信息的一部分,而类信息反映到JVM内存模型中是对应存在于JVM内存模型的方法区,也就是说这个类信息中的常量池概念是存在于在方法区中。 一般这种情况下,'abc'在编译时就被写入字节码中,所以class被加载时,JVM就为'abc'在常量池中分配内存,所以和静态区差不多。 如图: String str = new String('abc')创建实例的过程 1首先定义一个str的String类型的引用并存放在栈中 2在字符串常量池中查看是否存在内容为'abc'字符串对象 3若存在则跳过这个步骤,若不存在,则在字符串常量池中创建一个内容为'abc'的字符串对象。 4执行new操作,在堆中创建一个指定的对象'abc',这里堆的对象是字符串常量池“abc”对象的一个拷贝对象。 5让str指向堆中“abc”这个对象(也就是存储这个对象的在堆中的地址) 字符串中的常用方法 public String concat(String str)
(5)从字符串中提取子串 public String substring(int beginIndex)
(6) 字符串中单个字符的查找 该方法用于查找当前字符串中某一个特定字符ch出现的位置.该方法从头向后查找,如果在字符串中找到字符ch,则返回字符ch在字符串中第一次出现的位置;如果在整个字符串中没有找到字符ch,则返回-1.
(7) 字符串中多余空格的去除 公众号资源免费分享!!! 2017年某培训班最新视频+几十个项目免费分享 公众号输入“我要视频” |
|