首页

1000道 互联网大厂Java工程师面试题

标签:面试题     发布时间:2022-12-12   
  • 云盘下载:
  • [提取码:iluw]
       ( 需积分:3  )

一、前言

互联网 Java 工程师面试题 - Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、 Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、 Linux 等技术栈

目录@b@互联网 Java 工程师面试题..........................................................................................1@b@........................................................................................................................................1@b@MyBatis 面试题........................................................................................................ 33@b@1、什么是 Mybatis?............................................................................... 33@b@2、Mybaits 的优点:............................................................................... 33@b@3、MyBatis 框架的缺点:....................................................................... 34@b@4、MyBatis 框架适用场合:................................................................... 34@b@5、MyBatis 与 Hibernate 有哪些不同?.............................................. 35@b@第 1 页 共 485 页@b@6、#{}和${}的区别是什么?.....................................................................35@b@7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?........... 35@b@8、 模糊查询 like 语句该怎么写?...........................................................36@b@9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,@b@这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,@b@方法能重载吗?..........................................................................................37@b@10、Mybatis 是如何进行分页的?分页插件的原理是什么?.............38@b@11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有@b@哪些映射形式?..........................................................................................38@b@12、如何执行批量插入?...........................................................................39@b@13、如何获取自动生成的(主)键值?........................................................ 40@b@14、在 mapper 中如何传递多个参数?.................................................. 40@b@15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?.......42@b@16、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之@b@外,还有哪些标签?..................................................................................42@b@18、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别@b@在哪里?......................................................................................................43@b@19、 一对一、一对多的关联查询 ?.....................................................43@b@20、MyBatis 实现一对一有几种方式?具体怎么操作的?...................45@b@21、MyBatis 实现一对多有几种方式,怎么操作的?............................45@b@22、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?46@b@23、Mybatis 的一级、二级缓存:............................................................46@b@24、什么是 MyBatis 的接口绑定?有哪些实现方式?........................47@b@25、使用 MyBatis 的 mapper 接口调用时有哪些要求?...................47@b@26、Mapper 编写有哪几种方式?.........................................................47@b@27、简述 Mybatis 的插件运行原理,以及如何编写一个插件。........50@b@ZooKeeper 面试题...................................................................................................50@b@1. ZooKeeper 面试题?.......................................................................... 50@b@2. ZooKeeper 提供了什么?................................................................... 51@b@3. Zookeeper 文件系统............................................................................51@b@4. ZAB 协议?............................................................................................ 52@b@第 2 页 共 485 页@b@5. 四种类型的数据节点 Znode..............................................................52@b@6. Zookeeper Watcher 机制 -- 数据变更通知..................................53@b@7. 客户端注册 Watcher 实现.................................................................. 54@b@8. 服务端处理 Watcher 实现.................................................................. 55@b@9. 客户端回调 Watcher........................................................................... 55@b@10. ACL 权限控制机制.............................................................................. 56@b@11. Chroot 特性.........................................................................................57@b@12. 会话管理..............................................................................................57@b@13. 服务器角色..........................................................................................58@b@14. Zookeeper 下 Server 工作状态..................................................... 58@b@15. 数据同步..............................................................................................59@b@16. zookeeper 是如何保证事务的顺序一致性的?..............................61@b@17. 分布式集群中为什么会有 Master?................................................61@b@18. zk 节点宕机如何处理?......................................................................61@b@19. zookeeper 负载均衡和 nginx 负载均衡区别................................. 62@b@20. Zookeeper 有哪几种几种部署模式?............................................. 62@b@21. 集群最少要几台机器,集群规则是怎样的?....................................62@b@22. 集群支持动态添加机器吗?..............................................................62@b@23. Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永@b@久的?............................................................................................................63@b@24. Zookeeper 的 java 客户端都有哪些?............................................63@b@25. chubby 是什么,和 zookeeper 比你怎么看?..............................64@b@26. 说几个 zookeeper 常用的命令。....................................................64@b@27. ZAB 和 Paxos 算法的联系与区别?.................................................64@b@28. Zookeeper 的典型应用场景............................................................. 64@b@Dubbo 面试题.......................................................................................................... 68@b@1、为什么要用 Dubbo?......................................................................... 68@b@2、Dubbo 的整体架构设计有哪些分层?.............................................. 69@b@3、默认使用的是什么通信框架,还有别的选择吗?............................. 70@b@4、服务调用是阻塞的吗?....................................................................... 70@b@5、一般使用什么注册中心?还有别的选择吗?................................... 70@b@第 3 页 共 485 页@b@6、默认使用什么序列化框架,你知道的还有哪些?........................... 71@b@7、服务提供者能实现失效踢出是什么原理?....................................... 71@b@8、服务上线怎么不影响旧版本?........................................................... 71@b@9、如何解决服务调用链过长的问题?................................................... 71@b@10、说说核心的配置有哪些?.................................................................71@b@11、Dubbo 推荐用什么协议?..............................................................72@b@12、同一个服务多个注册的情况下可以直连某一个服务吗?.............72@b@13、画一画服务注册与发现的流程图?.................................................73@b@14、Dubbo 集群容错有几种方案?......................................................73@b@15、Dubbo 服务降级,失败重试怎么做?..........................................74@b@16、Dubbo 使用过程中都遇到了些什么问题?..................................74@b@17、Dubbo Monitor 实现原理?......................................................... 74@b@18、Dubbo 用到哪些设计模式?..........................................................75@b@19、Dubbo 配置文件是如何加载到 Spring 中的?........................... 76@b@20、Dubbo SPI 和 Java SPI 区别?................................................... 77@b@21、Dubbo 支持分布式事务吗?..........................................................77@b@22、Dubbo 可以对结果进行缓存吗?..................................................77@b@23、服务上线怎么兼容旧版本?.............................................................78@b@24、Dubbo 必须依赖的包有哪些?.......................................................78@b@25、Dubbo telnet 命令能做什么?......................................................78@b@26、Dubbo 支持服务降级吗?..............................................................79@b@27、Dubbo 如何优雅停机?..................................................................79@b@28、Dubbo 和 Dubbox 之间的区别?...............................................79@b@29、Dubbo 和 Spring Cloud 的区别?.............................................80@b@30、你还了解别的分布式框架吗?.........................................................81@b@Elasticsearch 面试题............................................................................................... 81@b@1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据@b@大小,分片有多少,以及一些调优手段 。............................................81@b@2、elasticsearch 的倒排索引是什么......................................................83@b@3、elasticsearch 索引数据多了怎么办,如何调优,部署.................84@b@4、elasticsearch 是如何实现 master 选举的.......................................85@b@第 4 页 共 485 页@b@5、详细描述一下 Elasticsearch 索引文档的过程................................. 86@b@6、详细描述一下 Elasticsearch 搜索的过程?..................................... 87@b@7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法..........88@b@8、lucence 内部结构是什么?................................................................88@b@9、Elasticsearch 是如何实现 Master 选举的?...................................89@b@10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个@b@master,另外 10 个选了另一个 master,怎么办?............................90@b@11、客户端在和集群连接时,如何选择特定的节点执行请求的?.....90@b@12、详细描述一下 Elasticsearch 索引文档的过程。...........................90@b@13、详细描述一下 Elasticsearch 更新和删除文档的过程。...............92@b@14、详细描述一下 Elasticsearch 搜索的过程。...................................92@b@15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?@b@......................................................................................................................94@b@16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?....94@b@17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?............... 96@b@18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?....97@b@19、在并发情况下,Elasticsearch 如果保证读写一致?....................97@b@20、如何监控 Elasticsearch 集群状态?...............................................97@b@21、介绍下你们电商搜索的整体技术架构。.........................................98@b@22、介绍一下你们的个性化搜索方案?.................................................98@b@23、是否了解字典树?.............................................................................98@b@24、拼写纠错是如何实现的?...............................................................100@b@Memcached 面试题.............................................................................................. 102@b@1、Memcached 是什么,有什么作用?.............................................102@b@2、Memcached 服务分布式集群如何实现?.....................................104@b@3、Memcached 服务特点及工作原理是什么?.................................105@b@4、简述 Memcached 内存管理机制原理?........................................105@b@5、memcached 是怎么工作的?.........................................................107@b@6、memcached 最大的优势是什么?.................................................107@b@7、memcached 和 MySQL 的 query................................................. 107@b@8、memcached 和服务器的 local cache(比如 PHP 的 APC、mmap@b@第 5 页 共 485 页@b@文件等)相比,有什么优缺点?............................................................108@b@9、memcached 的 cache 机制是怎样的?........................................109@b@10、memcached 如何实现冗余机制?...............................................109@b@11、memcached 如何处理容错的?...................................................110@b@12、如何将 memcached 中 item 批量导入导出?...........................110@b@13、如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢?@b@....................................................................................................................111@b@14、memcached 是如何做身份验证的?...........................................111@b@15、memcached 的多线程是什么?如何使用它们?.......................112@b@16、memcached 能接受的 key 的最大长度是多少?......................112@b@17、memcached 最大能存储多大的单个 item?.............................113@b@18、memcached 能够更有效地使用内存吗?...................................113@b@19、什么是二进制协议,我该关注吗?...............................................113@b@20、memcached 的内存分配器是如何工作的?为什么 不适用@b@malloc/free!?为何要使用 slabs?................................................... 114@b@21、memcached 是原子的吗?...........................................................114@b@22、如何实现集群中的 session 共享存储?.......................................115@b@23、memcached 与 redis 的区别?................................................... 116@b@Redis 面试题........................................................................................................... 118@b@1、什么是 Redis?....................................................................................118@b@2、Redis 的数据类型?..........................................................................119@b@3、使用 Redis 有哪些好处?.................................................................119@b@4、Redis 相比 Memcached 有哪些优势?........................................ 120@b@5、Memcache 与 Redis 的区别都有哪些?.......................................120@b@6、Redis 是单进程单线程的?..............................................................120@b@7、一个字符串类型的值能存储最大容量是多少?............................. 120@b@8、Redis 的持久化机制是什么?各自的优缺点?..............................121@b@9、Redis 常见性能问题和解决方案:..................................................122@b@10、redis 过期键的删除策略?.............................................................122@b@11、Redis 的回收策略(淘汰策略)?..................................................123@b@12、为什么 edis 需要把所有数据放到内存中?................................. 124@b@第 6 页 共 485 页@b@13、Redis 的同步机制了解么?........................................................... 124@b@14、Pipeline 有什么好处,为什么要用 pipeline?.......................... 124@b@15、是否使用过 Redis 集群,集群的原理是什么?.......................... 125@b@16、Redis 集群方案什么情况下会导致整个集群不可用?............... 125@b@17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?......... 125@b@18、Jedis 与 Redisson 对比有什么优缺点?..................................... 125@b@19、Redis 如何设置密码及验证密码?............................................... 126@b@20、说说 Redis 哈希槽的概念?.......................................................... 126@b@21、Redis 集群的主从复制模型是怎样的?....................................... 126@b@22、Redis 集群会有写操作丢失吗?为什么?................................... 126@b@23、Redis 集群之间是如何复制的?................................................... 126@b@24、Redis 集群最大节点个数是多少?............................................... 127@b@25、Redis 集群如何选择数据库?....................................................... 127@b@26、怎么测试 Redis 的连通性?.......................................................... 127@b@27、怎么理解 Redis 事务?.................................................................. 127@b@28、Redis 事务相关的命令有哪几个?............................................... 127@b@29、Redis key 的过期时间和永久有效分别怎么设置?....................128@b@30、Redis 如何做内存优化?............................................................... 128@b@31、Redis 回收进程如何工作的?....................................................... 128@b@32、都有哪些办法可以降低 Redis 的内存使用情况呢?.................. 128@b@33、Redis 的内存用完了会发生什么?............................................... 128@b@34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set@b@他们最多能存放多少元素?....................................................................129@b@35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证@b@redis 中的数据都是热点数据?............................................................. 129@b@36、Redis 最适合的场景?................................................................... 130@b@37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定@b@的已知的前缀开头的,如果将它们全部找出来?................................131@b@38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?132@b@39、使用过 Redis 做异步队列么,你是怎么用的?.......................... 132@b@40、使用过 Redis 分布式锁么,它是什么回事?.............................. 133@b@第 7 页 共 485 页@b@MySQL 面试题........................................................................................................133@b@1、MySQL 中有哪几种锁?...................................................................134@b@2、MySQL 中有哪些不同的表格?.......................................................134@b@3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别............... 134@b@4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间@b@的区别?....................................................................................................136@b@5、CHAR 和 VARCHAR 的区别?........................................................136@b@6、主键和候选键有什么区别?............................................................. 136@b@7、myisamchk 是用来做什么的?.......................................................137@b@8、如果一个表有一列定义为 TIMESTAMP,将发生什么?.............137@b@9、你怎么看到为表格定义的所有索引?............................................. 137@b@10、LIKE 声明中的%和_是什么意思?................................................ 138@b@11、列对比运算符是什么?...................................................................138@b@12、BLOB 和 TEXT 有什么区别?........................................................ 138@b@13、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?138@b@14、MyISAM 表格将在哪里存储,并且还提供其存储格式?..........139@b@15、MySQL 如何优化 DISTINCT?.....................................................139@b@16、如何显示前 50 行?........................................................................ 139@b@17、可以使用多少列创建索引?...........................................................140@b@18、NOW()和 CURRENT_DATE()有什么区别?.................... 140@b@19、什么是非标准字符串类型?...........................................................140@b@20、什么是通用 SQL 函数?................................................................. 140@b@21、MySQL 支持事务吗?.................................................................... 141@b@22、MySQL 里记录货币用什么字段类型好........................................ 142@b@23、MySQL 有关权限的表都有哪几个?............................................ 142@b@24、列的字符串类型可以是什么?.......................................................142@b@25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计@b@运维三年,怎么优化?...............................................................................143@b@26、锁的优化策略...................................................................................143@b@27、索引的底层实现原理和优化...........................................................144@b@28、什么情况下设置了索引但无法使用...............................................144@b@第 8 页 共 485 页@b@29、实践中如何优化 MySQL................................................................ 144@b@30、优化数据库的方法...........................................................................145@b@31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,@b@对数据库的性能有什么影响(从读写两方面)....................................146@b@32、数据库中的事务是什么?.................................................................146@b@33、SQL 注入漏洞产生的原因?如何防止?...................................... 147@b@34、为表中得字段选择合适得数据类型...............................................148@b@35、存储时期...........................................................................................148@b@36、对于关系型数据库而言,索引是相当重要的概念,请回答有关索@b@引的几个问题:........................................................................................149@b@37、解释 MySQL 外连接、内连接与自连接的区别........................... 150@b@38、Myql 中的事务回滚机制概述........................................................ 150@b@39、SQL 语言包括哪几部分?每部分都有哪些操作关键字?.......... 151@b@40、完整性约束包括哪些?...................................................................151@b@41、什么是锁?.......................................................................................152@b@42、什么叫视图?游标是什么?...........................................................152@b@43、什么是存储过程?用什么来调用?...............................................153@b@44、如何通俗地理解三个范式?...........................................................153@b@45、什么是基本表?什么是视图?.......................................................154@b@46、试述视图的优点?...........................................................................154@b@47、 NULL 是什么意思......................................................................... 154@b@48、主键、外键和索引的区别?...........................................................154@b@49、你可以用什么来确保表格里的字段只接受特定范围里的值?.....155@b@50、说说对 SQL 语句优化有哪些方法?(选择几条)..................... 156@b@Java 并发编程(一)............................................................................................. 156@b@1、在 java 中守护线程和本地线程区别?............................................156@b@2、线程与进程的区别?......................................................................... 157@b@3、什么是多线程中的上下文切换?..................................................... 157@b@4、死锁与活锁的区别,死锁与饥饿的区别?..................................... 158@b@5、Java 中用到的线程调度算法是什么?............................................ 158@b@6、什么是线程组,为什么在 Java 中不推荐使用?........................... 159@b@第 9 页 共 485 页@b@7、为什么使用 Executor 框架?...........................................................159@b@8、在 Java 中 Executor 和 Executors 的区别?................................ 159@b@9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?@b@....................................................................................................................160@b@10、什么是原子操作?在 Java Concurrency API 中有哪些原子类@b@(atomic classes)?..................................................................................160@b@11、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?@b@对比同步它有什么优势?........................................................................161@b@12、什么是 Executors 框架?.............................................................. 162@b@13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队@b@列来实现生产者-消费者模型?..............................................................162@b@14、什么是 Callable 和 Future?.......................................................... 163@b@15、什么是 FutureTask?使用 ExecutorService 启动任务。...........164@b@16、什么是并发容器的实现?...............................................................164@b@17、多线程同步和互斥有几种实现方法,都是什么?.......................164@b@18、什么是竞争条件?你怎样发现和解决竞争?...............................165@b@19、你将如何使用 thread dump?你将如何分析 Thread dump?165@b@20、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能@b@直接调用 run()方法?............................................................................. 173@b@21、Java 中你怎样唤醒一个阻塞的线程?..........................................173@b@22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?...173@b@23、什么是不可变对象,它对写并发应用有什么帮助?...................174@b@24、什么是多线程中的上下文切换?...................................................175@b@25、Java 中用到的线程调度算法是什么?..........................................175@b@26、什么是线程组,为什么在 Java 中不推荐使用?.........................176@b@27、为什么使用 Executor 框架比使用应用创建和管理线程好?.... 176@b@28、java 中有几种方法可以实现一个线程?...................................... 177@b@29、如何停止一个正在运行的线程?...................................................177@b@30、notify()和 notifyAll()有什么区别?............................................. 177@b@31、什么是 Daemon 线程?它有什么意义?.....................................178@b@32、java 如何实现多线程之间的通讯和协作?.................................. 178@b@第 10 页 共 485 页@b@33、什么是可重入锁(ReentrantLock)?....................................... 178@b@34、当一个线程进入某个对象的一个 synchronized 的实例方法后,其@b@它线程是否可进入此对象的其它方法?................................................179@b@35、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?...........179@b@36、SynchronizedMap 和 ConcurrentHashMap 有什么区别?..181@b@37、CopyOnWriteArrayList 可以用于什么应用场景?................... 181@b@38、什么叫线程安全?servlet 是线程安全吗?................................... 182@b@39、volatile 有什么用?能否用一句话说明下 volatile 的应用场景?183@b@40、为什么代码会重排序?...................................................................183@b@41、在 java 中 wait 和 sleep 方法的不同?....................................... 183@b@42、用 Java 实现阻塞队列.....................................................................185@b@43、一个线程运行时发生异常会怎样?...............................................185@b@44、如何在两个线程间共享数据?.......................................................186@b@45、Java 中 notify 和 notifyAll 有什么区别?.................................186@b@46、为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?@b@....................................................................................................................186@b@47、什么是 ThreadLocal 变量?..........................................................186@b@48、Java 中 interrupted 和 isInterrupted 方法的区别?............. 187@b@49、为什么 wait 和 notify 方法要在同步块中调用?........................187@b@50、为什么你应该在循环中检查等待条件?.........................................188@b@51、Java 中的同步集合与并发集合有什么区别?..............................188@b@52、什么是线程池? 为什么要使用它?.............................................188@b@53、怎么检测一个线程是否拥有锁?...................................................188@b@54、你如何在 Java 中获取线程堆栈?.................................................188@b@56、Thread 类中的 yield 方法有什么作用?..................................... 189@b@57、Java 中 ConcurrentHashMap 的并发度是什么?....................189@b@58、Java 中 Semaphore 是什么?......................................................190@b@59、Java 线程池中 submit() 和 execute()方法有什么区别?....... 190@b@60、什么是阻塞式方法?.......................................................................190@b@61、Java 中的 ReadWriteLock 是什么?...........................................190@b@62、volatile 变量和 atomic 变量有什么不同?..............................191@b@第 11 页 共 485 页@b@63、可以直接调用 Thread 类的 run ()方法么?................................ 191@b@64、如何让正在运行的线程暂停一段时间?.......................................191@b@65、你对线程优先级的理解是什么?...................................................191@b@66 、 什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (Time@b@Slicing )?................................................................................................ 192@b@67、你如何确保 main()方法所在的线程是 Java 程序最后结束的线程?@b@....................................................................................................................192@b@68、线程之间是如何通信的?...............................................................193@b@69、为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在@b@Object 类里?.........................................................................................193@b@70、为什么 wait(), notify()和 notifyAll ()必须在同步方法或者同步块@b@中被调用?................................................................................................193@b@71、为什么 Thread 类的 sleep()和 yield ()方法是静态的?............193@b@72、如何确保线程安全?.......................................................................194@b@73、同步方法和同步块,哪个是更好的选择?...................................194@b@74、如何创建守护线程?.......................................................................194@b@75、什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?195@b@Java 并发编程(二)............................................................................................. 195@b@1、并发编程三要素?............................................................................. 195@b@2、实现可见性的方法有哪些?............................................................. 195@b@3、多线程的价值?................................................................................. 196@b@4、创建线程的有哪些方式?................................................................. 196@b@5、创建线程的三种方式的对比?......................................................... 196@b@6、线程的状态流转图............................................................................. 197@b@7、Java 线程具有五中基本状态............................................................ 197@b@8、什么是线程池?有哪几种创建方式?............................................. 198@b@9、四种线程池的创建:......................................................................... 199@b@10、线程池的优点?...............................................................................199@b@11、常用的并发工具类有哪些?...........................................................199@b@12、CyclicBarrier 和 CountDownLatch 的区别............................... 199@b@13、synchronized 的作用?.................................................................200@b@第 12 页 共 485 页@b@14、volatile 关键字的作用....................................................................200@b@15、什么是 CAS......................................................................................200@b@16、CAS 的问题......................................................................................201@b@17、什么是 Future?............................................................................. 201@b@18、什么是 AQS..................................................................................... 202@b@19、AQS 支持两种同步方式:............................................................. 202@b@20、ReadWriteLock 是什么.................................................................202@b@21、FutureTask 是什么.........................................................................203@b@22、synchronized 和 ReentrantLock 的区别...................................203@b@23、什么是乐观锁和悲观锁...................................................................203@b@24、线程 B 怎么知道线程 A 修改了变量..............................................204@b@25、synchronized、volatile、CAS 比较...........................................204@b@26、sleep 方法和 wait 方法有什么区别?............................................204@b@27、ThreadLocal 是什么?有什么用?...............................................204@b@28、为什么 wait()方法和 notify()/notifyAll()方法要在同步块中被调用@b@....................................................................................................................205@b@29、多线程同步有哪几种方法?...........................................................205@b@30、线程的调度策略...............................................................................205@b@31、ConcurrentHashMap 的并发度是什么...................................... 206@b@32、Linux 环境下如何查找哪个线程使用 CPU 最长..........................206@b@33、Java 死锁以及如何避免?..............................................................206@b@34、死锁的原因.......................................................................................206@b@35、怎么唤醒一个阻塞的线程...............................................................207@b@36、不可变对象对多线程有什么帮助...................................................207@b@37、什么是多线程的上下文切换...........................................................207@b@38、如果你提交任务时,线程池队列已满,这时会发生什么...........207@b@39、Java 中用到的线程调度算法是什么..............................................208@b@40 、 什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (Time@b@Slicing)?..................................................................................................208@b@41、什么是自旋.......................................................................................208@b@42、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?@b@第 13 页 共 485 页@b@对比同步它有什么优势?........................................................................209@b@43、单例模式的线程安全性...................................................................209@b@44、Semaphore 有什么作用................................................................209@b@45、Executors 类是什么?................................................................... 210@b@46、线程类的构造方法、静态块是被哪个线程调用的.......................210@b@47、同步方法和同步块,哪个是更好的选择?.....................................210@b@48、Java 线程数过多会造成什么异常?..............................................210@b@Java 面试题(一)................................................................................................. 211@b@1、面向对象的特征有哪些方面?......................................................... 211@b@2、访问修饰符 public,private,protected,以及不写(默认)时的区别?@b@....................................................................................................................212@b@3、String 是最基本的数据类型吗?....................................................213@b@4、float f=3.4;是否正确?.................................................................... 213@b@5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?@b@....................................................................................................................214@b@6、Java 有没有 goto?..........................................................................214@b@7、int 和 Integer 有什么区别?........................................................... 214@b@8、&和&&的区别?...............................................................................218@b@9、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。@b@....................................................................................................................219@b@10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?220@b@11、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能@b@作用在 String 上?.................................................................................. 220@b@12、用最有效率的方法计算 2 乘以 8?............................................... 221@b@13、数组有没有 length()方法?String 有没有 length()方法?...... 222@b@14、在 Java 中,如何跳出当前的多重嵌套循环?.............................223@b@15、构造器(constructor)是否可被重写(override)?............. 223@b@16、两个对象值相同(x.equals(y) == true),但却可有不同的 hash@b@code,这句话对不对?.......................................................................... 223@b@17、是否可以继承 String 类?............................................................. 224@b@18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对@b@第 14 页 共 485 页@b@象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传@b@递?............................................................................................................225@b@19、String 和 StringBuilder、StringBuffer 的区别?.....................226@b@20、重载(Overload)和重写(Override)的区别。重载的方法能否@b@根据返回类型进行区分?........................................................................227@b@21、描述一下 JVM 加载 class 文件的原理机制?..............................228@b@22、char 型变量中能不能存贮一个中文汉字,为什么?.................229@b@23、抽象类(abstract class)和接口(interface)有什么异同?.230@b@24、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不@b@同?............................................................................................................230@b@25、Java 中会存在内存泄漏吗,请简单描述。.................................234@b@26、抽象的(abstract)方法是否可同时是静态的(static),是否可同@b@时是本地方法(native),是否可同时被 synchronized 修饰?.....236@b@27、阐述静态变量和实例变量的区别。...............................................236@b@28、是否可以从一个静态(static)方法内部发出对非静态(non-static)@b@方法的调用?............................................................................................237@b@29、如何实现对象克隆?.......................................................................237@b@30、GC 是什么?为什么要有 GC?......................................................242@b@31、String s = new String(“xyz”);创建了几个字符串对象?.....244@b@32 、 接 口 是 否 可 继 承 ( extends ) 接 口 ? 抽 象 类 是 否 可 实 现@b@(implements)接口?抽象类是否可继承具体类(concrete class)?@b@....................................................................................................................244@b@33、一个”.java”源文件中是否可以包含多个类(不是内部类)?有@b@什么限制?................................................................................................245@b@34、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否@b@可以实现接口?........................................................................................245@b@35、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限@b@制?............................................................................................................245@b@36、Java 中的 final 关键字有哪些用法?...........................................245@b@37、指出下面程序的运行结果...............................................................246@b@38、数据类型之间的转换:...................................................................247@b@第 15 页 共 485 页@b@39、如何实现字符串的反转及替换?...................................................248@b@40、怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串?@b@....................................................................................................................248@b@41、日期和时间:...................................................................................249@b@42、打印昨天的当前时刻。...................................................................251@b@43、比较一下 Java 和 JavaSciprt。.....................................................252@b@44、什么时候用断言(assert)?........................................................253@b@45、Error 和 Exception 有什么区别?................................................254@b@46、try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里@b@的代码会不会被执行,什么时候被执行,在 return 前还是后?........255@b@47、Java 语言如何进行异常处理,关键字:throws、throw、try、catch、@b@finally 分别如何使用?........................................................................... 256@b@48、运行时异常与受检异常有何异同?...............................................257@b@49、列出一些你常见的运行时异常?...................................................258@b@50、阐述 final、finally、finalize 的区别。........................................258@b@51、类 ExampleA 继承 Exception,类 ExampleB 继承 ExampleA。259@b@52、List、Set、Map 是否继承自 Collection 接口?....................... 260@b@53、阐述 ArrayList、Vector、LinkedList 的存储性能和特性。.....261@b@54、Collection 和 Collections 的区别?............................................262@b@55、List、Map、Set 三个接口存取元素时,各有什么特点?.........262@b@56、TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具@b@类中的 sort()方法如何比较元素?........................................................ 262@b@57、Thread 类的 sleep()方法和对象的 wait()方法都可以让线程暂停执@b@行,它们有什么区别?..............................................................................267@b@58、线程的 sleep()方法和 yield()方法有什么区别?........................ 268@b@59、当一个线程进入一个对象的 synchronized 方法 A 之后,其它线@b@程是否可进入此对象的 synchronized 方法 B?.................................268@b@60、请说出与线程同步以及线程调度相关的方法。...........................268@b@61、编写多线程程序有几种实现方式?...............................................276@b@62、synchronized 关键字的用法?.....................................................278@b@63、举例说明同步和异步。...................................................................278@b@第 16 页 共 485 页@b@64、启动一个线程是调用 run()还是 start()方法?............................ 278@b@65、什么是线程池(thread pool)?................................................ 279@b@66、线程的基本状态以及状态之间的关系?.......................................280@b@67、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?@b@....................................................................................................................281@b@68、Java 中如何实现序列化,有什么意义?......................................282@b@69、Java 中有几种类型的流?..............................................................282@b@70、写一个方法,输入一个文件名和一个字符串,统计这个字符串在@b@这个文件中出现的次数。........................................................................284@b@71、如何用 Java 代码列出一个目录下所有的文件?.........................286@b@72、用 Java 的套接字编程实现一个多线程的回显(echo)服务器。288@b@73、XML 文档定义有几种形式?它们之间有何本质区别?解析 XML@b@文档有哪几种方式?................................................................................295@b@74、你在项目中哪些地方用到了 XML?............................................. 296@b@75、阐述 JDBC 操作数据库的步骤。...................................................296@b@76、Statement 和 PreparedStatement 有什么区别?哪个性能更好?@b@....................................................................................................................298@b@77、使用 JDBC 操作数据库时,如何提升读取数据的性能?如何提升@b@更新数据的性能?....................................................................................299@b@78、在进行数据库编程时,连接池有什么作用?...............................300@b@79、什么是 DAO 模式?........................................................................300@b@80、事务的 ACID 是指什么?............................................................... 301@b@82、JDBC 能否处理 Blob 和 Clob?....................................................306@b@83、简述正则表达式及其用途。...........................................................308@b@84、Java 中是如何支持正则表达式操作的?......................................308@b@85、获得一个类的类对象有哪些方式?...............................................309@b@88、如何通过反射调用对象的方法?...................................................313@b@90、简述一下你了解的设计模式。.......................................................317@b@91、用 Java 写一个单例类。.................................................................318@b@92、什么是 UML?.................................................................................319@b@93、UML 中有哪些常用的图?.............................................................320@b@第 17 页 共 485 页@b@95、用 Java 写一个折半查找。.............................................................324@b@Java 面试题(二)................................................................................................. 326@b@多线程、并发及线程的基础问题............................................................328@b@1、Java 中能创建 volatile 数组吗?................................................. 328@b@2、volatile 能使得一个非原子操作变成原子操作吗?..................... 328@b@3、volatile 修饰符的有过什么实践?................................................. 328@b@4、volatile 类型变量提供什么保证?................................................. 329@b@5、10 个线程和 2 个线程的同步代码,哪个更容易写?................ 329@b@6、你是如何调用 wait()方法的?使用 if 块还是循环?为什么?329@b@有经验程序员的 Java 面试题............................................................... 330@b@8、什么是 Busy spin?我们为什么要使用它?................................. 330@b@9、Java 中怎么获取一份线程 dump 文件?....................................331@b@10、Swing 是线程安全的?................................................................. 331@b@11、什么是线程局部变量?...................................................................331@b@12、用 wait-notify 写一段代码来解决生产者-消费者问题?........ 331@b@13、用 Java 写一个线程安全的单例模式(Singleton)?.............332@b@14、Java 中 sleep 方法和 wait 方法的区别?...............................332@b@15、什么是不可变对象(immutable object)?Java 中怎么创建一@b@个不可变对象?........................................................................................332@b@16、我们能创建一个包含可变对象的不可变对象吗?.......................333@b@数据类型和 Java 基础面试问题........................................................... 333@b@17、Java 中应该使用什么数据类型来代表价格?.............................333@b@18、怎么将 byte 转换为 String?.....................................................333@b@19、Java 中怎样将 bytes 转换为 long 类型?..............................333@b@20、我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于@b@byte 类型的范围,将会出现什么现象?............................................. 334@b@21、存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为 C 么?@b@如 C = (C) B;........................................................................................ 334@b@22、哪个类包含 clone 方法?是 Cloneable 还是 Object?.......334@b@23、Java 中 ++ 操作符是线程安全的吗?.......................................334@b@23、不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,@b@第 18 页 共 485 页@b@然后存储回内存,这个过程可能会出现多个线程交差。....................335@b@24、a = a + b 与 a += b 的区别...................................................... 335@b@25、我能在不进行强制转换的情况下将一个 double 值赋值给 long@b@类型的变量吗?........................................................................................335@b@26、3*0.1 == 0.3 将会返回什么?true 还是 false?.....................336@b@27、int 和 Integer 哪个会占用更多的内存?..................................336@b@28、为什么 Java 中的 String 是不可变的(Immutable)?.......336@b@JVM 底层 与 GC(Garbage Collection) 的面试问题.................336@b@31、64 位 JVM 中,int 的长度是多数?.........................................337@b@32、Serial 与 Parallel GC 之间的不同之处?...................................337@b@33、32 位和 64 位的 JVM,int 类型变量的长度是多数?.......... 337@b@34、Java 中 WeakReference 与 SoftReference 的区别?......... 337@b@35、WeakHashMap 是怎么工作的?................................................337@b@36、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要@b@使用?........................................................................................................338@b@37、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?... 338@b@38、32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?.......338@b@39、JRE、JDK、JVM 及 JIT 之间有什么不同?..............................339@b@3 年工作经验的 Java 面试题............................................................... 339@b@40、解释 Java 堆空间及 GC?........................................................... 339@b@JVM 底层面试题及答案......................................................................... 339@b@41、你能保证 GC 执行吗?................................................................. 339@b@42、怎么获取 Java 程序使用的内存?堆使用的百分比?...............339@b@43、Java 中堆和栈有什么区别?.........................................................340@b@关于内存的的面试问题和答案................................................................340@b@Java 基本概念面试题............................................................................. 340@b@44、“a==b”和”a.equals(b)”有什么区别?............................... 340@b@45、a.hashCode() 有什么用?与 a.equals(b) 有什么关系?....... 340@b@46、final、finalize 和 finally 的不同之处?....................................341@b@47、Java 中的编译期常量是什么?使用它又什么风险?.................341@b@Java 集合框架的面试题......................................................................... 341@b@第 19 页 共 485 页@b@48、List、Set、Map 和 Queue 之间的区别(答案)........................ 341@b@49、poll() 方法和 remove() 方法的区别?......................................342@b@50、Java 中 LinkedHashMap 和 PriorityQueue 的区别是什么?342@b@51、ArrayList 与 LinkedList 的不区别?......................................... 342@b@52、用哪两种方式来实现集合的排序?...............................................342@b@53、Java 中怎么打印数组?.................................................................343@b@54、Java 中的 LinkedList 是单向链表还是双向链表?..................343@b@55、Java 中的 TreeMap 是采用什么树实现的?(答案).................343@b@56、Hashtable 与 HashMap 有什么不同之处?........................... 343@b@57、Java 中的 HashSet,内部是如何工作的?...............................344@b@58、写一段代码在遍历 ArrayList 时移除一个元素?...................... 344@b@59、我们能自己写一个容器类,然后使用 for-each 循环码?.......344@b@60、ArrayList 和 HashMap 的默认大小是多数?..........................344@b@61、有没有可能两个不相等的对象有有相同的 hashcode?.......... 345@b@62、两个相同的对象会有不同的的 hash code 吗?....................... 345@b@63、我们可以在 hashcode() 中使用随机数字吗?..........................345@b@64、Java 中,Comparator 与 Comparable 有什么不同?........ 345@b@Java IO 和 NIO 的面试题.................................................................... 346@b@66、在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?@b@....................................................................................................................346@b@67、Java 中怎么创建 ByteBuffer?...................................................346@b@68、Java 中,怎么读写 ByteBuffer ?.............................................346@b@69、Java 采用的是大端还是小端?.....................................................346@b@70、ByteBuffer 中的字节序是什么?.................................................346@b@71、Java 中,直接缓冲区与非直接缓冲器有什么区别?.................347@b@72、Java 中的内存映射缓存区是什么?.............................................347@b@73、socket 选项 TCP NO DELAY 是指什么?................................347@b@74、TCP 协议与 UDP 协议有什么区别?.........................................347@b@75、Java 中,ByteBuffer 与 StringBuffer 有什么区别?(答案).. 347@b@Java 最佳实践的面试问题..................................................................... 348@b@76、Java 中,编写多线程程序的时候你会遵循哪些最佳实践?.....348@b@第 20 页 共 485 页@b@77、说出几点 Java 中使用 Collections 的最佳实践......................348@b@78、说出至少 5 点在 Java 中使用线程的最佳实践。.................... 348@b@79、说出 5 条 IO 的最佳实践(答案)................................................. 349@b@80、列出 5 个应该遵循的 JDBC 最佳实践.......................................349@b@81、说出几条 Java 中方法重载的最佳实践?...................................350@b@Date、Time 及 Calendar 的面试题.................................................. 350@b@82、在多线程环境下,SimpleDateFormat 是线程安全的吗?..... 350@b@83、Java 中如何格式化一个日期?如格式化为 ddMMyyyy 的形式?@b@....................................................................................................................350@b@84、Java 中,怎么在格式化的日期中显示时区?.............................351@b@85、Java 中 java.util.Date 与 java.sql.Date 有什么区别?........ 351@b@86、Java 中,如何计算两个日期之间的差距?.................................351@b@87、Java 中,如何将字符串 YYYYMMDD 转换为日期?............. 352@b@单元测试 JUnit 面试题..........................................................................352@b@89、如何测试静态方法?(答案)............................................................ 352@b@90、怎么利用 JUnit 来测试一个方法的异常?................................. 352@b@91、你使用过哪个单元测试库来测试你的 Java 程序?...................352@b@92、@Before 和 @BeforeClass 有什么区别?..............................352@b@编程和代码相关的面试题........................................................................353@b@93、怎么检查一个字符串只包含数字?解决方案...............................353@b@94、Java 中如何利用泛型写一个 LRU 缓存?................................. 353@b@95、写一段 Java 程序将 byte 转换为 long?................................353@b@95、在不使用 StringBuffer 的前提下,怎么反转一个字符串?....353@b@97、Java 中,怎么获取一个文件中单词出现的最高频率?.............353@b@98、如何检查出两个给定的字符串是反序的?...................................354@b@99、Java 中,怎么打印出一个字符串的所有排列?.........................354@b@100、Java 中,怎样才能打印出数组中的重复元素?...................... 354@b@101、Java 中如何将字符串转换为整数?.......................................... 354@b@102、在没有使用临时变量的情况如何交换两个整数变量的值?.... 355@b@关于 OOP 和设计模式的面试题...........................................................355@b@103、接口是什么?为什么要使用接口而不是直接使用具体类?.... 355@b@第 21 页 共 485 页@b@104、Java 中,抽象类与接口之间有什么不同?.............................. 355@b@105、除了单例模式,你在生产环境中还用过什么设计模式?........ 356@b@106、你能解释一下里氏替换原则吗?...................................................356@b@107) 什么情况下会违反迪米特法则?为什么会有这个问题?......... 356@b@108、适配器模式是什么?什么时候使用?........................................ 356@b@109、什么是“依赖注入”和“控制反转”?为什么有人使用?.... 356@b@110、抽象类是什么?它与接口有什么区别?你为什么要使用过抽象@b@类?............................................................................................................357@b@111、构造器注入和 setter 依赖注入,那种方式更好?..................357@b@112、依赖注入和工程模式之间有什么不同?.................................... 357@b@113、适配器模式和装饰器模式有什么区别?.................................... 358@b@114、适配器模式和代理模式之前有什么不同?................................ 358@b@115、什么是模板方法模式?................................................................ 358@b@116、什么时候使用访问者模式?........................................................ 358@b@117、什么时候使用组合模式?............................................................ 358@b@118、继承和组合之间有什么不同?.................................................... 359@b@119、描述 Java 中的重载和重写?.................................................... 359@b@120、Java 中,嵌套公共静态类与顶级类有什么不同?.................. 359@b@121、 OOP 中的 组合、聚合和关联有什么区别?..........................359@b@122、给我一个符合开闭原则的设计模式的例子?............................ 360@b@123、抽象工厂模式和原型模式之间的区别?.................................... 360@b@Java 面试中其他各式各样的问题......................................................... 361@b@125、嵌套静态类与顶级类有什么区别?............................................ 361@b@126、你能写出一个正则表达式来判断一个字符串是否是一个数字吗?@b@....................................................................................................................361@b@127、Java 中,受检查异常 和 不受检查异常的区别?.................. 362@b@128、Java 中,throw 和 throws 有什么区别................................ 362@b@129、Java 中,Serializable 与 Externalizable 的区别?............ 362@b@130、Java 中,DOM 和 SAX 解析器有什么不同?...................... 363@b@131、说出 JDK 1.7 中的三个新特性?.............................................. 363@b@132、说出 5 个 JDK 1.8 引入的新特性?........................................ 363@b@第 22 页 共 485 页@b@133、Java 中,Maven 和 ANT 有什么区别?............................... 363@b@Spring 面试题(一).............................................................................................364@b@1、一般问题............................................................................................. 364@b@1.1、不同版本的 Spring Framework 有哪些主要功能?...............364@b@1.2、什么是 Spring Framework?.....................................................365@b@1.3、列举 Spring Framework 的优点。...........................................365@b@1.4、Spring Framework 有哪些不同的功能?.................................365@b@1.5、Spring Framework 中有多少个模块,它们分别是什么?.....365@b@1.6、什么是 Spring 配置文件?......................................................... 368@b@1.7、Spring 应用程序有哪些不同组件?........................................... 368@b@1.8、使用 Spring 有哪些方式?......................................................... 368@b@2、依赖注入(Ioc)............................................................................... 369@b@2.1、什么是 Spring IOC 容器?......................................................... 369@b@2.2、什么是依赖注入?..........................................................................369@b@2.3、可以通过多少种方式完成依赖注入?..........................................370@b@2.4、区分构造函数注入和 setter 注入。...........................................370@b@2.5、spring 中有多少种 IOC 容器?.................................................370@b@2.6、区分 BeanFactory 和 ApplicationContext。........................371@b@2.7、列举 IoC 的一些好处。............................................................... 371@b@2.8、Spring IoC 的实现机制。............................................................371@b@3、Beans..................................................................................................373@b@3.1、什么是 spring bean?................................................................. 373@b@3.2、spring 提供了哪些配置方式?....................................................373@b@3.3、spring 支持集中 bean scope?................................................375@b@3.4、spring bean 容器的生命周期是什么样的?............................. 375@b@3.5、什么是 spring 的内部 bean?.................................................. 376@b@3.6、什么是 spring 装配......................................................................377@b@3.7、自动装配有哪些方式?..................................................................377@b@3.8、自动装配有什么局限?..................................................................378@b@4、注解..................................................................................................... 378@b@4.1、什么是基于注解的容器配置..........................................................378@b@第 23 页 共 485 页@b@4.2、如何在 spring 中启动注解装配?..............................................379@b@4.3、@Component, @Controller, @Repository, @Service 有何区@b@别?............................................................................................................379@b@4.4、@Required 注解有什么用?...................................................... 380@b@4.5、@Autowired 注解有什么用?....................................................380@b@4.6、@Qualifier 注解有什么用?....................................................... 381@b@4.7、@RequestMapping 注解有什么用?.......................................382@b@5、数据访问............................................................................................. 382@b@5.1、spring DAO 有什么用?..............................................................382@b@5.2、列举 Spring DAO 抛出的异常。............................................... 383@b@5.3、spring JDBC API 中存在哪些类?............................................. 383@b@5.4、使用 Spring 访问 Hibernate 的方法有哪些?...................... 384@b@5.5、列举 spring 支持的事务管理类型..............................................384@b@5.6、spring 支持哪些 ORM 框架...................................................... 384@b@6、AOP.....................................................................................................385@b@6.1、什么是 AOP?............................................................................... 385@b@6.2、什么是 Aspect?...........................................................................385@b@6.3、什么是切点(JoinPoint)............................................................ 386@b@6.4、什么是通知(Advice)?.............................................................386@b@6.5、有哪些类型的通知(Advice)?.................................................387@b@6.6、指出在 spring aop 中 concern 和 cross-cutting concern 的@b@不同之处。................................................................................................387@b@6.7、AOP 有哪些实现方式?............................................................... 387@b@6.8、Spring AOP and AspectJ AOP 有什么区别?........................388@b@6.9、如何理解 Spring 中的代理?..................................................... 388@b@6.10、什么是编织(Weaving)?.......................................................389@b@7、MVC....................................................................................................389@b@7.1、Spring MVC 框架有什么用?.....................................................389@b@7.2、描述一下 DispatcherServlet 的工作流程................................ 389@b@7.3、介绍一下 WebApplicationContext.......................................... 391@b@Spring 面试题(二).............................................................................................392@b@第 24 页 共 485 页@b@1、什么是 spring?.................................................................................. 392@b@2、使用 Spring 框架的好处是什么?...................................................392@b@3、Spring 由哪些模块组成?..................................................................392@b@4、核心容器(应用上下文) 模块。......................................................393@b@5、BeanFactory – BeanFactory 实现举例。.................................. 393@b@6、XMLBeanFactory............................................................................. 394@b@7、解释 AOP 模块...................................................................................394@b@8、解释 JDBC 抽象和 DAO 模块。...................................................... 394@b@9、解释对象/关系映射集成模块。....................................................... 394@b@10、解释 WEB 模块。...........................................................................394@b@12、Spring 配置文件............................................................................. 395@b@13、什么是 Spring IOC 容器?........................................................... 395@b@14、IOC 的优点是什么?.......................................................................395@b@15、ApplicationContext 通常的实现是什么?................................... 395@b@16、Bean 工厂和 Application contexts 有什么区别?................ 396@b@17、一个 Spring 的应用看起来象什么?............................................ 396@b@依赖注入....................................................................................................396@b@18、什么是 Spring 的依赖注入?........................................................ 396@b@19、有哪些不同类型的 IOC(依赖注入)方式?...............................397@b@20、哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注@b@入?............................................................................................................397@b@Spring Beans...........................................................................................397@b@21.什么是 Spring beans?......................................................................397@b@22、一个 Spring Bean 定义 包含什么?..........................................398@b@23、如何给 Spring 容器提供配置元数据?......................................... 398@b@24、你怎样定义类的作用域?.................................................................398@b@25、解释 Spring 支持的几种 bean 的作用域。.................................399@b@26、Spring 框架中的单例 bean 是线程安全的吗?............................399@b@27、解释 Spring 框架中 bean 的生命周期。.....................................399@b@28、哪些是重要的 bean 生命周期方法?你能重载它们吗?........... 400@b@29、什么是 Spring 的内部 bean?......................................................400@b@第 25 页 共 485 页@b@30、在 Spring 中如何注入一个 java 集合?......................................400@b@31、什么是 bean 装配?......................................................................... 401@b@32、什么是 bean 的自动装配?........................................................... 401@b@33、解释不同方式的自动装配 。.........................................................401@b@34.自动装配有哪些局限性 ?..................................................................402@b@35、你可以在 Spring 中注入一个 null 和一个空字符串吗?.......... 402@b@Spring 注解..............................................................................................402@b@36、什么是基于 Java 的 Spring 注解配置? 给一些注解的例子...... 403@b@37、什么是基于注解的容器配置?.........................................................403@b@38、怎样开启注解装配?.......................................................................403@b@39、@Required 注解........................................................................... 403@b@40、@Autowired 注解.........................................................................404@b@41、@Qualifier 注解............................................................................ 404@b@Spring 数据访问......................................................................................404@b@42.在 Spring 框架中如何更有效地使用 JDBC?...................................404@b@43、JdbcTemplate................................................................................ 404@b@44、Spring 对 DAO 的支持.................................................................. 405@b@45、使用 Spring 通过什么方式访问 Hibernate?.............................. 405@b@46、Spring 支持的 ORM.......................................................................405@b@47.如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起@b@来?............................................................................................................406@b@48、Spring 支持的事务管理类型......................................................... 406@b@49、Spring 框架的事务管理有哪些优点?......................................... 406@b@50、你更倾向用那种事务管理类型?...................................................407@b@Spring 面向切面编程(AOP)..............................................................407@b@51、解释 AOP......................................................................................... 407@b@52、Aspect 切面....................................................................................407@b@52、在 Spring AOP 中,关注点和横切关注的区别是什么?..........407@b@54、连接点...............................................................................................408@b@55、通知...................................................................................................408@b@56、切点...................................................................................................408@b@第 26 页 共 485 页@b@57、什么是引入?.....................................................................................409@b@58、什么是目标对象?.............................................................................409@b@59、什么是代理?.....................................................................................409@b@60、有几种不同类型的自动代理?.......................................................409@b@61、什么是织入。什么是织入应用的不同点?...................................409@b@62、解释基于 XML Schema 方式的切面实现。................................ 410@b@63、解释基于注解的切面实现...............................................................410@b@Spring 的 MVC.......................................................................................410@b@64、什么是 Spring 的 MVC 框架?..................................................... 410@b@65、DispatcherServlet......................................................................... 410@b@66、WebApplicationContext............................................................. 411@b@67、什么是 Spring MVC 框架的控制器?..........................................411@b@68、@Controller 注解..........................................................................411@b@69、@RequestMapping 注解............................................................411@b@微服务 面试题..........................................................................................................411@b@1、您对微服务有何了解?..................................................................... 411@b@2、微服务架构有哪些优势?................................................................. 413@b@3。微服务有哪些特点?......................................................................... 414@b@4、设计微服务的最佳实践是什么?..................................................... 415@b@5、微服务架构如何运作?..................................................................... 415@b@6、微服务架构的优缺点是什么?......................................................... 416@b@7、单片,SOA 和微服务架构有什么区别?........................................417@b@8、在使用微服务架构时,您面临哪些挑战?..................................... 418@b@9、SOA 和微服务架构之间的主要区别是什么?................................418@b@10、微服务有什么特点?.......................................................................419@b@11、什么是领域驱动设计?...................................................................419@b@12、为什么需要域驱动设计(DDD)?..............................................420@b@13、什么是无所不在的语言?...............................................................420@b@14、什么是凝聚力?...............................................................................421@b@15、什么是耦合?...................................................................................421@b@16、什么是 REST / RESTful 以及它的用途是什么?.........................421@b@第 27 页 共 485 页@b@17、你对 Spring Boot 有什么了解?.................................................. 421@b@18、什么是 Spring 引导的执行器?.................................................... 422@b@19、什么是 Spring Cloud?.................................................................422@b@20、Spring Cloud 解决了哪些问题?.................................................423@b@21、在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?@b@....................................................................................................................423@b@22。你能否给出关于休息和微服务的要点?.......................................424@b@23、什么是不同类型的微服务测试?...................................................424@b@24、您对 Distributed Transaction 有何了解?................................ 424@b@25、什么是 Idempotence 以及它在哪里使用?............................... 425@b@26、什么是有界上下文?.......................................................................425@b@27、什么是双因素身份验证?...............................................................425@b@28、双因素身份验证的凭据类型有哪些?...........................................426@b@29、什么是客户证书?...........................................................................427@b@30、PACT 在微服务架构中的用途是什么?........................................427@b@31、什么是 OAuth?............................................................................. 427@b@32、康威定律是什么?...........................................................................428@b@33、合同测试你懂什么?.......................................................................428@b@34、什么是端到端微服务测试?...........................................................429@b@35、Container 在微服务中的用途是什么?....................................... 429@b@36、什么是微服务架构中的 DRY?......................................................430@b@37、什么是消费者驱动的合同(CDC)?.......................................... 430@b@38、Web,RESTful API 在微服务中的作用是什么?.......................431@b@39、您对微服务架构中的语义监控有何了解?...................................431@b@40、我们如何进行跨功能测试?...........................................................431@b@41、我们如何在测试中消除非决定论?...............................................431@b@42、Mock 或 Stub 有什么区别?........................................................ 432@b@43、您对 Mike Cohn 的测试金字塔了解多少?................................ 432@b@44、Docker 的目的是什么?................................................................ 433@b@45、什么是金丝雀释放?.......................................................................434@b@46、什么是持续集成(CI)?...............................................................434@b@第 28 页 共 485 页@b@47、什么是持续监测?...........................................................................434@b@48、架构师在微服务架构中的角色是什么?.......................................434@b@49、我们可以用微服务创建状态机吗?...............................................435@b@50、什么是微服务中的反应性扩展?...................................................435@b@Linux 面试题........................................................................................................... 435@b@1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目@b@录用什么表示? 切换目录用什么命令?................................................436@b@2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?......... 436@b@3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户@b@id?查看指定帮助用什么命令?............................................................436@b@4、Ls 命令执行什么功能? 可以带哪些参数,有什么区别?......... 437@b@5、建立软链接(快捷方式),以及硬链接的命令。...............................437@b@6、目录创建用什么命令?创建文件用什么命令?复制文件用什么命@b@令?............................................................................................................437@b@7、查看文件内容有哪些命令可以使用?............................................. 438@b@8、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello@b@world”?...................................................................................................439@b@9、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个@b@命令?........................................................................................................439@b@10、移动文件用哪个命令?改名用哪个命令?...................................439@b@11、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需@b@要有提示功能呢?....................................................................................440@b@12、删除文件用哪个命令?如果需要连目录及目录下文件一块删除@b@呢?删除空文件夹用什么命令?............................................................440@b@13、Linux 下命令有哪几种可使用的通配符?分别代表什么含义?.440@b@14、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)@b@....................................................................................................................441@b@15、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?@b@....................................................................................................................441@b@16、Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用@b@什么符号表示的?....................................................................................441@b@第 29 页 共 485 页@b@17、怎么使一个命令在后台运行?.........................................................442@b@18、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信@b@息?............................................................................................................443@b@19、哪个命令专门用来查看后台任务?.................................................443@b@20、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台@b@执行起来用什么命令?..............................................................................443@b@21、终止进程用什么命令? 带什么参数?.............................................444@b@22、怎么查看系统支持的所有信号?...................................................444@b@23、搜索文件用什么命令? 格式是怎么样的?.....................................444@b@24、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息@b@用什么命令?..............................................................................................445@b@25、使用什么命令查看用过的命令列表?.............................................445@b@26、使用什么命令查看磁盘使用空间? 空闲空间呢?.......................445@b@27、使用什么命令查看网络是否连通?.................................................446@b@28、使用什么命令查看 ip 地址及接口信息?................................... 446@b@29、查看各类环境变量用什么命令?.....................................................446@b@30、通过什么命令指定命令提示符?.....................................................446@b@31、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?@b@....................................................................................................................447@b@32、通过什么命令查找执行命令?.........................................................448@b@33、怎么对命令进行取别名?...............................................................448@b@34、du 和 df 的定义,以及区别?....................................................448@b@35、awk 详解。..................................................................................... 449@b@36、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?449@b@37、如果一个 linux 新手想要知道当前系统支持的所有命令的列表,他@b@需要怎么做?............................................................................................450@b@38、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?451@b@39、你的系统目前有许多正在运行的任务,在不重启机器的条件下,@b@有什么方法可以把所有正在运行的进程移除呢?................................451@b@40、bash shell 中的 hash 命令有什么作用?..................................452@b@41、哪一个 bash 内置命令能够进行数学运算。................................452@b@第 30 页 共 485 页@b@42、怎样一页一页地查看一个大文件的内容呢?...............................453@b@43、数据字典属于哪一个用户的?.......................................................453@b@44、怎样查看一个 linux 命令的概要与用法?假设你在/bin 目录中偶@b@然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?453@b@45、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?...454@b@Spring Boot 面试题...............................................................................................454@b@1、什么是 Spring Boot?..................................................................... 454@b@2、Spring Boot 有哪些优点?............................................................. 455@b@3、什么是 JavaConfig?....................................................................... 455@b@4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?456@b@5、Spring Boot 中的监视器是什么?................................................. 457@b@6、如何在 Spring Boot 中禁用 Actuator 端点安全性?..................457@b@7、如何在自定义端口上运行 Spring Boot 应用程序?.................... 457@b@8、什么是 YAML?.................................................................................458@b@9、如何实现 Spring Boot 应用程序的安全性?................................ 458@b@10、如何集成 Spring Boot 和 ActiveMQ?...................................... 458@b@11、如何使用 Spring Boot 实现分页和排序?.................................. 458@b@12、什么是 Swagger?你用 Spring Boot 实现了它吗?................ 459@b@13、什么是 Spring Profiles?..............................................................459@b@14、什么是 Spring Batch?................................................................. 459@b@15、什么是 FreeMarker 模板?...........................................................459@b@16、如何使用 Spring Boot 实现异常处理?...................................... 460@b@17、您使用了哪些 starter maven 依赖项?...................................... 460@b@18、什么是 CSRF 攻击?....................................................................... 460@b@19、什么是 WebSockets?.................................................................. 460@b@20、什么是 AOP?................................................................................. 461@b@21、什么是 Apache Kafka?................................................................462@b@22、我们如何监视所有 Spring Boot 微服务?.................................. 462@b@Spring Cloud 面试题.............................................................................................462@b@1、什么是 Spring Cloud?................................................................... 462@b@2、使用 Spring Cloud 有什么优势?.................................................. 463@b@第 31 页 共 485 页@b@3、服务注册和发现是什么意思?Spring Cloud 如何实现?........... 463@b@4、负载平衡的意义什么?..................................................................... 463@b@5、什么是 Hystrix?它如何实现容错?...............................................464@b@6、什么是 Hystrix 断路器?我们需要它吗?......................................465@b@7、什么是 Netflix Feign?它的优点是什么?....................................466@b@8、什么是 Spring Cloud Bus?我们需要它吗?............................... 468@b@RabbitMQ 面试题..................................................................................................470@b@1、什么是 rabbitmq.............................................................................. 470@b@2、为什么要使用 rabbitmq.................................................................. 471@b@3、使用 rabbitmq 的场景..................................................................... 471@b@4、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消@b@费了消息?................................................................................................471@b@5.如何避免消息重复投递或重复消费?................................................ 472@b@6、消息基于什么传输?......................................................................... 473@b@7、消息如何分发?................................................................................. 473@b@8、消息怎么路由?................................................................................. 473@b@9、如何确保消息不丢失?..................................................................... 474@b@10、使用 RabbitMQ 有什么好处?..................................................... 474@b@11、RabbitMQ 的集群.......................................................................... 474@b@12、mq 的缺点........................................................................................475@b@无标题..........................................................................................错误!未定义书签。@b@kafka 面试题........................................................................................................... 475@b@1、如何获取 topic 主题的列表..............................................................475@b@2、生产者和消费者的命令行是什么?................................................. 476@b@3、consumer 是推还是拉?................................................................. 476@b@4、讲讲 kafka 维护消费状态跟踪的方法.............................................477@b@5、讲一下主从同步**..............................................................................478@b@6、为什么需要消息系统,mysql 不能满足需求吗?.........................478@b@7、Zookeeper 对于 Kafka 的作用是什么?.......................................479@b@8、数据传输的事务定义有哪三种?..................................................... 480@b@9、Kafka 判断一个节点是否还活着有那两个条件?..........................480@b@第 32 页 共 485 页@b@10、Kafka 与传统 MQ 消息系统之间有三个关键区别..................... 481@b@11、讲一讲 kafka 的 ack 的三种机制.................................................. 481@b@13、消费者故障,出现活锁问题如何解决?.......................................482@b@14、如何控制消费的位置.......................................................................483@b@15、kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?483@b@16、kafka 的高可用机制是什么?........................................................483@b@17、kafka 如何减少数据丢失................................................................484@b@18、kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。484