Java面试总结(2017.10)

Posted

tags:

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

Java面试总结(2017.10)

         把最近一个月的面试经历总结一下吧。期间有面试大数据和java,以下主要针对java大概总结一下。

一、某滴(套路:项目、数据结构、算法、数据库、多线程)

1.手写链表反转、二分查找(有序循环数组 4 5 1 2 3)

2.mysql索引,哪些地方影响性能?

3.jdk1.8 hashmap 的变化? 数组+树,数组加表  空间复杂度 

4.hashmap的结构优化?

5.concurrenthashmap机制?

6.hbase,为什么要有列族?

7.rabbitmq、redis相关?

8.公司项目架构(我把自己负责的模块讲了)

9.spark rdd?

10.内存模型,内存管理,GC?

11.js创建对象的方式(用的不多)

12.数据库引擎,索引,哪些地方涉及到io,怎么优化?

13.设计清理机制,redis设置过期的值,如何清理?

14.redis存储类型?

15.springmvc的执行过程,mybatis二级缓存,缓存机制?

16.zookeeper选举机制?

17.spring core有哪些组件?

18.数据库隔离机制  脏读  幻读?

19.锁机制?

20.synchronized(排序)与lock(不排序,吞吐量大)的区别?

21.volatile 可见性?

22.多线程实现方法,构造方法参数

 

二、某东(套路:项目、架构图、高并发、JVM、数据库)

1.自我介绍

2.画出最熟悉项目的架构图 讲一下流程

3.根据流程问细节实现

4.并发安全实现的几种方式 你在工作中的实现场景

5.java的同步机制

6.synchronized

7.Object方法中的方法

8.ThreadLocal机制 

9.一个类里static方法和普通方法都用synchronized修饰会发生什么

10.并发下hashmap死锁问题如何解决

11.Hashtable替换HashMap

12.Collections.synchronizedMap将HashMap包装起来

13.ConcurrentHashMap替换HashMap

14.jvm内存模型 jvm如何处理String str = new String(“abc”)

15.gc的机制和算法 (何时触发full gc等)

16.一谈最近看过的技术书籍

17.服务器/数据库高并发/高可用解决方案

18.讲一下一次典型写操作的流程 创建几个类 如何提升mysql 写操作的最大并发量

19.查询的优化

20.如何保证高访问量下读写数据的一致

21.创建表时要注意的事项 什么时候需要冗余设计

22.哪些字段要建索引 同一张表建多个索引的优缺点

23.你研究过最难的算法是哪个

24.nginx里正则的使用

25.Springmvc里面都有什么注解 spring aop底层用什么实现

26.动态代理,反射

27.http状态码302 代表什么

28.cookie请求头包含哪些内容

29.不用session如何保存用户数据

30.单例为什么需要双重检查

31.js对象的种类 js如何实现map结构

总结:连续3轮面试 无笔试 对于有工作经验的会问细节 具体到代码实现

三、某米(套路:多线程、数据结构、算法、数据库、linux)

1.栅栏(cyclic),闭锁\递减锁(countdownlatch)

2.多线程,5种状态,多线程方法参数(核心线程池数量、最大数量、超时时间、时间单位、拒绝服务器助手(handler,队列))

3.hashmap源码,参数

4.空间复杂度、时间复杂度

5.两个线程,分别输出1,2。如何实现1,2,1,2,1,2,.....交换输出

6.二分查询,返回下标,

7.快速排序

8.数据库,索引,

9.flume 与 storm的区别

10.redis如何存set\list等值

11.volatile作用

12.悲观锁,乐观锁什么情境下用

13.如何实现秒杀

14.三维数组赋值,三层for循环,用一个循环?

15.linux查询某一个文件的IP

16.查找目录下的所有文件中是否含有某个字符串

17.linux通过关键词查询 命令  xiaomi.com

18.输出日志的最后5行 tail -f 5 ./log

         最后总结:以上列举三家公司面试情况(两年工作经验),面试问题大同小异,换汤不换药。面试时间一般在2个小时左右,我经历最长的一次是3个半小时。面试一般是三轮(两轮技术面,一轮HR面),经历最多的面试是四轮(三轮技术面,一轮HR面)。大公司更注重基础,比如:数据结构、算法、索引、JVM、优化等,小公司更偏重应用,比如:Spring、struts2、mybatis、数据库等的使用。

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

Java面试技巧

Java 面试总结 —— 面试常问的关键字总结

Java面试总结

个人总结工作两年的 JAVA 程序员面试总结

Java面试总结(2021优化版)发布&1024程序员节

Java面试总结(2021优化版)发布&1024程序员节