Java面试
文章平均质量分 89
Java面试相关题目、知识点整理
CaptainHzc
记录学习
展开
-
WEB相关
1.常用的状态码2XX 成功200 ok(请求成功)是最常见的成功状态码,表示一切正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。204 no content (请求成功,但是没有结果返回)206 partial content (客户端请求一部分资源,服务端成功响应,返回一范围资源)3XX 重定向类状态码表示客户端请求的资源发送了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。301 move permanently (永久性重定向)说明请求的资原创 2021-08-19 09:29:59 · 715 阅读 · 0 评论 -
git相关
文章目录1、git框架介绍2、列举工作中常用的几个git命令?3、提交时发生冲突,如何解决?4、新建git功能分支的步骤?5、 说明GIT合并的两种方法以及区别。6、Git提交代码的步骤1、git框架介绍Workspace:开发者工作区Index / Stage:暂存区/缓存区Repository:仓库区(或本地仓库)Remote:远程仓库2、列举工作中常用的几个git命令?新增文件的命令:git add file或者git add .提交文件的命令:git commit –m或者git原创 2021-08-20 11:06:56 · 89 阅读 · 0 评论 -
软件测试相关
1. 测试的生命周期1、测试计划任务的安排与制定测试的方法2、测试的分析到底如何测试用什么方法测试3、测试的执行行动4、测试报告测试执行结果的总结5、测试总结项目上线后测试人员本次的测试总结测试方法的不足地方,为下次做准备2.测试的过程单元测试UT单元测试是针对软件基本组成单元(软件设计的最小单元)来进行正确性检验的测试工作,单元测试的目的是检测软件模块《详细设计说明》(LLD)的符合程度。集合测试IT集合测试是在单元测试的基础上,将所有模块按照概要设计要求组装成子系统或原创 2021-08-19 22:26:03 · 163 阅读 · 0 评论 -
微服务(springcloud)
微服务1.微服务有哪些优缺点?2.作为注册中心,Zookeeper和Eureka有什么区别?3.Service Mesh了解过吗?4.微服务有哪些特点?5.单片,SOA 和微服务架构有什么区别?6.Spring Cloud 解决了哪些问题?7.服务注册和发现是什么意思?Spring Cloud 如何实现?8.Spring Cloud 和dubbo的区别?9.什么是微服务?10.微服务之间是如何通讯的?11.请谈谈对SpringBoot 和SpringCloud的理解12.什么是服务原创 2021-08-19 09:00:06 · 135 阅读 · 0 评论 -
Servlet
Servlet1.Servlet的生命周期?2.Servlet和JSP的区别?3.Servlet的基本架构4.什么情况下调用doGet()和doPost()?5.页面间对象传递的方法6.四种会话跟踪技术7.Request对象的主要方法8.如何配置Servlet的初始化参数?9.如何读取Servlet的初始化参数?10.init(ServletConfig)方法执行次数11.init(ServletConfig)方法与异常参考链接1.Servlet的生命周期?—根据Servle原创 2021-08-19 09:05:31 · 83 阅读 · 0 评论 -
linux命令
文章目录1.vim有几种工作模式?2.find 命令如何使用?3.如何在 /usr 目录下找出大小超过 10MB 的文件?4.如何在 /var 目录下找出 90 天之内未被访问过的文件?5.如何在 /home 目录下找出 120 天之前被修改过的文件?6.在整个目录树下查找文件 “core” ,如发现则无需提示直接删除它们?7.ls 命令8.df 命令9.rm 命令10.mv 命令11.cp 命令12.tail 命令13.grep 命令14.sed 命令15.用 sed 命令将指定的路径 /usr/loca原创 2021-08-14 16:51:18 · 260 阅读 · 0 评论 -
一致性hash算法
1.hash算法哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。2.普通的hash算法在分布式应用中的不足在分布式的存储系统中,要将数据存储到具体的节点上,如果采用普通的hash算法进行路由,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。3.一致性hash原创 2021-08-07 11:25:10 · 125 阅读 · 0 评论 -
LRU原理及实现
最近最少使用页面置换算法已经很久没有使用的页面有可能在未来一段时间内仍不会被使用。这个思想揭示了一个可以实现的算法:在缺页中断时,置换未使用时间最长的页面。方法一:哈希表 + 双向链表算法双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。哈希表(HashMap),通过缓存数据的键映射到其在双向链表中的位置。先使用哈希表进行定位,找出缓存项在双向链表中的位置,随后将其移动到双向链表的头部,即可在 O(1)的时间内完成 get 或者原创 2021-08-06 21:23:21 · 160 阅读 · 0 评论 -
消息队列kafka
文章目录1.什么是消息队列2. 消息队列优缺点?队列的消息传递模式?Kafka的特性:Kafka的使用场景:Kafka 基础架构5.kafka follower如何与leader同步数据?分区中的HW、LW、LEOkafka中leader挂掉后重新选举leader过程简介ISR、AR又代表什么?ISR的伸缩又指什么HW、LEO、LSO、LW等分别代表什么?有哪些情形会造成重复消费?那些情景下会造成消息漏消费?流程如何保存数据消息的结构对于旧数据的删除策略如何消费数据14.Kafka中的消息是否会丢失和重复消原创 2021-07-25 22:35:10 · 636 阅读 · 1 评论 -
Nginx
Nginx1.请解释一下什么是 Nginx ?2.为什么要用Nginx?3.Nginx怎么处理请求的?4.Nginx的优缺点?5.Nginx应用场景?6.使用“反向代理服务器”的优点是什么?7.列举Nginx服务器的最佳用途。8.请解释Nginx如何处理HTTP请求。9.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?10.在Nginx中如何在URL中保留双斜线?11.ngx_http_upstream_module的作用是什么?12. fastcgi 与 cgi 的区别原创 2021-07-23 14:48:15 · 150 阅读 · 0 评论 -
springboot
Spring Boot1.什么是springboot2.Spring Boot 有哪些优点?3. 创建一个 Spring Boot Project 的最简单的方法是什么?4.Spring 和 SpringBoot 有什么不同?5.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?6.Spring Boot 中的监视器是什么?7.如何在 Spring Boot 中禁用 Actuator 端点安全性?8.怎么使用 Maven 来构建一个 SpringBoot 程序?9.S原创 2021-07-21 20:24:19 · 193 阅读 · 0 评论 -
spring
Spring1.什么是spring?2.使用Spring框架的好处是什么?3.Spring由哪些模块组成?4.Spring是怎么解决循环依赖的?5.Spring Boot手动装配有哪几种方式?6.Spring Boot自动配置原理7.谈谈自己对于Spring IOC的理解8.谈谈自己对于Spring AOP的理解9.Spring AOP和AspectJ AOP有什么区别?10.Spring中的bean的作用域有哪些?11.Spring中的单例bean的线程安全问题了解吗?12.Sp转载 2021-07-13 17:49:57 · 85 阅读 · 0 评论 -
操作系统复习
1.用户态和内核态的区别在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(也称为管态或核心态),操作系统在系统态运行——运行操作系统程序用户态(也称为目态),应用程序只能在用户态运行——运行用户程序在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将 CPU 的指令集分为特权指令和非特权指令两类。特权指令——在系统态时运行的指令对内存空间的访问范围基本不受限制,不仅能访问用户存储空转载 2021-07-11 11:23:43 · 222 阅读 · 0 评论 -
Netty
零拷贝传统 IO 问题传统的 IO 将一个文件通过 socket 写出File f = new File("helloword/data.txt");RandomAccessFile file = new RandomAccessFile(file, "r");byte[] buf = new byte[(int)f.length()];file.read(buf);Socket socket = ...;socket.getOutputStream().write(buf);内部工转载 2021-07-11 11:23:16 · 148 阅读 · 0 评论 -
设计模式复习
设计模式1.接口是什么?为什么要使用接口而不是直接使用具体类?2.设计模式六大原则?3.Java怎么实现单例模式?4.什么是代理模式?什么是动态代理?Java中动态代理有哪些实现方式?5.设计模式的类型6.说说你所熟悉或听说过的 j2ee 中的几种常用模式?7.简述一下你了解的 Java 设计模式(总结)8.适配器模式是什么?什么时候使用?9.适配器模式与装饰器模式有什么区别?10.适配器模式和代理模式之间有什么不同?11.什么是模板方法模式?试举例说明。12.OOP中的组合、聚合原创 2021-07-11 11:22:47 · 147 阅读 · 0 评论 -
Shiro
Shiro1.什么是shiro2.解释下Shiro的核心概念:Subject、SecurityManager、Realm3.Shiro的优点4.Shiro有哪些组件?5.说下Authentication 身份验证的流程6.Authorization 授权的方式和流程是怎样的?7.Cryptography 加密的过程是这样的?8.Realm 域如何使用?9.shiro拦截器的执行流程10.Session Manager 会话管理介绍一下参考资料1.什么是shiroShiro是一个原创 2021-07-11 11:22:05 · 92 阅读 · 0 评论 -
计算机网络
1.OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。1.1 物理层在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特原创 2021-07-11 11:21:01 · 224 阅读 · 0 评论 -
B树和B+树
1、B-树1.1 B-树概述B-树,这里的 B 表示 balance( 平衡),B-树是一种多路自平衡的搜索树。B-树允许每个节点有更多的子节点。B-树是专门为外部存储器设计的,如磁盘,它对于读取和写入大块数据有良好的性能,所以一般被用在文件系统及数据库中。一个m阶的B树具有如下几个特征:根结点至少有两个子女。每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m所有原创 2021-06-24 11:59:43 · 451 阅读 · 0 评论 -
Redis
1.什么是RedisRedis(Remote Dictionary Server) ,即远程字典服务,开源的高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来原创 2021-06-20 10:56:49 · 153 阅读 · 0 评论 -
Mybatis
1.什么是Mybatis1)MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,它内部封装了JDBC,开发时只需要关注sql语句本身,不需要花费精力去处理驱动,创建连接,创建statement等繁复过程。2)MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录,避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。3)通过xm文件或注原创 2021-05-12 14:35:06 · 253 阅读 · 0 评论 -
Mysql
1.SQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。举例:正常情况下username='test'且password='test'时,执行了sql语句select count(*) from admin where username = 'test' and password = 'test'但是当输入username="'or 1=1--"时,在java程序中String类型变量sql 为" selec原创 2021-05-07 17:44:01 · 382 阅读 · 0 评论 -
Java基础
1.面向对象四大特性封装、继承、多态、抽象1.1封装封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。好处:只能通过规定的方法访问数据。隐藏类的实例细节,方便修改和实现。访问修饰符:类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外原创 2021-05-01 10:45:26 · 499 阅读 · 0 评论 -
Java多态运行顺序
一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。两种实现方式:方法的重载(overload)重载指一个类中有多个同名的方法,但这些方法有着不同的参数(个数或者类型),返回类型可以相同也可以不同,因此编译时可以确定到底调用哪个方法,是一种原创 2021-04-30 16:09:43 · 452 阅读 · 1 评论 -
Java垃圾回收
1.回收位置以及对象Java堆中的对象和方法区中废弃的常量以及不再使用的类型。2.哪些垃圾需要回收如果某个对象已经不存在任何引用,那么它可以被回收。有两种方式:引用计数算法:引用计数算法是通过判断对象的引用数量来决定对象是否可以被回收。任何引用计数为0的对象实例可以被当作垃圾收集。缺点是很难解决对象之间相互循环引用的问题。可达性分析算法:可达性分析算法是通过判断对象的引用链是否可达来决定对象是否可以被回收。可达性分析算法是从离散数学中的图论引入的,程序把所有的引用关系看作一张图,通过一系列原创 2021-04-24 22:24:35 · 165 阅读 · 0 评论 -
Jvm
1.jvm内存结构分析 JVM 内存结构,主要就是分析 JVM 运行时数据存储区域,运行时内存模型,分为线程私有和共享数据区两大类:线程私有–线程私有的数据区包含程序计数器、虚拟机栈、本地方法区。共享数据区–所有线程共享的数据区包含Java堆、方法区,在方法区内有一个常量池。而 JVM 的优化问题主要在线程共享的数据区中:堆、方法区2.程序计数器有什么作用程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程所执行字节码的行号指示器,原创 2021-04-24 20:58:50 · 257 阅读 · 0 评论 -
T1、T2、T3三个线程顺序执行实现
T1、T2、T3三个线程顺序(环形)执行方法一:标志以及加锁操作package org.example1;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @Company Zhengzhou University (zzu) * @Author ZhiChao He原创 2021-04-23 16:29:23 · 551 阅读 · 0 评论