飞道的博客

国内Java面试总是问StringBuffer,StringBuilder区别是啥?档次为什么这么低?

421人阅读  评论(0)

大厂开场的面试题一般就是这么朴实无华且枯燥。我们的一位老师阿里P8,面P6/P7上来第一个问题就是这个:Java中操作字符串都有哪些类?它们之间有什么区别?

答案是这样的:

String,StringBuffer,StringBuilder。区别String声明的是不可变的对象,每次操作必然产生一个新的对象;StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder;StringBuffer具备线程安全性;

在使用场景上,并发必选StringBuffer,迭代必选StringBuilder,普通场景选String,避免中途不必要的类型转换开销。

虽然看起来简单,但从答案组织策略来看,知道有什么,知道为什么,知道怎么用缺一不可,否则就等着面试官的灵魂拷问吧。

这里面还有两个加分项:

1.知道StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder

2.String的源码解读:final修饰–>不可变–>每次操作都会生成新的String对象;对比StringBuffer和StringBuilder–>值可变,拼接字符串开销

这只能算开场热身,接下来才是重点。

面试官会问你线程安全性。可以直接查源码,找synchronized、线程锁,得到结论:StringBuffer具备线程安全性。

你以为要结束了?接着问:既然StringBuffer具备线程安全性,迭代开销又小,那我们在工程实践中是不是首选StringBuffer就可以了?这就是考验你的批判性思维

所以这一波你以为你在第三层,其实面试官在第五层,老千层饼了。

总结下来,大厂面试刚开始的问题一般都有这样的特点:

  1. 都是教科书级的题目
  2. 都是工程实践中常用的
  3. 都是习以为常,不容易去主动深究的

【本周免费讲座——Lab126 亚马逊家用硬件组面试指南】

课程概述

首场硬件面试技巧分享,亚麻lab126面试官,从产品开发流程讲到职业选择,面试流程,BQ(行为面试)和技术问题,到EE转码的雷点。

讲座时间:北京时间 8/2(本周日) 上午10:00:00
报名方式: 戳我即可报名

考察目的也很简单:基础知识的扎实程度和候选人对技术的热情。

虽然看起来档次低,但的的确确能筛掉一大批人。面试官这么问主要是看候选人技术栈的广度和深度,所以往往会从简单常见的问题开始不断深挖,直到你答不上来为止。如果广度和深度这两点都答得比较好,那offer基本就稳了。

当然不同级别的面试,要求也不一样。所以被问到答不上来时,也不要觉得面试凉了,这可能只是面试官在确定你的考察级别。以阿里P5-P7来看,要求的知识结构大概是这样:

P5对应校招级别:Java语言高级特性简单来说就是教科书不怎么讲的东西,比如并发、算法线程、模板使用等等;关系数据库,索引怎么建,索引算法是什么,怎么调优,从百万到亿级数据量之间要做些什么工作;面向对象/设计模式则一般通过简历上的项目来了解。

P6是社招起步职级:面试一般就是抓住简历中的项目,不断深挖技术,主要看你是不是真的做过和理解。

P7技术专家:高可用架构、JVM原理和优化,这两个国内与国外差异比较大,国内非常重要所以是面试重点关注内容。用过Spring cloud的话,面试官会跟你深入沟通一番;如果能再懂点云计算,那么这个P7含金量就比较高了。

最后,面试中你的每一次回答都要珍惜,每一句话都要斟酌。你要告诉面试官:你真的很专业。


转载:https://blog.csdn.net/JiuZhang_ninechapter/article/details/107696042
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场