• 字符串


    • 创建对象
    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) 限制切开的次数
  • 相关阅读:
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    实验 3:Mininet 实验——测量路径的损耗率
    第一次个人编程作业
    实验 2:Mininet 实验——拓扑的命令脚本生成
    实验 1:Mininet 源码安装和可视化拓扑工具
    第一次博客作业
    第一次个人编程作业
    第一次博客作业
    需求分析报告
  • 原文地址:https://www.cnblogs.com/mdc1771344/p/9914929.html
Copyright © 2020-2023  润新知