• 编写高质量代码:改善Java的151个建议六(字符串)52-59


    该书籍PDF下载地址:http://download.csdn.net/download/muyeju/10001473

    52.推荐使用String直接赋值

      通过String直接创建字符串的过程:创建一个字符串时,首先检查字符串常量池中有没有与字面值相等的字符串,如果有,就不创建,直接返回字符串常量池中该对象的引用;如果没有,就创建,然后放到字符串常量池中,然后返回新建对象的引用。

      通过new创建字符串的过程:它不会检查字符串常量池的

      所以字符串推荐使用直接赋值

      字符串的intern()方法:返回字符串对象的规范化表示形式。调用intern()方法时,首先会查找字符串常量池中是否有该字面值,有的会直接返回该引用,没有的话就创建一个放到字符串常量池中,然后返回引用。

    53.字符串的replaceAll方法第一个参数是正则表达式

    54.正确使用String,StringBuffer,StringBuilder

      String是不可变量,创建后就不能修改,修改其实是创建了新的字符串对象

      StringBUffer是可变字符序列,与String一样,在类型中保存的都是一个有序的字符序列(char类型的数组),不同的是StringBuffer的值是可以变的

      StringBuffer的append和String的+号拼接的区别:

        StringBuffer拼接后,它的引用不变,值变了

        String通过+号拼接后:它指向了新的引用

      StringBuilder和StringBuffer一样,都是可变字符序列,不同的是,StringBuffer是线程安全的,StringBuilder是线程不安全的,StringBuffer前面有synchronized修饰,所以StringBuffer的性能低于StringBuilder

      

      使用场景:

      

     55.注意字符串的位置:

      Java对+号的处理机制:在使用+进行计算的表达式中,只要遇到String类型的字符串,所有数据都会转化为String类进行拼接,如果是原始类型就直接拼接,如果是对象,就调用对象的toString()方法的返回值后在拼接

      在有+号的表达式中,String字符串具有最高优先级

    56.自由选择字符串拼接方法

      + < concat < StringBuilder、StringBuffer的append

    57.复杂字符串中使用正则表达式

    58.统一使用utf-8编码

    59.汉字排序

      普通的汉字排序用Collator,复杂的自己写方法

    public static void main(String[] args) {
            String[] s = {"手机费","捡垃圾","肯德基"} ;
            Comparator com = Collator.getInstance(Locale.CHINA) ;
            Arrays.sort(s,com);
            for (String string : s) {
                System.out.println("---"+string);
            }
                    结果:---捡垃圾
                             ---肯德基
                             ---手机费
    
        }
  • 相关阅读:
    Leetcode 109
    Leetcode 118
    js时间操作
    DWR搭建以及使用教程
    Ant 概念
    Eclipse 快捷键
    [eclipse] 三个操作技巧
    js call方法
    js验证密码强弱
    request getParameter getAttribute
  • 原文地址:https://www.cnblogs.com/-scl/p/7650801.html
Copyright © 2020-2023  润新知