你应该知道的JAVA面试题

经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问。答案会在后面的文章中逐渐发布出来。

基础题目

  1. Java线程的状态
  2. 进程和线程的区别,进程间如何通讯,线程间如何通讯
  3. HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别
  4. Cookie和Session的区别
  5. 索引有什么用?如何建索引?
  6. ArrayList是如何实现的,ArrayList和LinedList的区别?ArrayList如何实现扩容。
  7. equals方法实现
  8. 面向对象
  9. 线程状态,BLOCKED和WAITING有什么区别
  10. JVM如何加载字节码文件
  11. JVM GC,GC算法。
  12. 什么情况会出现Full GC,什么情况会出现yong GC。
  13. JVM内存模型
  14. Java运行时数据区
  15. 事务的实现原理

技术深度

  1. 有没有看过JDK源码,看过的类实现原理是什么。
  2. HTTP协议
  3. TCP协议
  4. 一致性Hash算法
  5. JVM如何加载字节码文件
  6. 类加载器如何卸载字节码
  7. IO和NIO的区别,NIO优点
  8. Java线程池的实现原理,keepAliveTime等参数的作用。
  9. HTTP连接池实现原理
  10. 数据库连接池实现原理
  11. 数据库的实现原理

技术框架

  1. 看过哪些开源框架的源码
  2. 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?
  3. Netty是如何使用线程池的,为什么这么使用
  4. 为什么要使用Spring,Spring的优缺点有哪些
  5. Spring的IOC容器初始化流程
  6. Spring的IOC容器实现原理,为什么可以通过byName和ByType找到Bean
  7. Spring AOP实现原理
  8. 消息中间件是如何实现的,技术难点有哪些

系统架构

  1. 如何搭建一个高可用系统
  2. 哪些设计模式可以增加系统的可扩展性
  3. 介绍设计模式,如模板模式,命令模式,策略模式,适配器模式、桥接模式、装饰模式,观察者模式,状态模式,访问者模式。
  4. 抽象能力,怎么提高研发效率。
  5. 什么是高内聚低耦合,请举例子如何实现
  6. 什么情况用接口,什么情况用消息
  7. 如果AB两个系统互相依赖,如何解除依赖
  8. 如何写一篇设计文档,目录是什么
  9. 什么场景应该拆分系统,什么场景应该合并系统
  10. 系统和模块的区别,分别在什么场景下使用

分布式系统

  1. 分布式事务,两阶段提交。
  2. 如何实现分布式锁
  3. 如何实现分布式Session
  4. 如何保证消息的一致性
  5. 负载均衡
  6. 正向代理(客户端代理)和反向代理(服务器端代理)
  7. CDN实现原理
  8. 怎么提升系统的QPS和吞吐量

实战能力

  1. 有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的。
  2. 开发中有没有遇到什么技术问题?如何解决的
  3. 如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能。
  4. 新浪微博是如何实现把微博推给订阅者
  5. Google是如何在一秒内把搜索结果返回给用户的。
  6. 12306网站的订票系统如何实现,如何保证不会票不被超卖。
  7. 如何实现一个秒杀系统,保证只有几位用户能买到某件商品。

软能力

  1. 如何学习一项新技术,比如如何学习Java的,重点学习什么
  2. 有关注哪些新的技术
  3. 工作任务非常多非常杂时如何处理
  4. 项目出现延迟如何处理
  5. 和同事的设计思路不一样怎么处理
  6. 如何保证开发质量
  7. 职业规划是什么?短期,长期目标是什么
  8. 团队的规划是什么
  9. 能介绍下从工作到现在自己的成长在那里

你应该知道的JAVA面试题的更多相关文章

  1. 面试前必须要知道的Redis面试题

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面: 从零单排学Redis[青铜] 从零单排学 ...

  2. 你应当知道的Java牛人

    Java领域有非常多著名的人物,他们为Java社区编写框架.产品.工具或撰写书籍改变了Java编程的方式. 本文是<最受欢迎的8位Java牛人>的2.0版本号. PS:排名不分先后.本文的 ...

  3. java 面试题总结(一)

    从网上找了些面试题,自己手工总结了理解了一下,如有理解错误,还请指正. java基础 1.String 为什么是final的?     https://www.zhihu.com/question/3 ...

  4. 面试前必须要知道的21道Redis面试题

    1.使用redis有哪些好处? 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支持丰富数据类型,支持string,list,set,so ...

  5. 关于Java高并发编程你需要知道的“升段攻略”

    关于Java高并发编程你需要知道的"升段攻略" 基础 Thread对象调用start()方法包含的步骤 通过jvm告诉操作系统创建Thread 操作系统开辟内存并使用Windows ...

  6. 每一个JavaScript开发者都应该知道的10道面试题

    JavaScript十分特别.而且差点儿在每一个大型应用中起着至关关键的数据.那么,究竟是什么使JavaScript显得与众不同,意义非凡? 这里有一些问题将帮助你了解其真正的奥妙所在:   1.你能 ...

  7. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

  8. 来自投资银行的20个Java面试题

    问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你在一个线程里初始化了一个 ...

  9. java 面试题2

    Java 模拟面试题 1.面向对象的特点 继承,封装,多态 2.对象和类的区别是什么? 对象是对客观事物的抽象,类是对对象的抽象.类是一种抽象的数据类型,它们的关系是,对象是类的实例,类是对象的模板. ...

随机推荐

  1. iOS 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标

    /** * 根据圆心的坐标点.半径.当前手势所在的坐标点,计算出圆的运动轨迹坐标 * @param radius 圆心半径 * @param centerCircle 圆心的坐标点 * @param ...

  2. 用一条sql取得第10到第20条的记录

    因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现:一.搜索前20条记录,指定不包括前10条语句:select top 20 * from tbl w ...

  3. 在Linux系统中增加和删除用户

    linux创建账户并自动生成主目录和主目录下的文件 在Linux系统中增加和删除用户 Linux添加用户(user)到用户组(group) usermod -a -G groupA user linu ...

  4. 关于RF对于不在屏幕内的页面元素的处理办法

    1.碰到的问题: 最近在公司用Robot framework+Selenium2Library做项目,碰到部分页面比较长,无法完全显示在屏幕内,需要上下滚动滚动条才能看到下半部分的页面元素.于是呼,问 ...

  5. scala 基础语法

    文章内容全部来自:http://twitter.github.io/scala_school/zh_cn/index.html 表达式 scala> 1 + 1 res0: Int = 2 值 ...

  6. python binascii模块详解

    ['Error', 'Incomplete', 'b2a_hex', 'hexlify' #Hexadecimal representation of binary data. 字符串转16进制'a2 ...

  7. JSP九大内置对象辨析

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6043096.html JSP中一共预先定义了9个这样的对象,分别为:request.response.sess ...

  8. HDUOJ-------The Hardest Problem Ever

    The Hardest Problem Ever Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  9. apache2.2 虚拟主机配置(转)

    转自:http://blog.csdn.net/zm2714/article/details/8351342 一.改动httpd.conf 打开appserv的安装文件夹,找到httpd.conf文件 ...

  10. HTTPS 指南

    苹果在 WWDC 2016 上宣布:2016 年底将要求所有 APP 适配苹果的 App Transport Security,简单地说就是除了特殊情况(浏览器.第三方服务.媒体)外,APP 跟服务端 ...