Java字符串
*String s=“hello” ,hello存放在字符串常量池中
*String s2=“hello” ,s2同样指向字符串常量池中的s所指向的hello
*String s3 = new String(“hello”); s3在堆中开辟一个内存,里面存hello
*String s4 = new String(“hello”);s4同样会在堆中开辟一个新空间,存hello,与s3不相等
*String类型变量所指向的内存空间内容是不能被改变的;
stringBuffer类型变量所指向的内存内容是可变的(有append()方法)
*StringBuffer和StringBuilder的区别
1、StringBuffer是线程安全的,StringBuilder(适用于单线程的使用)是线程不安全的(加锁、同步)
2、StringBuilder速度快于StringBuffer ;速度:StringBuilder>StringBuffer>String
*String s4=new String(“lucas”)中,创建了几个对象?
1、若字符串常量池中有lucas了,在堆中创建一个;
2、字符串常量池中没有lucas,常量池创建一个,堆在创建一个