Java高频面试题目

简介: 面试时面试官最常问的问题总结归纳!

第一部分

JVM

1.jvm的内存模式是什么?

2.什么是GC?

3.对象是怎样被回收的?

4.常用的GC算法有哪些?

5.GC能否手动进行触发

6.如何使用链表实现一个栈?

7.什么是常量池,作用是什么?

8.什么是双亲委派机制?

9.强引用,软引用,弱引用,虚引用分别是什么?

10.队列和栈是什么?有什么区别?

11.请画出jvm的内存模型

12.如何理解基础数据类型还是引用数据类型

13.类的实例化顺序

14.什么是内存溢出?

15.内存溢出的异常有哪些?如何进行解决

第二部分

数据库

  1. 常用的数据库的函数
  2. 数据库的游标是什么?视图是什么?
  3. leftjoin,rightjoin,innerjoin是什么?
  4. 数据库的索引如何设置
  5. 数据库的索引有哪些种类?
  6. 数据库的索引什么时候失效?
  7. 数据库的inner_buffer_pool是什么?
  8. 数据库如何实现数据库的回滚操作?
  9. 数据库设计的三大范式是什么?
  10. 数据库的表如何进行拆分?好处是什么?分库是什么?
  11. 数据库的引擎有哪些?
  12. 如何优化sql?
  13. 数据库的索引使用的是B+树,为什么不使用二叉树?
  14. 事务的隔离级别有哪些?
  15. 高并发的情况下,如何实现安全的修改数据库数据?
  16. 如果某表的数据超过千万,如何crud时,加快速度?
  17. MVCC是什么?它的作用是?
  18. 一条sql语句是如何在MYSQL中执行的?
  19. 什么是关系型数据库?什么是非关系型数据库?各自的优势是什么?
  20. 什么是存储过程?

第三部分

锁/IO流

  1. 什么是重型锁,什么是轻型锁?什么是悲观锁?什么是乐观锁?
  2. synchronized 与Lock锁的区别是什么?
  3. CAS锁是什么?
  4. automic是什么?作用是?
  5. CAS锁的ABA问题是什么?如何解决?
  6. 怎样解决多线程的死锁问题?
  7. 自旋锁是什么?
  8. 可重入锁是什么?非可重入锁是什么?
  9. HashTable为什么是安全的?
  10. CurrentHashMap是怎么实现安全与效率的?
  11. 什么是IO流,种类有哪些?

12.什么是JAVA序列化?什么是非序列化?

13.BIO,NIO,AIO分别是什么?

14.字节流字符流的区别是什么?

15.什么是多路复用机制?

16.了解过Netty么?

17.有一个文件大小为10G,我们需要读取这个文件,进行入库处理,你怎样来做?

第四部分

框架部分

  1. springBean的生命周期?
  2. springIOC与AOP是什么?
  3. Spring中的循环依赖如何解决?
  4. Spring中的设计模式有哪些?在哪里应用的?
  5. Spring的注入方式有哪些?
  6. Spring中常见的注解的含义是什么?
  7. SpringAop 的通知模式有哪些?
  8. Springmvc的执行流程?
  9. Springmvc的注解有哪些?以及含义
  10. mybatis如何绑定statement
  11. mybatis是如何通过反射生成执行语句?
  12. mybatis的自定义映射如何实现?
  13. mybatis的一对一,一对多映射如何实现?
  14. mybatis的缓存是什么?什么时候生效,什么时候失效?
  15. mybatis的动态sql有哪些?
  16. 什么是jpa?与mybatis的区别是什么?
  17. pagehelp分页组件是如何生效的?
  18. Springboot的自动装配原理是什么?
  19. Springboot的注解有哪些?配置方式有哪些?加载顺序是什么?
  20. Springboot与Spring的区别是什么?
目录
打赏
0
0
0
0
18
分享
相关文章
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
65 4
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
41 15
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
153 2
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
210 60
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
144 14
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
66 13
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
114 16
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
112 9
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
96 12
Java Dubbo 面试题
Java Dubbo相关基础面试题

热门文章

最新文章