吐血整理,350道Java最全面试题集合

java基础

  1. 八种基本数据类型的大小,以及他们的封装类
  2. 引用数据类型
  3. Switch可否用string作参数
  4. equals与==的区别
  5. 自动装箱,常量池
  6. Object有哪些公用方法
  7. Java的四种引用,强弱软虚,用到的场景
  8. Hashcode的做用
  9. HashMap的hashcode的做用
  10. 为何重载hashCode方法?
  11. ArrayList、LinkedList、Vector的区别
  12. String、StringBuffer与StringBuilder的区别
  13. Map、Set、List、Queue、Stack的特色与用法
  14. HashMap和HashTable的区别
  15. JDK7与JDK8中HashMap的实现
  16. HashMap和ConcurrentHashMap的区别,HashMap的底层源码
  17. ConcurrentHashMap能彻底替代HashTable吗
  18. 为何HashMap是线程不安全的
  19. 如何线程安全的使用HashMap
  20. 多并发状况下HashMap是否还会产生死循环
  21. TreeMap、HashMap、LindedHashMap的区别
  22. Collection包结构,与Collections的区别
  23. try?catch?finally,try里有return,finally还执行么
  24. Excption与Error包结构,OOM你遇到过哪些状况,SOF你遇到过哪些状况
  25. Java(OOP)面向对象的三个特征与含义
  26. Override和Overload的含义去区别
  27. Interface与abstract类的区别
  28. Static?class?与non?static?class的区别
  29. java多态的实现原理
  30. foreach与正常for循环效率对比
  31. Java?IO与NIO
  32. java反射的做用于原理
  33. 泛型经常使用特色
  34. 解析XML的几种方式的原理与特色:DOM、SAX
  35. Java1.7与1.8,1.9,10 新特性
  36. AOP是什么
  37. OOP是什么
  38. AOP与OOP的区别
  39. 什么是多态
  40. 什么是面向对象
  41. 类与对象的关系
  42. java中的包装类都有哪些?
  43. 一个java类中包含那些内容?
  44. ++i与i++的区别
  45. Java中各类数据默认值
  46. Java最顶级的父类是哪一个?
  47. java中有没有指针?
  48. 假设数组内有5个元素,若是对数组进行反序,该如何作?
  49. 构造方法能不能显式调用?
  50. 内部类与静态内部类的区别?

多线程

  1. 并发编程三要素?
  2. 实现可见性的方法有哪些?
  3. 多线程的价值?
  4. 建立线程的有哪些方式?
  5. 建立线程的三种方式的对比?
  6. 线程的状态流转图
  7. Java线程具备五中基本状态
  8. 什么是线程池?有哪几种建立方式?
  9. 四种线程池的建立:
  10. 线程池的优势?
  11. 经常使用的并发工具类有哪些?
  12. CyclicBarrier和CountDownLatch的区别
  13. synchronized的做用?
  14. volatile关键字的做用
  15. 什么是CAS
  16. CAS的问题
  17. 什么是Future?
  18. 什么是AQS
  19. AQS支持两种同步方式:
  20. ReadWriteLock是什么
  21. FutureTask是什么
  22. synchronized和ReentrantLock的区别
  23. 什么是乐观锁和悲观锁
  24. 线程B怎么知道线程A修改了变量
  25. synchronized、volatile、CAS比较
  26. sleep方法和wait方法有什么区别?
  27. ThreadLocal是什么?有什么用?
  28. 为何wait()方法和notify()/notifyAll()方法要在同步块中被调用
  29. 多线程同步有哪几种方法?
  30. 线程的调度策略
  31. ConcurrentHashMap的并发度是什么
  32. Linux环境下如何查找哪一个线程使用CPU最长
  33. Java死锁以及如何避免?
  34. 死锁的缘由
  35. 怎么唤醒一个阻塞的线程
  36. 不可变对象对多线程有什么帮助
  37. 什么是多线程的上下文切换
  38. 若是你提交任务时,线程池队列已满,这时会发生什么
  39. Java中用到的线程调度算法是什么
  40. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
  41. 什么是自旋
  42. Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优点?
  43. 单例模式的线程安全性
  44. Semaphore有什么做用
  45. Executors类是什么?
  46. 线程类的构造方法、静态块是被哪一个线程调用的
  47. 同步方法和同步块,哪一个是更好的选择?
  48. Java线程数过多会形成什么异常?

Mysql

  1. Mysql中有哪几种锁?
  2. Mysql中有哪些不一样的表格?
  3. 简述在MySQL数据库中MyISAM和InnoDB的区别
  4. Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
  5. CHAR和VARCHAR的区别?
  6. 主键和候选键有什么区别?
  7. 你怎么看到为表格定义的全部索引?
  8. LIKE声明中的%和_是什么意思?
  9. 如何在Unix和Mysql时间戳之间进行转换?
  10. 列对比运算符是什么?
  11. BLOB和TEXT有什么区别?
  12. mysql_fetch_array和mysql_fetch_object的区别是什么?
  13. Mysql如何优化DISTINCT?
  14. 如何显示前50行?
  15. 可使用多少列建立索引?
  16. 若是一个表有一列定义为TIMESTAMP,将发生什么?
  17. 列设置为AUTO INCREMENT时,若是在表中达到最大值,会发生什么状况?
  18. 怎样才能找出最后一次插入时分配了哪一个自动增量?
  19. NOW()和CURRENT_DATE()有什么区别?
  20. 什么是非标准字符串类型?
  21. 什么是通用SQL函数?
  22. MYSQL支持事务吗?
  23. mysql里记录货币用什么字段类型好
  24. mysql有关权限的表都有哪几个?
  25. 列的字符串类型能够是什么?
  26. MySQL数据库做发布系统的存储,数据量增大的状况,怎么优化?
  27. 锁的优化策略
  28. 索引的底层实现原理和优化
  29. 什么状况下设置了索引但没法使用
  30. 实践中如何优化MySQL
  31. 优化数据库的方法
  32. 简单描述mysql中,索引,主键,惟一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
  33. 数据库中的事务是什么?
  34. SQL注入漏洞产生的缘由?如何防止?
  35. 对于关系型数据库而言,索引是至关重要的概念,请回答有关索引的几个问题
  36. 解释MySQL外链接、内链接与自链接的区别
  37. Myql中的事务回滚机制概述
  38. SQL语言包括哪几部分?每部分都有哪些操做关键字?
  39. 完整性约束包括哪些?
  40. 什么是锁?
  41. 什么是存储过程?用什么来调用?
  42. 如何通俗地理解三个范式?
  43. NULL是什么意思
  44. 主键、外键和索引的区别?
  45. 你能够用什么来确保表格里的字段只接受特定范围里的值?
  46. 说说对SQL语句优化有哪些方法?

Redis

  1. Redis支持哪几种数据类型?
  2. Redis主要有哪些功能?
  3. Redis是单进程单线程的?
  4. Redis为何是单线程的?
  5. 其它开源软件采用的模型
  6. 使用Redis的优点?
  7. Redis单点吞吐量
  8. Redis相比memcached有哪些优点?
  9. Redis有哪几种数据淘汰策略?
  10. Redis集群方案应该怎么作?都有哪些方案?
  11. Redis读写分离模型
  12. Redis数据分片模型
  13. Redis提供了哪几种持久化方式?
  14. 如何选择合适的持久化方式?
  15. Redis常见性能问题和解决方案?
  16. Redis支持的Java客户端都有哪些?官方推荐用哪一个?
  17. Redis哈希槽的概念?
  18. Redis集群最大节点个数是多少?
  19. Redis集群的主从复制模型是怎样的?
  20. Redis集群会有写操做丢失吗?为何?
  21. Redis集群之间是如何复制的?
  22. Redis如何作内存优化?
  23. Redis回收进程如何工做的?
  24. Redis回收使用的是什么算法?
  25. Redis有哪些适合的场景?

JVM

  1. gc`的概念,若是A和B对象循环引用,是否能够被GC?
  2. jvm gc如何判断对象是否须要回收,有哪几种方式?
  3. Java中能不能主动触发GC
  4. JVM的内存结构,堆和栈的区别
  5. JVM堆的分代
  6. Java中的内存溢出是什么,和内存泄露有什么关系
  7. Java的类加载机制,什么是双亲委派
  8. ClassLoader的类加载方式
  9. jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的jvm参数等
  10. 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms
  11. 当出现了内存溢出,你怎么排错
  12. JVM内存模型的相关知识了解多少
  13. 简单说说你了解的类加载器
  14. JAVA的反射机制
  15. JVM调优的常见命令行工具备哪些?
  16. 介绍一下CMS,G1收集器
  17. Minor Gc和Full GC 有什么不一样呢?
  18. 垃圾收集有哪些算法,各自的特色?
  19. HotSpot为何要分为新生代和老年代?
  20. 简单说说类加载过程,里面执行了哪些操做?
  21. 描述一下 JVM 加载 Class 文件的原理机制?
  22. 什么是类加载器?
  23. 类加载器有哪些?
  24. 什么是tomcat类加载机制?
  25. 类加载器双亲委派模型机制?
  26. Java 内存分配?
  27. Java 堆的结构是什么样子的?
  28. 简述各个版本内存区域的变化?
  29. 说说各个区域的做用?
  30. Java 中会存在内存泄漏吗,简述一下?
  31. Java 类加载过程?
  32. 什么是GC? 为何要有 GC?
  33. 简述一下Java 垃圾回收机制?
  34. 如何判断一个对象是否存活?
  35. 垃圾回收的优势和原理,并考虑 2 种回收机制?基本原理是什么?
  36. 深拷贝和浅拷贝?
  37. 什么是分布式垃圾回收(DGC)?它是如何工做的?
  38. 在 Java 中,对象何时能够被垃圾回收?
  39. 简述Minor GC 和 Major GC?
  40. Java 中垃圾收集的方法有哪些?
  41. 讲讲你理解的性能评价及测试指标?
  42. 经常使用的性能优化方式有哪些?
  43. 说说分布式缓存和一致性哈希?
  44. 什么是GC调优?
  45. 什么是jvm?Java虚拟包含什么?

分布式:

  1. 什么是CAP定理?
  2. 说说CAP理论和BASE理论?
  3. 什么是最终一致性?最终一致性实现方式?
  4. 什么是一致性Hash?
  5. 讲讲分布式事务?
  6. 如何实现分布式锁?
  7. 如何实现分布式 Session?
  8. 如何保证消息的一致性?
  9. 负载均衡的理解?
  10. 正向代理和反向代理?
  11. CDN实现原理?
  12. 怎么提高系统的QPS和吞吐?
  13. Dubbo的底层实现原理和机制?
  14. 描述一个服务从发布到被消费的详细过程?
  15. 分布式系统怎么作服务治理?
  16. 消息中间件如何解决消息丢失问题?
  17. Dubbo的服务请求失败怎么处理?
  18. 对分布式事务的理解?
  19. 如何实现负载均衡,有哪些算法能够实现?
  20. Zookeeper的用途,选举的原理是什么?
  21. 讲讲数据的垂直拆分水平拆分?
  22. zookeeper原理和适用场景?
  23. zookeeper watch机制?
  24. redis/zk节点宕机如何处理?
  25. 分布式集群下如何作到惟一序列号?
  26. 用过哪些MQ,怎么用的,和其余mq比较有什么优缺点,MQ的链接是线程安全的吗?
  27. MQ系统的数据如何保证不丢失?
  28. 列举出能想到的数据库分库分表策略?

经常使用框架:

spring:

  1. 什么是 Spring 框架?Spring 框架有哪些主要模块?
  2. 使用 Spring 框架能带来哪些好处?
  3. 什么是控制反转(IOC)?什么是依赖注入?
  4. 请解释下 Spring 框架中的 IoC?
  5. BeanFactory 和 ApplicationContext 有什么区别?
  6. Spring 有几种配置方式?
  7. 如何用基于 XML 配置的方式配置 Spring?
  8. 如何用基于 Java 配置的方式配置 Spring?
  9. 怎样用注解的方式配置 Spring?
  10. 请解释 Spring Bean 的生命周期?
  11. Spring Bean 的做用域之间有什么区别?
  12. 什么是 Spring inner beans?
  13. Spring 框架中的单例 Beans 是线程安全的么?
  14. 请举例说明如何在 Spring 中注入一个 Java Collection?
  15. 如何向 Spring Bean 中注入一个 Java.util.Properties?
  16. 请解释 Spring Bean 的自动装配?
  17. 请解释自动装配模式的区别?
  18. 如何开启基于注解的自动装配?
  19. 请举例解释@Required 注解?
  20. 请举例解释@Autowired 注解?
  21. 请举例说明@Qualifier 注解?
  22. 构造方法注入和设值注入有什么区别?
  23. Spring 框架中有哪些不一样类型的事件?
  24. FileSystemResource 和 ClassPathResource 有何区别?
  25. Spring 框架中都用到了哪些设计模式

springboot:

  1. 什么是 Spring Boot?
  2. Spring Boot 有哪些优势?
  3. 什么是 JavaConfig?
  4. 如何从新加载 Spring Boot 上的更改,而无需从新启动服务器?
  5. Spring Boot 中的监视器是什么?
  6. 如何在 Spring Boot 中禁用 Actuator 端点安全性?
  7. 如何在自定义端口上运行 Spring Boot 应用程序?
  8. 什么是 YAML?
  9. 如何实现 Spring Boot 应用程序的安全性?
  10. 如何集成 Spring Boot 和 ActiveMQ?
  11. 如何使用 Spring Boot 实现分页和排序?
  12. 什么是 Swagger?你用 Spring Boot 实现了它吗?
  13. 什么是 Spring Profiles?
  14. 什么是 Spring Batch?
  15. 什么是 FreeMarker 模板?
  16. 如何使用 Spring Boot 实现异常处理?
  17. 您使用了哪些 starter maven 依赖项?
  18. 什么是 CSRF 攻击?
  19. 什么是 WebSockets?
  20. 什么是 Apache Kafka?
  21. 咱们如何监视全部 Spring Boot 微服务?

Mybatis:

  1. #{}和${}的区别是什么?
  2. Mybatis是什么
  3. Mybatis 中一级缓存与二级缓存的区别?
  4. 使用 MyBatis 的 mapper 接口调用时有哪些要求?
  5. MyBatis实现一对多有几种方式,怎么操做的?
  6. Mybatis 与Spring MVC的整合 ?

计算机网络

1.http1.0和http1.1有什么区别java

2.TCP三次握手和四次挥手的流程,为何断开链接要4次,若是握手只有两次,会出现什么mysql

3.TIME_WAIT和CLOSE_WAIT的区别linux

4.说说你知道的几种HTTP响应码redis

5.当你用浏览器打开一个连接的时候,计算机作了哪些工做步骤算法

6.Linux下IO模型有几种,各自的含义是什么spring

7.TCP/IP如何保证可靠性,数据包有哪些数据组成sql

8.架构设计与分布式:数据库

9.tomcat如何调优,各类参数的意义编程

10.常见的缓存策略有哪些,大家项目中用到了什么缓存系统,如何设计的,Redis的使用要注意什么,持久化方式,内存设置,集群,淘汰策略等设计模式

11.如何防止缓存雪崩

12.用java本身实现一个LRU

13.分布式集群下如何作到惟一序列号

14.设计一个秒杀系统,30分钟没付款就自动关闭交易

15.如何作一个分布式锁

16.用过哪些MQ,怎么用的,和其余mq比较有什么优缺点,MQ的链接是线程安全的吗

17.MQ系统的数据如何保证不丢失

18.分布式事务的原理,如何使用分布式事务

19.什么是一致性hash

20.什么是restful,讲讲你理解的restful

21.如何设计创建和保持100w的长链接?

22.解释什么是MESI协议(缓存一致性)

23.说说你知道的几种HASH算法,简单的也能够

24.什么是paxos算法

数据结构:

  1. 数组和链表的区别。

  2. 简述快速排序过程

  3. 快速排序的改进

  4. 各种排序算法对比

  5. 用循环比递归效率高吗?

  6. KMP算法

  7. 二叉树

  8. 什么是数据结构

  9. java数据结构有哪些?

设计模式:

  1. 请列举出在 JDK 中几个经常使用的设计模式?
  2. 什么是设计模式?你是否在你的代码里面使用过任何设计模式?
  3. Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
  4. 在 Java 中,什么叫观察者设计模式(observer design pattern)?
  5. 使用工厂模式最主要的好处是什么?在哪里使用?
  6. 举一个用 Java 实现的装饰模式(decorator design pattern)?它是做用于对象层次仍是类
  7. 在 Java 中,何时用重载,何时用重写?
  8. 举例说明什么状况下会更倾向于使用抽象类而不是接口。

Linux:

  1. 简述raid0 raid1 raid5 三种工做模式的工做原理及特色
  2. LVS、Nginx、HAproxy有什么区别?工做中你怎么选择?
  3. Squid、Varinsh和Nginx有什么区别,工做中你怎么选择?
  4. Tomcat和Resin有什么区别,工做中你怎么选择?
  5. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?
  6. 查看系统负载有两个经常使用的命令,是哪两个?这三个数值表示什么含义呢?
  7. linux系统里,您知道buffer和cache如何区分吗?
  8. 如何实时查看网卡流量为多少?如何查看历史网卡流量?
  9. 如何查看当前系统都有哪些进程?
  10. 如何查看系统都开启了哪些端口?
  11. 如何查看网络链接情况?
  12. 想修改ip,须要编辑哪一个配置文件,修改完配置文件后,如何重启网卡,使配置生效?
  13. 如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,须要修改哪一个配 置文件呢?
  14. 设置DNS须要修改哪一个配置文件?
  15. 如何能够把系统中不用的服务关掉?
相关文章
相关标签/搜索