zoukankan      html  css  js  c++  java
  • 字符串

    • 创建对象
    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) 限制切开的次数
  • 相关阅读:
    第十五周翻译
    数据库 第十五周学习笔记
    第十四周学习笔记
    SQL Server安全级别2的楼梯:身份验证
    第十三周学习笔记
    第十三周翻译:SQL Server的安全1级楼梯:SQL Server安全概述
    MySQL修改默认存储引擎(转)
    【整理】MySQL引擎(转)
    合理配置MySQL缓存 提高缓存命中率(转)
    MySQL数据库分区的概念与2大好处
  • 原文地址:https://www.cnblogs.com/mdc1771344/p/9914929.html
Copyright © 2011-2022 走看看