java初级篇—工具类之String(一)

这篇博客探讨了Java中的String类,包括其不可变性、与StringBuffer和StringBuilder的区别,以及常用的字符串操作方法。文章详细阐述了String对象的创建、存储方式,特别是对于"=="与"equals()"方法的比较,以及在不同情况下对象创建的数量。同时,还提到了String类实现的接口和构造方法。
摘要由CSDN通过智能技术生成

String类(引用类型 java.lang包)

  1. 常见的String笔试题

== equals方法的区别
==可以比较基本类型 可以比较引用类型
比较基本类型比较值 比较引用类型比较地址
equals只能比较引用类型(方法)
默认比较地址this==obj
如果想要修改其比较规则 可以重写equals方法
通常重写equals方法时会伴随着重写hashCode方法
比如String类 比如Integer

*String的不可变特性(长度及内容)

String与StringBuffer区别

StringBuffer与StringBuilder区别

  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();
  1. 正则表达式

String对象的存储
“abc”---->字符串常量池
new String(“abc”)—>堆内存
“a”+“b”+“c”+“d”

*String中常用的方法

  1. 存在哪儿 java.lang包
    没有任何继承关系 实现三个接口Serializable, CharSequence, Comparable
  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. 常用的方法(这里之列举了一些常用的方法 想要了解更多的内容点击下方文档查看关于String更多的内容)
    (点击这里查看:Java Platform SE 8官方文档)
	1.boolean = equals(Object obj);
		   //继承自Object类中的方法  重写啦  改变了规则  比较字符串中的字面值
		   ==  equals()区别
			equalsIgnoreCase();
	2.int = hashCode();
		   //继承自Object类中的方法  重写啦  31*h+和
	3.int = compareTo();
		   /*实现自Comparable接口  实现方法   结果按照字典排布(unicode编码)顺序
		   按照两个字符串的长度较小的那个(次数)来进行循环
		   若每次的字符不一致 则直接返回code之差 
		   若比较之后都一致  则直接返回长度之差*/
			compareToIgnoreCase();
	4.String = toString()
		   /*没有重写过的toString从Object类中继承过来的
		   类名@hashCode(16进制形式)
		   String类重写啦  返回的是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表达式
		  //正则表达式

阅读更多

三连博主,每天分享一个编程小技巧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值