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、数据库等的使用。

时间: 2024-10-25 21:55:24

Java面试总结(2017.10)的相关文章

Java面试宝典-2017

Java面试宝典2017版 一. Java基础部分...................................................................................................... 7 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?..... 7 2.Java有没有goto?.......................................................

Java面试宝典2017

JAVA面试.笔试题(2017版)                 欲想成功,必须用功!   目录 一.                  HTML&CSS部分.......................................................................................... 9 1.HTML中定义表格的宽度用80px和80%的区别是什么?...................................... 9 2.CSS样

Java面试宝典2017版

1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有没有goto? java中的保留字,现在没有在java中使用. 3.说说&和&&的区别. &和&&

转:最近5年133个Java面试问题列表

最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我初入职场的时候,类似于 Vector 与 Array 的区别.HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在.如今,你将会被问到许多 Java 程序员都没有看过的领域,如 NIO,

蓝鸥成都整理Java程序员的10道XML面试题

蓝鸥成都给大家整理了10道常见的XML面试问答题,这些问题大部分在Java面试中会问到.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的. XML面试问答 这些问题并不很难但涵盖了XML技术的一些重要领域,比如DTD,XML Schema,XSLT转换,XPATH检索,XML绑定,XML解析器以及XML的基本知识,比如命名空间,校验,属性,元素等. 问题1:XML是什么? 答:XML即可扩展标记语言(Extensibl

java 面试 -- 4

Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础:若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大).本文的问题列表来自于http://www.nowcoder.com/discuss/3043,在此感谢原作者的无私分享:) 1. Java中的原始数据类型都有哪些,它们的大小及对应

Java 面试-- 1

JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能.不管你是面试各个级别的JAVA工程师.架构师.还是项目经理,这个系列文章都是你最宝贵的资

[转载]java面试中经常会被问到的一些算法的问题

Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享一下在面试中经常被问到的一些基本的算法,也当做一次知识的巩固. 排序算法的一些特点: * 排序算法的分类如下:* 1.插入排序(直接插入排序.折半插入排序.希尔排序):* 2.交换排序(冒泡泡排序.快速排序):* 3.选择排序(直接选择排序.堆排序):* 4.归并排序:* 5.基数排序.* * 关于

Java面试宝典

http://www.cnblogs.com/bluestorm/p/6429894.html Java面试宝典 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或