![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 59
极速小乌龟
Java开发爱好者,最近笔记都是写在了本地,没有上传。不经常登录这个,如果有问题可以联系微信15021801061
展开
-
深入解读:BIO、NIO与IO多路复用——理解现代网络编程基石
在现代软件开发中,高效的数据交换是构建高性能网络应用的核心要素。深入理解输入输出(Input/Output,简称IO)模型的底层原理与工作机制,对于设计和实现高并发、低延迟的网络服务至关重要。本文将深度剖析阻塞式I/O(BIO)、非阻塞式I/O(NIO)以及IO多路复用(Multiplexing),揭示其设计原则、工作细节、底层机制、优缺点、适用场景以及实际应用中的挑战与优化策略。原创 2024-04-18 16:55:18 · 909 阅读 · 0 评论 -
Java面试题之JVM
十九、JVM194. 说一下 jvm 的主要组成部分?及其作用?类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定...原创 2021-07-03 09:53:59 · 492 阅读 · 0 评论 -
Java面试题之Redis
十八、Redis179. redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高速缓存数据库。记录帖子点赞数、点击数、评论数; 缓存近期热帖; 缓存文章详情信息; 记录用户会话信息。180. redis 有哪些功能?数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列181. redis 和 memecache 有什么区别?存储方式不同:memcache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小;R.原创 2021-07-03 09:34:16 · 423 阅读 · 0 评论 -
Java面试题之MySql
十七、MySql164. 数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性165. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是原创 2021-07-03 09:29:38 · 596 阅读 · 0 评论 -
Java面试题之Zookeeper
十六、Zookeeper157. zookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 hadoop 和 hbase 的重要组件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。158. zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等 主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程。 分布式锁...原创 2021-07-03 09:23:58 · 361 阅读 · 0 评论 -
Java面试题之Kafka
十五、Kafka152. kafka 可以脱离 zookeeper 单独使用吗?为什么?不能,因为zookeeper管理和协调kafka的节点服务器.153. kafka 有几种数据保留的策略?两种,一种是按照过期时间保留,一种是按照存储消息的大小保留.154. kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?会执行清除,时间和大小满足一个就会执行清除.155. 什么情况会导致 kafka 运行原创 2021-07-03 09:21:34 · 303 阅读 · 0 评论 -
Java面试题之RabbitMQ
十四、RabbitMQ135. rabbitmq 的使用场景有哪些?抢购活动,削峰填谷,防止系统崩塌。 延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。 解耦系统136. rabbitmq 有哪些重要的角色?生产者: 消息的创建者,负责创建和推送数据到消息服务器 消费者: 消息的接收方,用于处理数据. 代理: MQ本身.137. rabbitmq 有哪些重要的组件?ConnectionFactory(连接管理器):应用程序与Rabb...原创 2021-07-03 09:18:16 · 348 阅读 · 0 评论 -
Java面试题之Mybatis
十三、Mybatis125. mybatis 中 #{}和 ${}的区别是什么?前者会将传入的数据当成字符串,在之前加入双引号,后者是直接将数据显示在sql中前者会当做占位符,防sql注入,后者不能126. mybatis 有几种分页方式?两种,一种是内存分页,一种是物理分页内存分页: 一次性查询出所有满足条件的数据,临时保存在集合中,通过List的subList的方式获取分页数据.物理分页: 借助sql进行分页或者利用拦截器分页127. RowBounds ...原创 2021-07-03 09:11:18 · 533 阅读 · 0 评论 -
Java面试题之Hibernate
十二、Hibernate113. 为什么要使用 hibernate?1.对JDBC访问数据库的代码做了大量的封装,简化开发2.性能好,支持各种关系数据库.114. 什么是 ORM 框架?ORM的意思是对象关系映射,它的作用是在关系型数据库和业务实体对象之间做映射这样我们在操作具体业务对象的时候,就不需要去和具体的SQL语句打交道,只需要操作对象的属性和方法.115. hibernate 中如何在控制台查看打印的 sql 语句?在hibernate配置文件中配置hibe原创 2021-07-03 09:06:53 · 314 阅读 · 0 评论 -
Java面试题之Spring Boot/Spring Cloud
十一、Spring Boot/Spring Cloud104. 什么是 spring boot?可以认为是一个服务于框架的框架,简化了配置文件.整合了所有的框架105. 为什么要用 spring boot?开发速度快测试简单配置简单部署简单可以基于springboot来构建springcloud生态106. spring boot 核心配置文件是什么?application和bootstrap,application配置文件主要用于SpringBoot项目的自动化原创 2021-07-03 09:00:33 · 594 阅读 · 0 评论 -
Java面试题之Spring/Spring MVC
十、Spring/Spring MVC90. 为什么要使用 spring?1. 方便解耦,可以将对象间的依赖关系交给spring2. spring支持aop编程,可以很方便的对程序进行监控,拦截3. 方便测试,支持junit4. 集成其他框架比较方便5. 声明式事务91. 解释一下什么是 aop?aop即面向切面编程,在原有功能的基础上通过aop添加新的功能,而原有的功能并不知道新添加的功能.简单来说,就是在某个类或者方法执行前后打个标记,声明在执行到这里之前要先执行什么,原创 2021-07-02 13:40:42 · 751 阅读 · 0 评论 -
Java面试题之设计模式
九、设计模式88. 说一下你熟悉的设计模式?单例模式,工厂模式,装饰者模式,代理模式,适配器模式,策略模式,责任链模式,桥接模式89. 简单工厂和抽象工厂有什么区别?简单工厂只能生产同一等级结构中的任一产品抽象工厂用来生产不同产品族中的全部产品...原创 2021-07-02 13:34:39 · 409 阅读 · 0 评论 -
Java面试题之网络
八、网络79. http 响应码 301 和 302 代表的是什么?有什么区别?301和302都是HTTP请求的状态码,其中301代表永久性转移,302代表暂时性转移.301代表转向前的网址不在了,就会把新的网址当做有效目标302只是代表临时性重定向,旧的网址会保留.80. forward 和 redirect 的区别?forward:直接转发,客户端浏览器只发出一次请求,由第二个信息资源响应该请求,共享同一个request对象redirect:间接转发,服务端响应第一次请求的原创 2021-07-02 13:32:45 · 787 阅读 · 0 评论 -
java面试题之异常
七、异常74. throw 和 throws 的区别?throws:用来声明一个方法可能抛出的所有异常信息,不会处理异常,只是将异常向上传,交给调用者throw:抛出一个具体的异常类型.throws出现在方法头,而throw出现在函数体throws表示出现异常的可能,并不一定会发生,throw则是抛出了一个存在的异常实例.75. final、finally、finalize 有什么区别?final: 修饰类,表示该类不可继承 修饰方法,表示该方法不可重写 ...原创 2021-07-02 13:27:44 · 419 阅读 · 0 评论 -
Java面试题之Java Web
六、Java Web64. jsp 和 servlet 有什么区别?jsp擅长表现页面显示,servlet擅长逻辑控制 servlet没有内置对象,jsp有内置对象 servlet的应用逻辑在.java文件中,而jsp中,java和html组合为一个.jsp文件. servlet在java代码中嵌入html代码,jsp是在html中嵌入java代码65. jsp 有哪些内置对象?作用分别是什么?jsp有9个内置对象:request 用户端请求,此请求会包含来自GET/POST原创 2021-07-02 13:24:20 · 476 阅读 · 0 评论 -
Java面试题之对象拷贝
五、对象拷贝61. 为什么要使用克隆?想要对一个对象进行处理,但是又想保留原有的数据,这时可以使用克隆.62. 如何实现对象克隆?实现Cloneable接口并重写Object的clone()方法实现Serializable接口,通过对象的序列化和反序列化实现深度克隆63. 深拷贝和浅拷贝区别是什么?是否支持引用数据类型的成员变量的复制....原创 2021-07-02 13:15:31 · 339 阅读 · 0 评论 -
Java面试题之反射
四、反射57. 什么是反射?在运行过程中,对任何一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能改变其属性.58. 什么是 java 序列化?什么情况下需要序列化?序列化就是一种用来处理对象流的机制,简单来说,就是把对象存储在某一个地方,硬盘或者网络,即把对象的内容转变为字节序列.当想把内存中的对象状态保存在一个文件或者数据库,或者在网络上传输的时候,就需要序列化,在java中需要实现Serializable接口.59. 动态代理是什么?有哪些应用?动态代原创 2021-07-02 13:14:01 · 538 阅读 · 0 评论 -
Java面试题之多线程
三、多线程35. 并行和并发有什么区别?并行是多个事件同时进行,并发是多个事件在某一时间段内间隔发生.你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。36. 线程和进程的区别?进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位.进程有独立的地址空间,一个进程崩溃后在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径,线程有自己的堆栈和局部变量.在操作原创 2021-07-02 13:11:59 · 815 阅读 · 0 评论 -
Java面试题之容器
二、容器18. java 容器都有哪些?String,数组以及java.util下面的集合类List:存放有序,列表存储,元素可重复 ArrayList LinkedList VectorSet:无序,元素不可重复 HashSet TreeSetMap:无序,元素可重复HashMap TreeMap LinkedHashMap HashTable19. Collection 和 Collections 有什么区别?Collecti...原创 2021-07-02 12:55:25 · 1047 阅读 · 0 评论 -
java面试题之Java 基础
一、Java 基础1.JDK 和 JRE 有什么区别?JDK是java的开发工具包,包含各种类库,并且包含了JRE,javac是在JDK中的;JREjava程序的运行环境,安装过程中自动添加PATH.2. == 和 equals 的区别是什么?一. 对于==,比较的是值是否相等,如果比较的是基本数据类型的变量,则直接比较其存储的值是否相等,如果比较的是引用数据类型,则比较的是所指向的对象的地址值.二. equals不能作用于基本数据类型,它比较的是是否是同一个对象...原创 2021-07-02 12:52:05 · 1447 阅读 · 0 评论 -
GET和POST两种基本请求方法的区别
要想搞明白这两种方式的区别,首先要明白这两种请求方式是什么,干嘛的以及HTTP报文格式。因为这些从根本上限制了两者的区别。一、HTTP请求的8种基本方法HTTP 请求一共有八种方法,其中HTTP 1.0 定义了三种,HTTP 1.1 新定义了5种方法HTTP 1.0 定义了三种请求方法:GET,POST和HEAD方法HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法序号 方法 描述 1 GET .原创 2021-03-27 18:05:14 · 1209 阅读 · 0 评论 -
Java最全面试题
这篇文章是我从gitee.com上面转载的,如果觉得不错,可以去给大佬star一下。收集这些也不容易。https://gitee.com/XuanYuanXiaoJian/java_interview_questions/blob/master/%E9%9D%A2%E8%AF%95%E7%9B%B8%E5%85%B3.txt一、Java 基础1.JDK 和 JRE 有什么区别? JDK...原创 2019-05-15 22:33:26 · 3364 阅读 · 0 评论 -
2021最新Java常见面试题及答案汇总
Java最新常见面试题 + 答案汇总原文地址:https://blog.csdn.net/sufu1065/article/details/880510831、面试题模块汇总面试题包括以下十九个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM转载 2021-03-24 12:49:06 · 1404 阅读 · 0 评论