• 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) ;

  • 相关阅读:
    tomcatserver解析(五)-- Poller
    最新版OpenWrt编译教程,解决依赖问题
    操作系统2015(四川大学软件学院)
    Kafka专业监控系统Kafka Eagle:支持kerberos认证,并且对接星环TDH集群
    logstash导出ElasticSearch数据到CSV及同步两套ES的数据研究
    hive通过like方式查询多个值
    hadoop balancer平衡集群各节点数据
    Inceptor命令04-表
    Inceptor命令02-命令使用
    Inceptor命令01-表介绍
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/13195347.html
Copyright © 2020-2023  润新知