前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试之字符串

Java面试之字符串

原创
作者头像
黄桂期
发布2018-07-25 23:21:44
4770
发布2018-07-25 23:21:44
举报
文章被收录于专栏:土豆专栏

最近整理了一部分面试资料,希望大佬们多多指导~

String

  • string类是final类,也就意味着string类不能被继承,并且它的成员方法都默认为final方法,在Java中,被final修饰的类是不允许被继承的,而且该类中的成员方法都默认为final方法
  • String类型其实是通过char数组来保存
  • string对象一旦被创建就是固定不变的了,对String对象的任何改变都是不影响到援对象,任何的改变操作都会生成新的对象

JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池。每当我们创建字符串常量的时候,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用。如果字符串不在常量池中,就是实例化该字符串并将其放到常量池中由于String字符串的不可变性,可以确定的是常量池中一定不存在两个相同的字符串。

常用方法:

  • charAt(int):返回指定索引处的char
  • endWith(Stirng):是否是String结尾的字符串
  • equals(Object):判断两个字符串是否内容相同,注意参数类型是Object数据类型。
  • 和==的区别,==比较地址,equals方法比较值。
  • equalsIgnoceCase(String):判断两个字符串不区分大小写内容是否相同。
  • indexOf(String):返回String在字符串中第一次出现索引的位置。如果不包含,返回-1
  • length():返回字符串长度
  • replaceAll(String1,String2):将字符串中所有的String1替换成String2,注意替换后的字符串以返回值返回,不会修改String1。
  • split(String):按照String拆分字符串,返回一个字符串数组。注意这个字符串是正则表达式。
  • substring(int1, int2):截取字符串,从int1开始,到int2-1中间的所有字符串。注意int2不要超过字符串长度,不要小于int1。

StringBuffer

和String的区别:

  1. String对象地址会发生变化,StringBuffer地址不会发生变化。
  2. 当修改字符串内容,String会按照Java的字符串机制,创建新的对象,修改字符串的地址。StringBuffer不会按照String的机制,会在原地址基础修改字符串内容。
  3. StringBuffer是线程安全的。

常用方法:

  • append(XXX):在字符串末尾添加
  • StringBuffer最后一般都会转换成String数据类型操作,通过toString方法可以将StringBuffer转换成String。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • String
    • 常用方法:
    • StringBuffer
      • 常用方法:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档