面试总结--2017.6.27

Posted Lance_xu_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试总结--2017.6.27相关的知识,希望对你有一定的参考价值。

  • 毕业季,求职季
  • 为了毕业忙前忙后在学校忙了好长时间,终于回上海了
  • 回来之后发现很痛苦的事情,拒绝实习公司的offer发现现在应届生机会蛮少的
  • 于是乎还是在boss直聘上去找中意点的互联网公司挨个去问哪家要人
  • 这里不得不吐槽下拉勾了,海投了3天的简历居然没一家面试
  • 周一第一家面试P2P平台,直接是技术面
  • 首先是Java基础,大概如下
  • 1、说说String和StringBuilder
    String是线程安全的,StringBuilder没实现线程同步锁,是非线程安全的;其次就是非多线程情况下操作大批量字符串建议使用StringBuilder(更多的可以参考这里写链接内容

  • 2、由于自己提到了多线程,后边接着被问了多线程
    这里我回答的也是泛泛回答的,主要说了一下多线程的实现方式有3中,其中jdk1.5之后提供Collable接口可以实现有返回值的多线程方式,开发极少接触这一块,这一块深挖下去的话就是关于多线程的安全问题以及不安全多线程的解决方案,即关于线程锁,这一块自己想接下来静下心来好好了解一下写篇文章。

  • 3、集合类,必问的
    简单解释了下自己常用的集合类,List、ArrayList、Map、HashMap主要关于数据结构方面的知识,后面继续补充。

  • 4、关于SpringIoc、Aop的理解
    主要就是解释了基本作用以及开发时用过的经历,举了自己之前用拦截器过滤资源权限的例子,然后提到了这方面的书籍,我就说了自己看过的《Spring技术内幕》第二版吧,其实去年看的时候没多少看懂的,计划今年会再过一遍。

  • 5、关于缓存技术
    这方面其实包括今天上午的面试都有问了,昨天面试感觉面试官问的问题不是很深入,我主要回答的是关于redis和memcached缓存API的使用,也没介绍其中的关于什么性能比较之类。 浮在表面了吧。

  • 6、关于数据库的使用
    主要问了下多表查重,我说的数据库现在都是分布式架构,尽量的单表操作,查询的话一般也要避免超过2张表的查询,而且需要关联紧密的表才会放在一起查询,比如spu和sku表。

  • 7、关于Mybatis
    这个倒是没问啥,想起来了之前有一次面试被问到的一个问题,就是sql里面#和$的区别,主要是预编译和预防sql注入的,这个网上有很多介绍。

  • 今天面试难度系数比昨天大得多,两轮技术面,架构师一面,技术leader二面。好在应付过来了,简单介绍一下几个问题

  • 8、其中架构师问了我对于GC的了解,我就简单的介绍了下Java垃圾回收机制,默认使用的是CMS垃圾回收器,以及CMS垃圾回收器的工作原理,因为解释了垃圾回收吗,所以我自己扯到了JVM堆内存中去了,就罗嗦的一下,堆内存的区域划分新生代、老年代和方法区,垃圾回收主要针对新生代的伊甸园和两个幸存区之间的垃圾对象,回收至老年代。建议可以看看书籍,什么《深入Java虚拟机》啊,我是还没看的,后边还需要去读关于Java规范方面的书籍。

  • 9、LinkedList和HashMap
    主要是关于数据结构的,必然有链表和hash。链表的话我就简单说了有单链表、双链表、循环链表,其次就是存取数据比较快而查询时间复杂度是O(n);HashMap建议看看这篇文章(这里写链接内容),今天我也没回答上来。

  • 10、多线程问题
    多线程的实现方式必须掌握的,线程安全问题以及举例非线程安全应用场景,解决非线程安全的方式,比如同步代码块、lock、tryLock。后续会写篇完整的博客。

  • 11、线程池问题
    多线程考虑JVM在高并发情况下资源紧张因素往往需要使用到线程池技术,列举5种常用线程池以及应用和适用场景。

  • 12、实现字符串反转输出
    可是使用StringBuffer类的reverse方法将字符串倒置输出。

  • 13、被问到hadoop中的一些基本概念
    节点类型、默认副本、配置、mapreduce、hdfs等

  • 14、Java8新特性
    流、lamda表达式,其中被问了用Stream流去处理集合类性能会不会提升,我直接说了性能会更好。被面试官反驳了。

  • 15、git
    说说常用的命令

  • 16、spring与spring-boot之间的联系
    说了下spring-boot是在spring4.x之后官方推荐使用注解开发,然后spring-boot采用0配置的方式将spring进行了包装,使得springmvc的开发更加容易,介绍了下之前做的毕业设计用的spring-boot+theamleaf写的。

  • 17、谈谈dubbo的认识
    介绍了下dubbo从服务端到客户端和zk注册中心的实现原理以及使用nettyNIO如何通信,面试官比较满意。后来问了下之前电商项目中使用dubbo的缘由,问了下网站pv量,我就说了下,然后面试说了按照我们的pv根本没必要上dubbo,dubbo作服务调度存在非高并发系统中使用会比较笨重。

  • 18、redis和memcache
    数据存储方式,特点,以及安全性谈了下自己的看法,感觉说错了很多。

  • 19、activeMQ
    谈了下队列用来解决什么问题和应用场景,以及队列模型。

  • 20、soa、微服务
    浅谈了下,在面试官面前不敢多言。

  • 21、zk
    这个本来是自己还比较熟悉的,但是没问到,也就没说,推荐读一下《从Paxos到zookeeper分布式一致性原理》

  • 两次面试印象深刻的问题都在这里了,感觉自己基础还是不够扎实,需要进一步提高,不过从面试表现来看面试官都还是很满意的,技术面都通过了。后面继续学习和分享。

以上是关于面试总结--2017.6.27的主要内容,如果未能解决你的问题,请参考以下文章

面试总结--01

java面试题之----HashMap常见面试题总结

2019年终总结

每个前端工程师都应该去了解的前端面试题总结

纯干货分享!2020阿里java岗笔试面试题总结(附答案)

高级各大公司Java后端开发面试题总结-下