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