JAVA基础——String不可变特性和常用方法

String类---->引用类型    java.lang包
        0.常见的String笔试题
            ==  equals方法的区别
                ==可以比较基本类型  可以比较引用类型
                     比较基本类型比较值 比较引用类型比较地址
                equals只能比较引用类型(方法)
                     默认比较地址this==obj 
                     如果想要修改其比较规则  可以重写equals方法
                     通常重写equals方法时会伴随着重写hashCode方法
                     比如String类  比如Integer
            *String的不可变特性
                长度及内容
            String与StringBuffer区别
            StringBuffer与StringBuilder区别
            String对象的存储
                "abc"---->字符串常量池
                new String("abc")--->堆内存
                "a"+"b"+"c"+"d"
            *String中常用的方法
        1.存在哪儿   java.lang包   
            没有任何继承关系  实现三个接口Serializable, CharSequence, Comparable<String>
        2.如何构建对象
            String str = "abc"; //直接将字符串常量赋值给str   (字符串常量池)
            String str = new String();//无参数构造方法创建空的对象
            String str = new String("abc");//带string参数的构造方法创建对象
            String str = new String(byte[] )//将数组中的每一个元素转化成对应的char 组合成String
            String str = new String(char[] )//将数组中的每一个char元素拼接成最终的String
        3.String的不可变特性
            String类中包含一个private final char[] value;
            体现在两个地方   长度及内容
            长度--->final修饰的数组   数组长度本身不变  final修饰数组的地址也不变
            内容--->private修饰的属性  不能在类的外部访问
        *4.常用的方法
            boolean = equals(Object obj);
                //继承自Object 重写啦  比较两个字串中的字面值是否相等
            int = hashCode();
                //继承自Object 重写啦  将当前字符串的每一个char元素拆开 乘以31求和
            int = compareTo(String str);
                //实现自Comparable接口  实现啦  按照字典(Unicode编码)索引的顺序比较
            String = toString();
                //继承自Object 重写啦 不再输出 类名@hashCode  字符串中的字面值
            --------------------------------------------------------------------
            char = charAt(int index);//"abc"   0-->a
                //返回给定index对应位置的那个char值
            int = codePointAt(int index);//"abc"   0-->97
                //返回给定index对应位置的那个char所对应的code码
            int = length();
                //返回字符串的长度
            String = concat(String);
                //将给定的字符串拼接在当前字符串之后


        5.char = charAt(int index);
           返回给定index位置对应的字符
           int = codePointAt(int index);
           返回给定index位置对应字符的code码
        6.int = length();
           返回字符串的长度   (其实就是底层char[] value属性的长度)
           注意:  区别数组length是属性  String的length()方法    集合size()方法
        7.String = concat(String str);
           将给定的str拼接在当前String对象的后面
           注意:  方法执行完毕需要接受返回值   String的不可变特性
                    concat方法与   +拼接的性能问题
                    开发中若遇到频繁的拼接字符串--->通常使用StringBuilder/StringBuffer


    ========================================================
        8.boolean = contains(CharSequence s);
           判断给定的s是否在字符串中存在
        9. startsWith(String prefix);
            endsWith(String suffix);
           判断此字符串是否已xx开头/结尾
        10.byte[] = getBytes();   --->    getBytes(String charsetName);
             char[] = toCharArray();
           将当前的字符串转化成数组   "我爱你中国"   char[]  '我' '爱' '你' '中' '国'
        11. int index = indexOf(int/String str [,int fromIndex] );   四个方法重载
           找寻给定的元素在字符串中第一次出现的索引位置   若字符串不存在则返回-1
              lastIndexOf(int/String str , [int fromIndex]);
           找寻给定的元素在字符串中最后一次出现的索引位置  若不存在则返回-1
        12.boolean = isEmpty();
           判断当前字符串是否为空字符串  (length是否为0)
           注意: 与null之间的区别
        13.replace();
             replaceAll();
             replaceFirst(); 换第一次出现的那个字串
           将给定的字符串替换成另外的字符串
        14.String[] = split(String regex [,int limit限度界限]);
           按照给定的表达式将原来的字符串拆分开的
        15.String = substring(int beginIndex [,int endIndex]);
           将当前的字符串截取一部分   
           从beginIndex开始至endIndex结束  [beginIndex,endIndex)
           若endIndex不写 则默认到字符串最后
        16.String = toUpperCase();
             String = toLowerCase();
          将全部字符串转换成大写/小写
        17.String = trim();
          去掉字符串前后多余的空格
        18.boolean = matches(String regex)
          regular有规律的 expression表达式
          正则表达式
================================================================
        1.String包  java.lang
        2.构造方法  常量 无参数 带参数String byte[] char[]
        3.不可变特性
            长度 内容
        4.String内存机制
            常量"abc" 字符串常量池      构造方法new
            ==  equals()区别
            "a"+"b"+"c"+"d";  产生几个对象
        5.String与StringBuffer与StringBuilder区别
        6.常用的方法
            第一梯队(重写)
            equals  hashCode  compareTo  toString
            第二梯队(常用)
            charAt()  codePointAt()
            indexOf()  lastIndexOf()
            substring()  split()  replace()
            length()  concat()  contains();  trim();
            getBytes()   toCharArray()  matches()
            第三梯队(一般)
            toUpperCase()  toLowerCase()
            startsWith()  endsWith();
            isEmpty();
        7.正则表达式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值