zoukankan      html  css  js  c++  java
  • 关于String源码分析

    关于String的类定义:
      public final class String implements java.io.Serializable, Comparable<String>, CharSequence
      以final修饰,不可继承,不可变,其方法默认都是final的
    实现 Serializable、Comparable<String>、CharSequence 三个接口。
    private final char value[];string内部是一个字符数组。
    常用方法:
    1、int length():返回字符串长度
    2、boolean isEmpty():返回字符串是否为空,判断条件是字符串长度
    3、char charAt(int index):返回字符串index位置的值
    4、boolean equals(Object object):重写Object类中的方法,判断过程为,先判断是否是同一对象,是就返回true;然后判断object是否为字符串类型,是就把object强转为string类型,然后判断长度是否相同,相同的话再转换为字符数组,一个一个比较
    5、int indexOf(String str,int fromIndex):返回str在字符串中从指定的索引开始首次出现的位置
    6、int lastIndexOf(String str,int fromIndex):返回str在字符串中从指定的索引开始最后出现的位置
    7、String substring(int beginIndex):返回一个子字符串,是字符串从指定索引开始到字符串结束的子字符串
    8、String concat(String str):返回一个新字符串,str拼接到字符串后面
    9、String replace(char oldChar,char newChar):返回一个新字符串,字符串中旧字符被替换为新字符,并返回新字符串
    10、String replaceAll(String regex,String replacement):返回一个新字符串,可与replace()相同,也可按照regex规则替换,并返回新字符串
    11、String[] split(String regex):返回一个字符串数组,按照regex规则进行拆分
    12、String join(CharSequence delimiter,CharSequence.. elements):java8新增功能,按照规则进行拼接字符串或数组
    13、String toLowerCase()/toUpperCase():返回新字符串,把字符串中的字母转换为小/大写后返回新字符串
    14、String trim():去掉收尾的空格去掉返回新字符串
    15、char[] toCharArray():把字符串转换为字符数组
    16、String valueOf(Object obj):(obj==null)? "null":obj.toString()
    17、String intern():当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。
    写在后面:
    关于String对象的创建和常量池使用jdk为1.8,常量池存在于堆中,执行intern()方法时,如果存在堆中的对象,会直接保存对象的引用,而不会重新创建对象,另外StringPool的长度为1009且不可变的
  • 相关阅读:
    单例模式
    maven版本对应的jdk
    DateUtil
    多级反向代理java获取真实IP地址
    springcloud初次zuul超时报错com.netflix.zuul.exception.ZuulException:Forwarding error
    spring cloud-config的client中/refresh的端点报错401
    spring Cloud-eureka的保护模式
    spring cloud的配置
    spring boot部署中executable的系统服务
    登陆SQL Server 2000数据库提示超时已过期的解决方法
  • 原文地址:https://www.cnblogs.com/bokai/p/9593922.html
Copyright © 2011-2022 走看看