Java--String

一,字符串一旦创建不可改变。

二,为了提升字符串的访问效率,在程序中使用了“缓存”技术。所有在Java中用“双引号”括起来的字符串都会在“字符串常量池”中创建一份。字符串常量池在方法区中被存储。

三,在程序的执行过程中,如果程序用到某个字符串,例如“abc”,那么程序会在字符串常量池中去搜索该字符串,如果没有找到则在字符串常量池中新建一个“abc”字符串,如果找到就直接拿过来用。(字符串常量池是一个缓存区,为了提高访问字符串的效率)

四,Java中引用类型之间比较如果使用“==”,是在比较两个引用的内存地址是否一致

五,String  s1 = “ abc ” ;只会在字符串常量池中创建一个“abc”字符串对象

  String  s2 = new  String(”hello“);不仅会在字符串常量池中创建一个”hello“字符串对象,并且会在堆内存中创建一个字符串对象。第二种方式比较浪费内存,常用的是第一种方式

  注:使用String时,不建议使用new关键字,因为使用new会创建两个对象。

六,使用字符串的时候我们应该注意的问题:

  尽量不要做字符串频繁的拼接操作。因为字符串一旦创建,不可改变,只要频繁拼接,就会在字符串常量池中创建大量的字符串对象,给垃圾回收带来问题

七,字符串的6种创建方式

  1,String  s1  =  " abc " ;

 

  2, String  s2  =  new String (" abc ") ;

 

  3.bytes[ ] bytes  =  {97,98,99};

   String  s3  =  new String (bytes) ;

 

  4.String  s4  =  new String (bytes ,1 ,2) ;

  

  5. char [ ]  c1  =  {"我","是",”中“,”国“,”人“};

      String  s5  =  new String (c1) ;

 

  6.String  s6  =  new String (c1,1,2) ;

 

posted @ 2020-06-26 16:20  徐阶  阅读(128)  评论(0编辑  收藏  举报