又是金三银四的时候,我希望这份面试题能够祝你一臂之力!

自我和项目相关

1、自我介绍

2、你觉得自己的优点是?你觉得自己有啥缺点?

3、你有哪些 offer?

4、你为什么要离开上家公司?你上家公司在xxx,我们公司在xxx,离这么远为什么要选择我们这里?

5、上家公司的同事和领导是怎么评价你的?

6、介绍下你的上家公司是做哪块的吧

7、在上家公司你做了哪些项目?

8、你在项目中是什么角色?

9、这个项目的数据量和并发量多大?

10、这个项目用的什么技术?

11、项目过程中有遇到什么很印象深刻的问题吗?

12、是怎么解决的这些问题?

13、项目有没有还可以继续优化的地方?

14、该怎么优化?有什么思路没?

15、叫你设计一个并发xxx,数据存储量xxx 量级的系统,你该如何设计?从你知道的点尽可能的多说出些?

Java 基础

1、Object 对象的方法有哪些?分别有什么作用?该什么场景用?

2、Integer 的常量缓存池

3、Java 特性?什么是多态?举个例子

4、重载重写的区别?

5、画下 HashMap 的结构图?HashMap 、 HashTable 和 ConcurrentHashMap 的区别?使用场景分别是?

6、HashMap 中怎么解决冲突的?

7、ConcurrentHashMap 和 HashTable 中线程安全的区别?为啥建议用 ConcurrentHashMap ?能把 ConcurrentHashMap 里面的实现详细的讲下吗?

8、保证线程安全的还有其他的方式吗?

9、讲下 Synchronized?

10、讲下 ReentrantLock 可重入锁? 什么是可重入锁?为什么要设计可重入锁?

11、Synchronized 和 ReentrantLock 有什么区别?这两个有没有深入了解源码?

12、讲下 Volatile 吧?他是怎样做到同步的?

13、Volatile 为什么不支持原子性?举个例子

14、Atomic 怎么设计的?有用过里面的类吗?

15、线程安全类和线程不安全的类,项目使用的时候你会怎么选择?怎么判断项目代码哪里会有线程不安全问题?

16、Map、List、Set 分别说下你了解到它们有的线程安全类和线程不安全的类?

17、TreeSet 清楚吗?能详细说下吗?

18、ThreadLocal 了解吗?项目有用过吗?可以说说

19、JUC 里面你还知道什么其他的类吗?比如 CountDownLatch、Condition

20、从源码详细说下 Java 里面的线程池吧,使用线程池有什么要注意的地方?你们公司有规范吗?

JVM

1、JAVA 类加载器

2、Java 内存结构(注:不是 Java 内存模型,别搞混)

3、怎么判断对象是否可 GC?Java 对象有哪些引用类型?有什么区别?

4、OOM 出现的有哪些场景?为什么会发生?

5、Minor GC 和 Full GC 有什么区别?分析过 GC 日志吗?

6、说下你知道的垃圾回收算法

7、说下你知道的垃圾收集器

8、CMS 和 G1 的区别知道吗?使用场景分别是?你项目中用的是哪个?

9、你还知道哪些 JVM 调优参数?

10、假如线上服务发生 OOM,有哪些措施可以找到问题?

11、假如线上服务 CPU 很高该怎么做?有哪些措施可以找到问题?

12、假如线上应用频繁发生 Full GC,有哪些措施可以找到问题?

13、一般线上环境遇到 JVM 问题,你会使用哪些工具来分析?找到问题后又该如何去解决呢?

Spring

1、说下你对 Spring 生态的了解?

2、说下你对 Spring AOP 和 IOC 的理解?看过实现原理吗?

3、说下 Bean 在 Spring 中的生命周期?

4、讲下你知道的 Spring 注解有哪些?该什么场景使用?

5、Spring 事务知道吗?有了解过吗?

6、说下你刚才说的 SpringBoot 吧,你觉得 SpringBoot 有什么优点?

7、SpringBoot 自动化配置是怎么做的?有看过实现源码吗?

8、Spring Boot 中最核心的注解 SpringBootApplication 有看过源码分析过吗?

9、你的项目中 SpringBoot 用到了哪些和其他技术栈整合的?

10、使用 Spring 或者 SpringBoot 有遇到过什么印象深刻的问题吗?当时是怎么解决的?

数据库

1、你的项目使用的是什么数据库?

2、你对数据库了解多少?说下数据库的索引实现和非主键的二级索引

3、说下 MySQL 的索引原理

4、讲下 InnoDB 和 MyISAM 的区别?使用场景是?

5、有和 ElasticSearch 的索引原理对比过吗?

6、如何判断一个查询 sql 语句是否使用了索引?

7、数据库事务特性和隔离级别

8、项目数据库表是你设计的吗?一般要注意什么?如何考虑扩展性?

9、项目 MySQL 的数据量和并发量有多大?量大后的影响有哪些,有考虑吗?SQL 调优有哪些技巧?

10、说下你项目里面关于数据库印象最深的一个问题?当时是怎么解决的

其他

1、描述下网页一个 Http 请求到 www.54tianzhisheng.cn/,到后端的整个请求过程

2、有比较过 Http 和 RPC 吗?如果叫你设计一个高性能的 Http 或者 RPC,你会从哪些方面考虑?

3、项目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Flink 等),有深入了解它们的原理和懂点调优技巧吗?

4、项目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Mysql 等),有深入了解它们数据同步是怎么做吗?

5、项目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Mysql 等),有深入了解它们常见的监控指标吗?

6、如果叫你设计一个秒杀系统,你会从哪些方面考虑?

7、如果叫你设计一个电商系统,你会从哪些方面考虑?

8、如果叫你设计一个监控告警系统,你会从哪些方面考虑?

总结

本文的面试题以 HR & 技术官角度常问的面试题,技术方面从 Java 基础、JVM、Spring、数据库、拓展题等方面考察你,当然面试官可能还会问些其他的技术点,我一篇文章也难以概全。总的来说,还是得多准备充分,面试时灵活答辩,相信你最后能拿到满意的 offer!加油,骚年!

Java开发面试题汇总整理的更多相关文章

  1. java 开发面试题小整理(一)

    本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...

  2. Java开发面试题汇总 -- 精选版(附答案)

    最近事情太多,没太时间写公众号.今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的兄弟姐妹们. 前面我己写过多篇推文,相信关注此公众号的伙伴们已经了解掌握了不少.从目前流行的开发技 ...

  3. java 开发面试题小整理(二)

    51.Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 答:可以继承其他类或实现其他接口,在Swing编程和Android开发中常用此方式来实现事件监听和 ...

  4. 100个iOS开发面试题汇总-王刚韧的技术博客

    100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...

  5. 100个iOS开发面试题汇总

    100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...

  6. Java开发面试题整理(2019春招)

    一.Java基础部分 1. HashMap和Hashtable各有什么特点,它们有什么区别?(必背题,超级重要) HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们 ...

  7. 百度java开发面试题

    第一面  项目:  1.找一个项目,介绍下情况.其中遇到了什么问题,每种问题怎么样的解决方案.  算法题:  2.一个排好序的数组,找出两数之和为m的所有组合  3.自然数序列,找出任意连续之和等于n ...

  8. Java开发面试题,3年工作经验的Java程序员面试经

    一.Java基础部分 1.使用length属性获取数组长度,public.private.protected.friendly区别 2.Collection和Collections区别 3.Strin ...

  9. 金三银四:蚂蚁金服JAVA开发面试题及答案之一面(持续更新

    一面 1.自我介绍.自己做的项目和技术领域 开放题 2.项目中的监控:那个监控指标常见的有哪些? 答:CPU.内存.IO 等等.建议下载个nmon工具,里面有各个指标. 数据库:Mysql(缓存命中. ...

随机推荐

  1. windows配置java运行环境

    配置jdk环境    https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 配置tomcat环境      https://j ...

  2. selenium+PhantomJS小案例—爬豆瓣网所有电影代码python

    #coding=utf-8from selenium import webdriver def crawMovie(): driver=webdriver.PhantomJS() driver.get ...

  3. PAT Basic 1046

    1046 划拳 (15 分) 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输 ...

  4. IO流(6)—转换流

    1.处理流之二:转换流 InputStreamReader和OutputStreamWriter 2.当作用的文件就是一个文本文件且使用字节流传输时,需要把它转换成字符流,再在外面加上缓冲流以加速传输 ...

  5. [Java代码] Java用pinyin4j根据汉语获取各种格式和需求的拼音

    pinyin4j是一个功能强悍的汉语拼音工具包,主要是从汉语获取各种格式和需求的拼音,功能强悍,下面看看如何使用pinyin4j.下面介绍用pinyin4j来做的一个根据汉语获取各种格式和需求的拼音d ...

  6. Android Studio 安装与设置

    http://www.cnblogs.com/abao0/p/6934127.html

  7. 设计模式之二十一:中介者模式(Mediator)

    中介者模式:定义了一个对象.用来封装一系列对象的交互.中介者模式通过使对象之间不必显式引用减少了对象之间的耦合,而且同意你独立改变它们之间的交互. 中介者模式就是将对象之间的交互封装在了一个独立的对象 ...

  8. 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值

    $(function () { var wait = $("<img src=\"\" alt=\"正在上传\"/>"); $( ...

  9. 移动端禁止页面拖动 h5禁止拖动页面

    PC上css控制滚动仅css("overflow","hidden")已足够. 但是,如果在Mobile上还是可以拖动的!所以需要监听touchmove事件. ...

  10. 这些APP开发技巧可少花60万!

    用户需求——我偏不用干嘛要装? 随着手机的普及,大众流量的端口从电脑转移到手机,传统的商业平台从线下到电脑再到手机进行了转换.手机APP作为移动互联网的入口,众多创业者凭借一个手机APP成就了亿万财富 ...