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等

静态资源配置等

相关文章
|
5天前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。
|
5天前
|
存储 监控 安全
一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)
这篇文章是Java面试第三天的笔记,讨论了线程安全、Thread与Runnable的区别、守护线程、ThreadLocal原理及内存泄漏问题、并发并行串行的概念、并发三大特性、线程池的使用原因和解释、线程池处理流程,以及线程池中阻塞队列的作用和设计考虑。
|
5天前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
5天前
|
存储 安全 Java
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
这篇文章是关于Java面试的第二天笔记,涵盖了HashMap与HashTable的区别、ConcurrentHashMap的实现原理、IOC容器的实现方法、字节码的概念和作用、Java类加载器的类型、双亲委派模型、Java异常体系、GC如何判断对象可回收、线程的生命周期及状态,以及sleep、wait、join、yield的区别等十道面试题。
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
|
5天前
|
SQL Java 数据库连接
一天五道Java面试题----第六天(1)
这篇文章是关于Java面试中常见的五个问题,包括MyBatis和Hibernate的对比、MyBatis中#{}和${}的区别、MyBatis插件的运行原理及开发流程、索引的基本原理以及MySQL聚簇索引和非聚簇索引的区别。
|
5天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
5天前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
6天前
|
存储 Java 编译器
|
5天前
|
存储 关系型数据库 MySQL
一天五道Java面试题----第八天(怎么处理慢查询--------->简述Myisam和innodb的区别)
这篇文章是关于Java面试中关于数据库性能优化和MySQL特性的五个问题,包括处理慢查询、ACID特性保证、MVCC概念、MySQL主从同步原理以及MyISAM和InnoDB存储引擎的区别。