java面试题

简介: java面试题

1、Java基础

基础知识很多,不过多介绍,主要是面试笔试高频考察点


JVM虚拟机(初级可以不精通,但必须熟悉)


虚拟机的结构、类的加载机制、双亲委派机制


垃圾回收机制、垃圾回收算法


Java的基础语法、流程控制语句 (掌握)


基本数据类型以及包装类之间的转换


对象创建过程中JVM中堆与栈中分别存储了什么?


面向对象(掌握)


什么是面向对象?特性?与面向过程的好处与区别?


接口以及抽象(掌握)


接口与抽象的特点以及区别?


什么是面向接口编程?什么是面向抽象编程?有什么好处?


集合框架(数据结构) (重点掌握)


了解集合体系、底层结构,哪些是线性安全?哪些是线性不安全?


线性不安全时在多线程并发时要注意哪些问题?


如何避免线性不安全带来的数据安全问题?


异常


error与运行时异常的区别?


异常的处理机制、自定义异常、常见的异常有哪些?


IO流、异步IO、NIO、BIO(掌握)


熟悉各种输入输出流的用法


从系统吞吐效率考虑,异步IO与阻塞IO的区别,以及如何实现


多线程以及JUC(重点掌握)


实现多线程的三种方法?掌握消费者与生产者问题


锁机制、各种锁的基本概念、自旋锁、原子引用,Java的内存模型,内存可见性等等


JUC包下的常用线性安全的类


反射(掌握)


什么是反射?反射的基本用法?(几乎所有的框架底层都使用了反射,进阶分析源码必备)


常用类以及工具类的使用(面试题可能会手写代码)(掌握)


String类、StringBuffer、StringBuilder、Date等等


基础的笔试:(掌握)


冒泡排序、选择排序、二分查找、二叉树、链表的实现、利用集合类的特性去重、排序等等


2、Java Web

该部分会考察网络有关的支持


Http基于Tcp\ip协议


TCP为什么三次握手,要四次挥手?


为什么说TCP是可靠传输?


request请求


请求头、请求体、get、post请求的区别?


HttpServletRequest的api使用?


请求的生命周期?


response响应


请求头、请求体、HttpServletResponse的api使用


servlet


什么是servlet? servlet的生命周期?service方法源码?doget\dopost方法?


web.xml中servlet的配置、中文乱码过滤的三种方法?


context上下文


session and cookie工作原理?


什么是转发?什么重定向?区别是什么?


Tomcat的架构?工作原理?基本配置?


过滤器


什么是过滤器?如何自定义过滤器?


拦截器


什么是拦截器?如何自定义拦截器?


maven使用,idea使用,mysql数据库相关?


大厂面试题:


浏览器地址栏中输入地址回车,到页面渲染都发生了什么?

http 1.0 与http 2.0的区别?

在本机的Tomcat上如何使用地址解析?

3、spring

什么是spring?

什么是控制反转?

什么是依赖注入?如何实现依赖注入?

什么是AOP面向切片?

AOP的实现方法?

spring的注解开发?配置版开发?

javaBean的自动装配?属性注入?

Autoword与resource的区别?

注入方式有哪些?以及底层实现?

静态代理以及实现?

动态代理以及实现?jdk 与cglib?

声明式事务

集成mybatis

spring 涉及到的设计模式?

4、spring mvc

springMvc的工作原理?请求的生命周期?

springMvc的注解版开发?

MVC三层架构?

ssm三大框架的集成(spring\springmvc\mybatis)

5、spring boot

场景启动器

自动配置原理(面试高频重点)必须了解源码

集成各种数据库redis、mongodb等

集成中间件kafka、druid等

静态资源配置等

相关文章
|
2月前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
58 4
|
4月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
144 2
|
2月前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
202 60
|
27天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
105 14
|
1月前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
57 13
|
2月前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
101 16
|
2月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
87 9
|
2月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
78 12
|
2月前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
2月前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题

热门文章

最新文章