您的位置 首页 java

BAT架构师java面试经验总结

下面就简单说下自己的一些浅薄的经验吧,希望能为屏幕前的你提供一点的启发。该文章会先将经常问到的问题一一列出来,等以后有时间了我会给出参考答案,当然其中一些答案只是笔者现有技术上的一些个人想法,仅供参考,如果有什么不妥的地方还望指出。

简历篇

建议简历中按照图中1的方式去写,让简历筛选者一眼就能看到你项目中的亮点(图中仅供参考)

面试篇

(1)从java基础说起

1.HashMap和HashTable两个类的底层实现,HashTable的get方法加锁了吗?为什么?两者异同点是什么?ConcurrentHashMap的底层实现,和HashTable相比,为什么性能更高。

2.ArrayList和LinkedList区别,实现方式

3. jvm 是如何管理内存的?垃圾回收 算法 有哪些?垃圾回收器有哪些?如何使用?什么是垃圾?可达性算法和引用计数算法了解吗?什么是GCRoot?如果对象一直创建,直到发生fullgc,说一下这整个过程。minor gc和full gc都会造成stop the world吗?如何降低fullgc发生的次数?

4.说一下双亲委派机制,jvm为什么要使用双亲委派机制?类加载器可能被继承吗?可以出现违背双亲委派机制的情况吗?如果有,解释为什么要违背双亲委派机制?

(2)多线程问题

1.如何正确终止一个线程?

2.实际工作中是如何使用多线程的?用多线程方式去求一个数组的和。写一个生产者消费者模型

3. 线程池 用过吗?解释下线程池的重要参数,阻塞队列用过哪些?底层是怎么实现的?task不断的涌现,说一下线程池是如何消费任务的(什么时候创建线程,销毁线程)?

4.synchronized和lock的区别,使用时的注意点在哪?CyclicBarrier和CountDownLatch分别在什么情况下使用?多线程之间如何通信?

5.volitile的语义,jdk为我们提供了哪些基本数据类型的原子操作类?AtomicInteger是如何实现原子递增的?CAS有什么缺点?如何避免?

(3)框架篇

1.spring是如何管理 bean 的?spring管理的bean的生命周期是什么?spring如何解决循环依赖?

2.spring为我们提供了哪些注解用于AOP?他们的执行顺序如何?

3.spring的事务传播机制是什么?事务的 隔离级别 是什么?

4.你们的程序是如何处理异常的?

5.springmvc的执行过程, mybatis 的执行过程

6.了解哪些springcloud组件?微服务和soa有什么区别?

(4)数据库篇

1. mysql 索引 的算法有几种?什么情况下使用索引?如果有sql执行比较慢,该怎么解决?

2.mysql中的 innodb 和mysaim有什么区别?

事务、 外键 、hash结构索引的支持、 全文索引 的支持、锁的粒度、物理文件异同

3.事务的隔离级别,innodb是如何解决幻读的?mvvc(多版本事务控制)了解吗?

4.如何分库分表?

5.如何查看sql的执行计划,如果有sql没有走预期的索引怎么办?

(5) 中间件

1、项目中如何使用 redis 的,redis支持哪几种数据类型?持久化机制有哪些?分别有什么用,什么异同点?aof文件会一直增大吗?redis如何做分布式锁的?redis支持事务吗,如果支持是怎么实现的?底层原理是什么?和传统数据库提供的事务有什么区别?

2、 mongodb 是怎么使用的?技术选型的时候为什么选择mongodb?mongodb是如何支持事务的,多文档事务是在什么版本开始支持的?

3、memcached如何使用,底层的内存管理是什么样子的?

4、 rabbitmq 、activemq、kafka有什么区别?怎么做技术选型?底层实现了什么协议?

5、 zookeeper 是什么?节点类型有哪几种?了解paxos协议吗?了解ZAB算法吗?zookeeper是如何保证事务的?用zookeeper如何实现分布式锁?

(6)linux篇

1、能进行 shell编程 吗?有没有过实际经验?

2、直接将文件B.TXT中的所有123替换成345

sed -i 's/123/456/g' B.TXT
 

3、写出命令。统计日志文件weblog.log中 今天14:00~15:00的记录条数(时间格式:2011-01-01—15:30:11)

sum14=`grep -c "2011-01-01-14" weblog.log`
sum15=`grep -c "2011-01-01-15" weblog.log`
echo $[$sum14+$sum15]
 

4、文件A.txt内容为”12:34:68″,只输出A.txt中的”34″

awk -F ":" '{print $2}' A.txt
 

面试后

1、二面和三面之后,面试官一定会问,你还有什么要问我的吗?

这个时候请一定不要说“没有了”,如果你觉的面试的还可以的话,请务必问以下几个问题(1)如果我有幸进入项目组,我的任务是什么?会面临哪些技术难题?(2)部门效益怎么样?公司对部门看好吗?

希望可以给各位带来一些帮助,如果有什么不妥的地方尽管提出来就好,毕竟人无完人,祝大家都能找到自己心仪的offer。

文章来源:智云一二三科技

文章标题:BAT架构师java面试经验总结

文章地址:https://www.zhihuclub.com/184462.shtml

关于作者: 智云科技

热门文章

网站地图