历年Java面经(大厂面试必备)100题.pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

历年Java面经(大厂面试必备)100题

一一、、基基础础篇篇

1、Strings="xyz"和Strings=neString("xyz")区别?

【【仅仅供供参参考考】】

两个语句都会先去字符串常量池中检查是否已经存在“xyz”,如果有则直接使用,如果没有

则会在常量池中创建“xyz”对象。

另外,Strings=neString("xyz")还会通过neString()在堆里创建一个内容与"xyz"

相同的对象实例。

所以前者其实理解为被后者的所包含。

2、两个对象的hashCode()相同,则equals()是否也一定为true?

【【仅仅供供参参考考】】

equals与hashcode的关系:

如果两个对象调用equals比较返回true,那么它们的hashCode值一定要相同;

如果两个对象的hashCode相同,它们并不一定相同。

hashcode方法主要是用来提升对象比较的效率,先进行hashcode()的比较,如果不相同,那就

不必在进行equals的比较,这样就大大减少了equals比较的次数,当比较对象的数量很大的时

候能提升效率。

之所以重写equals()要重写hashcode(),是为了保证equals()方法返回true的情况下hashcode

值也要一致,如果重写了equals()没有重写hashcode(),就会出现两个对象相等但hashcode()

不相等的情况。这样,当用其中的一个对象作为键保存到hashMap、hashTable或hashSet中,再

以另一个对象作为键值去查找他们的时候,则会查找不到。

3、什么是StringJoiner?

【【仅仅供供参参考考】】

StringJoiner是Java8新增的一个API,它基于StringBuilder实现,用于实现对字符串之

间通过分隔符拼接的场景。

StringJoiner有两个构造方法,第一个构造要求依次传入分隔符、前缀和后缀。第二个构造则

只要求传入分隔符即可(前缀和后缀默认为空字符串)。

4、如何将字符串反转?

【【仅仅供供参参考考】】

使用StringBuilder或者stringBuffer的reverse()方法。

示例代码:

//StringBufferreverse

StringBufferstringBuffer=neStringBuffer();

stringBuffer.append("abcdefg");

第1/24页

System.out.println(stringBuffer.reverse());//gfedcba

//StringBuilderreverse

StringBuilderstringBuilder=neStringBuilder();

stringBuilder.append("abcdefg");

System.out.println(stringBuilder.reverse());//gfedcba

5、String类的常用方法都有那些?

【【仅仅供供参参考考】】

indexOf():返回指定字符的索引。

charAt():返回指定索引处的字符。

replace():字符串替换。

trim():去除字符串两端空白。

split():分割字符串,返回一个分割后的字符串数组。

getBytes():返回字符串的byte类型数组。

length():返回字符串长度。

toLoerCase():将字符串转成小写字母。

toUpperCase():将字符串转成大写字符。

substring():截取字符串。

equals():字符串比较。

6、JDK/JRE/JVM三者的关系

【【仅仅供供参参考考】】

JVM

英文名称(JavaVirtualMachine),就是我们耳熟能详的Java虚拟机。Java能够跨平台运

行的核心在于JVM。

所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说

class文件并不直接与机器的操作系统交互,而是经过虚拟机间接与操作系统交互,由虚拟机将

程序解释给本地系统执行。

针对不同的系统有不同的jvm实现,有Linux版本的j

文档评论(0)

150****5215 + 关注
实名认证
内容提供者

互联网教育行业优质分享者,喜爱分析考试试题,模板套件,学习资料等

1亿VIP精品文档

相关文档