• 字符串


    • 创建对象
    1. 直接赋值

    2. 通过构造器

      	String s1 = "aa";
      	String s2 = "aa";
      	String s3 = new String("aa");
      	System.out.println(s1 == s2);//true
      	System.out.println(s1 == s3);//false
      

      通过直接赋值的方式是先到常量区(运行时常量区是方法区的一部分)寻找是否存在当前字符串,若存在则引用当前字符串地址,

      通过构造器的方式每new一个对象就生成一个String对象,并且在常量池中生成一个字符串

    • 不可变性

      String字符串的改变是新对象的生成而不是自身的改变

        String s1 = "a";
        String s1 = "aa";
        //在常量区又生成了一个"aa"字符串,而不是"a"变成了"aa"
      
    • 字符串拼接符 + +=

      1. 仅有的经过重载的操作符

      2. 使用多个+拼接的字符串("abc"+"111"+"sdf"),编译器默认创建StringBuilder对象调用append()方法拼接字符串

      3. 在循环内拼接字符串应使用StringBuilder,如下面代码所示当进入循环后才默认创建StringBuilder对象,所以每个循环都会创建一个StringBuilder对象,这样性能是较低的

         String s = "";
         for(int i = 0;i<=args.length;i++) {
         	s += args[i];
         }
        

        所以应该手动创建一个StringBuilder对象

         StringBuilder sb = new StringBuilder();
         for(int i = 0;i<=args.length;i++) {
         	sb.append(args[i]);
         }
        
    • StringBuilder

      线程不安全,性能较高

    • StringBuilder

      线程安全,性能较低

    • AbstractStringBuilder

      StringBuilder和StringBuilder的父类,是一个抽象类,很多方法已经在此类中实现

    正则表达式

    • 规则:到百度百科上找,Pattern类

    • String内的正则表达式功能

        split(String regex) 将字符串从正则表达式的位置切开
        split(String regex, int limit) 限制切开的次数
  • 相关阅读:
    iOS堆栈-内存-代码在据算机中的运行
    iOS self和super的区别
    php代码优化
    缓存雪崩现象解决方案
    缓存失效
    分布式memcache
    Linux下编译安装Memcache
    windows 下安装 php-memcached 扩展
    Linux下安装 php-memcache 扩展
    缓存之文件缓存
  • 原文地址:https://www.cnblogs.com/mdc1771344/p/9914929.html
Copyright © 2020-2023  润新知