zoukankan      html  css  js  c++  java
  • 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) ;

  • 相关阅读:
    JS(react)里面Json、String、Map、Object之间的转换
    react里面的几个内容
    object.assign的理解
    buffers与cached的区别
    vncserver错误
    Ubuntu可视化jupyter notebook
    ubuntu可视化桌面安装问题
    素数序列的生成及其应用 Version 2.2
    demo14-修改标签里面的属性
    demo13-修改元素的内容
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/13195347.html
Copyright © 2011-2022 走看看