String
String
-小酒窝-
这个作者很懒,什么都没留下…
展开
-
StringBuffer和StringBuilder的区别,从源码角度分析
引言很多人都知道String是不可变的,StringBuffer和StringBuilder是可变的,那么为什么呢?首先我们确定一个概念性问题,什么是不可变对象!什么是不可变对象:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态...原创 2020-01-10 10:16:04 · 1642 阅读 · 0 评论 -
String常见的方法
请问String常见的方法有哪些,列举几个?length(); //计算字符串长度equals(); //比较两个字符串subString(); //截取字符串concat();//连接两个字符串replace(); //替换valueOf(); //转换为字符串charAt(); //截取一个字符串getChars(); //截取多个字符串indexOf()...原创 2019-12-15 14:46:41 · 179 阅读 · 0 评论 -
String拼接字符串效率低,你知道原因吗?
为什么String用"+"拼接字符串效率低下,最好能从JVM角度谈谈吗?对于这个问题,我们先来看看如下代码:public class StringTest { public static void main(String[] args) { String a = "abc"; String b = "def"; String c = a + b; String d = "a...原创 2019-12-15 14:42:45 · 1176 阅读 · 0 评论 -
String s = new String("abc");产生了几个对象?
对于这个问题,老套路先上代码:public class StringTest { public static void main(String[] args){ String s1="Hello"; String s2="Hello"; String s3=new String("Hello"); System.out.println("s1和s2 引用地址是否相同:"+(s1...原创 2019-12-15 14:38:01 · 3847 阅读 · 3 评论 -
String为什么是不可变的
在介绍之前首先我们要知道什么 是不可变对象?如果一个对象,在它创建完成之后,不能再改变它的状态(指不能改变对象内的成员变量),那么这个对象就是不可变的。首先我们来看一段代码:public class Demo { String str = "ABC"; System.out.println("s = " + str); str = "123"; System....原创 2019-12-15 14:32:34 · 1170 阅读 · 1 评论 -
什么是字符串常量池?
一、什么是常量池为了提高性能和减少开销,JVM提供了一个特殊的内存——常量池常量池,顾名思义:就是存储常量的内存空间,有String字符串常量池、包装类常量池等String对象的创建形式:String str1 = new String(); String str2 = "abc";编译期与运行期:编译期:.java—>.class的过程,String str = “abc”...原创 2019-12-15 14:19:09 · 2046 阅读 · 0 评论 -
String str="i"与 String str=new String(“i”)一样吗?
String x = "张三";String y = "张三";String z = new String("张三");System.out.println(x == y); // trueSystem.out.println(x == z); // false为什么会输出上边的结果呢,String x = "张三" 的方式,Java 虚拟机会将其分配到常量池中,而常量池中没有重复的...原创 2019-05-24 10:16:35 · 16290 阅读 · 8 评论