资讯专栏INFORMATION COLUMN

Java 面试准备[二]

feng409 / 2306人阅读

摘要:关于字符串的个面试问题和方法是用于比较对象的引用地址的,或者说是否指向同一个变量。线程安全类,内部使用同步机制。另外,还需要尽早考虑多线程,原子性,内存使用量以及性能等因素。所以尽量不要把集合的成员变量暴露给调用者。

关于字符串的10个面试问题 1. == 和 equals()方法

== 是用于比较对象的引用地址的,或者说是否指向同一个变量。
equals是比较对象的真实值的

2. 为什么针对安全保密高的信息,char[]比String更好?

char[] 是可以修改的,String是不可变对象,创建之后无法修改,无法删除,只能等到JVM垃圾回收。

3. 我们可以针对字符串使用switch条件语句吗?

JDK7 是支持在switch中使用字符串比较的,但Android目前还是基于JDK6的。

4. 如何将字符串转化成int?

int a = Integer.partInt("124");

5. 如何将字符串用空白字符分割开?

String [] a = aString.split(" ");

6. substring()方法到底做了什么?

JDK7 中 subString(m, n) 会创建一个新的字符串。

7. String vs StringBuilder vs StringBuffer

String 不可变对象。
StringBuilder 线程不安全类,速度比StringBuffer快。
StringBuffer 线程安全类,内部使用同步机制。

关于集合框架 1. Java集合框架都有哪些最佳实践呢?

根据实际的使用情况选择合适的数据结构,例如固定大小的还是需要增加大小的,有重复元素的还是没有的,需要保持有序还是不需要,遍历是正向的还是双向的,插入是在末尾的还是任意位置的,更多的插入还是更多的读取,是否需要并行访问,是否允许修改,元素类型是相同的还是不同的,等等。另外,还需要尽早考虑多线程,原子性,内存使用量以及性能等因素。

不要假设你的集合里元素的数量一直会保持较小,它也有可能随着时间增长。所以,你的集合最好能够给定一个合适的大小。

针对接口编程优于针对实现编程。例如,可能在某些情况下,LinkedList是最佳的选择,但是后来ArrayList可能因为性能的原因变得更加合适
不好的方式

ArrayList list = new ArrayList(100);

好的方式,针对接口编程

// program to interface so that the implementation can change
List list = new ArrayList(100);
List list2 = new LinkedList(100);

List emptyList = Collections.emptyList( );
Set emptySet = Collections.emptySet( );

在取得列表的时候,如果返回的结果是空的话,最好返回一个长度为0的集合或者数组,而不要返回null。因为,返回null的话可能能会导致程序错误。调用你的方法的开发人员可能会忘记对返回为null的情况进行处理。

封装好集合:一般来说,集合都是不可变的对象。所以尽量不要把集合的成员变量暴露给调用者。因为他们的操作一般都不会进行必要的校验。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64143.html

相关文章

  • 从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

    摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享 目录: 印象中的头条 面试背景 准备面试 ...

    tracymac7 评论0 收藏0
  • 从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

    摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享目录:印象中的头条面试背景准备面试头条一面(Java+项目)头条...

    wdzgege 评论0 收藏0
  • 真香!在Github一夜爆火的面试题库,程序员的福利!

    摘要:下面来看主要内容爆款面试宝典目录总览面试前的准备工作面试就是双方互相试探的过程,抛去技术面不谈,面试前简历自我介绍,以及跟对线细节一定要提前准备好基础技术基础集合多线程框架横向技术数据库消息中间件网络设计模式         为了帮大家解决这一问题,LZ今天就把今年金三银四帮我斩获了8家大厂...

    Lowky 评论0 收藏0
  • 如何准备校招技术面试

    摘要:网易跨境电商考拉海购在线笔试现场技术面面。如何看待校招面试招聘,对公司而言,是寻找劳动力对员工而言,是寻找未来的同事。 如何准备校招技术面试 标签 : 面试 [TOC] 2017 年互联网校招已近尾声,作为一个非 CS 专业的应届生,零 ACM 经验、零期刊论文发表,我通过自己的努力和准备,从找实习到校招一路运气不错,面试全部通过,谨以此文记录我的校招感悟。 写在前面 写作动机 ...

    MkkHou 评论0 收藏0
  • 我的春招求职经验分享(已拿阿里京东网易等 5 个 offer)

    摘要:面经因为我完全没有面试经验,从来没有经历过面试,于是想着在去这类大公司面试之前先找成都的小公司练练手,积累点面试经验。于是三月份开始就有成都的小公司开始约我面试。 前序 从我高考成绩出来那一刻开始,从我在高考志愿上填上计算机科学与技术这几个当时在心中堪称神圣的几个字开始,我就已经把进入中国互联网最高殿堂BAT作为我整个大学奋斗的目标,哪怕我就读的是一所位于内陆的双非一本大学我也认为我能...

    Winer 评论0 收藏1

发表评论

0条评论

feng409

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<