![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 90
Archie_java
求知若饥,虚心若愚(stay hungry,stay foolish)
好记性不如烂笔头
展开
-
数据结构与算法学习笔记
散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。原创 2023-10-08 21:48:00 · 260 阅读 · 0 评论 -
Netty常见面试题 与 答案
Netty基础知识什么是Netty?Netty 是一款用于高效开发网络应用的 NIO 网络框架,它大大简化了网络应用的开发过程;封装了JDK底层的NIO模型,提供高度可用的API,用于快速开发高性能服务端和客户端;精心设计的 Reactor 线程模型支持高并发海量连接;自带编解码器解决拆包和粘包问题,用户只关心业务逻辑即可;自带各种协议栈,让你处理任何一种通用协议几乎都不用亲自动手。Netty对比Java NIO有哪些优势?易用性:使用 JDK NIO 编程需要了解很多复杂的原创 2021-11-24 22:16:28 · 895 阅读 · 0 评论 -
MySQL常见面试题与答案
存储引擎InnoDB的主要特点是什么?MySQL5.5版本之后的默认存储引擎;支持事务;支持行级锁;支持MVCC;支持聚集索引方式存储数据。InnoDB与MyISAM的区别?存储引擎MyISAMInnoDB存储结构MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义,.MYD 为数据文件,.MYI 为索引文件。InnoDB是由.frm文件、表空间(分为独立表空间或者共享表空间)和日志文件(redo log)组成。存储空间可被压缩,存储空间较小。翻译 2021-11-22 20:06:52 · 196 阅读 · 0 评论 -
Redis常见面试题与答案
Redis的基本数据类型Redis有哪些常用的数据类型?String:字符串(最常用的缓存)Hash:哈希(保存对象)List:有序列表(消息队列)Set:无序集合(抽奖、点赞、求交集、并集、差集)Zset:有序集合(热门排行榜)BitMap:位图(统计用户在线状态、活跃用户数、签到等)HyperLogLog:基数统计(统计网站UV)Geospatial:地理空间(地理位置相关查询与计算)String的底层结构是什么?是一种叫做sds的数据结构(simple dynamic st翻译 2021-11-21 16:57:51 · 379 阅读 · 0 评论 -
Dubbo常见面试题与答案
Dubbo的基础知识Dubbo的核心架构是怎样的?Registry:注册中心。 负责服务地址的注册与查找,服务的 Provider 和 Consumer 只在启动时与注册中心交互。注册中心通过长连接感知 Provider 的存在,在 Provider 出现宕机的时候,注册中心会立即推送相关事件通知 Consumer;Provider:服务提供者。 在它启动的时候,会向 Registry 进行注册操作,将自己服务的地址和相关配置信息封装成 URL 添加到 ZooKeeper 中;Cons翻译 2021-11-21 16:53:56 · 320 阅读 · 0 评论 -
Spring、SpringBoot常见面试题与答案
SpringSpring Bean 的作用域有哪些?它的注册方式有几种?Spring 容器中管理一个或多个 Bean,这些 Bean 的定义表示为 BeanDefinition 对象,具体包含以下重要信息:Bean 的实际实现类;Bean 的引用或者依赖项;Bean 的作用范围;singleton:单例(默认);prototype:原型,每次调用bean都会创建新实例;request:每次http请求都会创建新的bean;session:同一个http session共享一个bean翻译 2021-11-21 16:51:58 · 406 阅读 · 0 评论 -
JVM面试题与答案
JVM内存布局JVM在内存布局上可以分为哪些区域?堆(线程共享):GC的主要回收地,包含几乎所有的实例对象、字符串常量池;元空间(线程共享):在本地内存分配,包含类元信息、字段、静态属性、方法、常量等;虚拟机栈(线程私有):是描述Java方法执行的内存区域;本地方法栈(线程私有):本地方法栈为Native方法服务,线程调用本地方法时,会进入一个不再受JVM约束的世界;程序计数器(线程私有):程序计数器用来存放执行指令的偏移量和行号指示器等,线程执行或恢复都要依赖程序计数器。垃圾回收什么样翻译 2021-11-21 16:48:58 · 145 阅读 · 0 评论 -
Java多线程面试题与答案
线程线程与进程的区别是什么?进程指的是应用程序在操作系统中执行的副本(系统分配资源的最小单位),线程是程序执行的最小单位;进程使用独立的数据空间,而线程共享进程的数据空间。线程状态图多线程会带来哪些性能问题?调度开销,一般线程数往往大于CPU核心数,这样操作系统再执行线程时就会出现上下文切换,从而产生一定性能开销;协作开销,为了保证线程之间共享变量的线程安全,有可能会禁用编译器和CPU的重排序等优化,还可能会频繁的将工作内存刷新到主内存,主内存再同步给工作内存,这些开销都是单线程下不存翻译 2021-11-21 16:45:31 · 230 阅读 · 0 评论 -
Java基础面试题与答案
八种基本数据类型以及包装类八种基本数据类型默认值?大小?范围区间?包装类的缓存区间?序号类型名称默认值大小最小值最大值包装类缓冲区间1booleanfalse1B0(false)1(true)Boolean无2byte(byte)01B-128127Byte-128 ~ 1273char‘\u0000’2B‘\u0000’‘\uFFFF’Character(char)0 ~ (char)1274short(s翻译 2021-11-21 16:43:49 · 222 阅读 · 0 评论 -
MySQL常见面试题与答案
文章目录存储引擎InnoDB的主要特点是什么?InnoDB与MyISAM的区别?查询MySQL执行一次SQL需要经过哪些流程?为什么MySQL 8.0默认关闭了缓存开启?EXPLAIN如何使用?索引MySQL索引默认用哪种数据结构?优点是什么?索引为什么不用平衡二叉树?如果用Hash索引会有什么问题?聚簇索引和非聚簇索引的区别?什么是最左前缀原则?什么是覆盖索引?为什么MySQL选择B+Tree索引而MongoDB却选择了B-Tree索引?事务ACID分别指什么?事务并发下会有哪些问题?事务的隔离级别有哪些原创 2021-11-15 23:22:46 · 198 阅读 · 0 评论 -
Java面试题大全
一、Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可原创 2021-11-05 23:30:48 · 732 阅读 · 0 评论 -
Java面试题整理(附参考答案)
1、面向对象的特征有哪些方面?抽象:将同类对象的共同特征提取出来构造类。继承:基于基类创建新类。封装:将数据隐藏起来,对数据的访问只能通过特定接口。多态性:不同子类型对象对相同消息作出不同响应。2、访问修饰符public,private,protected,以及不写(默认)时的区别?protected 当前类,同包,异包子类。3、String 是最基本的数据类型吗?答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、bo原创 2021-11-05 23:54:27 · 1333 阅读 · 0 评论 -
常用的设计模式
一、软件设计模式的几种分类:1.1. 创建型创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式。1.2. 结构型用于帮助将多个对象组织成更大的结构。结构型模式主要有适配器模式adapter、桥接模式****bridge、组合器模式component、装饰器模式decorator、门面模式、亨元模式flyweight和代理原创 2021-11-01 20:56:05 · 322 阅读 · 0 评论 -
TCP/IP协议详解
从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。一、 计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开原创 2021-10-29 21:14:53 · 1079 阅读 · 0 评论 -
Shiro介绍及主要流程
Shiro介绍及主要流程什么是ShiroApache Shiro是一个强大且灵活的开源安全框架,易于使用且好理解,撇开了搭建安全框架时的复杂性。Shiro可以帮助我们做以下几件事:认证使用者的身份提供用户的访问控制,比如:决定一个用户是否被授予某个特定的安全角色决定用户是否允许做某件事可以在任何环境中使用Session API,不在局限于web或是EJB容器中可以在认证,访问控制或是session的生命周期的期间中对特定事件产生反应可以整合多个数据源的用户安全数据到一个统一的用户视图中原创 2021-08-11 23:29:03 · 226 阅读 · 0 评论 -
Collections.synchronizedList使用
Collections.synchronizedList使用1.SynchronizedList类具体代码: static class SynchronizedList<E> extends SynchronizedCollection<E> implements List<E> { private static final long serialVersionUID = -7754090372962971524L;原创 2021-10-28 22:56:10 · 970 阅读 · 0 评论 -
synchronized 锁升级过程
synchronized 锁升级过程就是其优化的核心:偏向锁 -> 轻量级锁 -> 重量级锁class Test{ private static final Object object = new Object(); public void test(){ synchronized(object) { // do something } } }每个对象创建时都有各自的原创 2021-10-28 22:30:46 · 3896 阅读 · 2 评论 -
Java面试——RabbitMQ系列总结
1.RabbitMQ是什么?RabbitMQ是一款开源的,Erlang编写的,基于AMQP(高级消息队列协议)协议的消息中间件。2.为什么要使用消息队列?从本质上来说是因为互联网的快速发展,业务不断扩张,促使技术架构需要不断的演进。从以前的单体架构到现在的微服务架构,成百上千的服务之间相互调用和依赖。从互联网初期一个服务器上有 100 个在线用户已经很了不得,到现在坐拥10亿日活的微信。此时,我们需要有一个「工具」来解耦服务之间的关系、控制资源合理合时的使用以及缓冲流量洪峰等等。因此,消息队列原创 2021-10-25 23:03:09 · 207 阅读 · 0 评论 -
spring三种注入方式
设置Spring的作用域或者使用枚举值设置单例和多里使用场景自动注入@Primary一个接口有多个实现被spring管理吗,在依赖注入式,spring会不知道注入哪个实现类就会抛出NoUniqueBeanDefinitionException异常使用@Primary 来告诉Spring 注入哪个实现类Qualifier@ComponentScan不同的配置对性能的影响优化bean配置对spring应用程序的性能影响在Spring中我们可以通过设置哦组件的扫描范围来简化jav原创 2021-10-23 00:03:27 · 924 阅读 · 0 评论 -
HTTP 必备干货学习,一篇HTTP入门 不收藏都可惜!
文章目录????前言HTTP 必备干货学习,程序员不懂网络怎么行HTTP 协议五个特点:网络结构图解HTTP概述????️????基于 HTTP 的系统的组件客户端:用户代理网络服务器代理HTTP 的基本方面HTTP 很简单HTTP 是可扩展的HTTP 是无状态的,但不是无会话的HTTP 和连接HTTP可以控制什么HTTP 流HTTP 消息请求响应基于 HTTP 的 APIHTTP 的演变万维网的发明HTTP/0.9 – 单行协议HTTP/1.0 – 构建可扩展性HTTP/1.1 – 模块化的协议超过21原创 2021-10-21 19:36:39 · 1736 阅读 · 0 评论 -
事务及事务隔离级别
什么是事务事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状态。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)的缩写,这四种状态的意思是:1、原子性即不可分割,事务要么全部被执行,要么全部不执行。如果事务的所有子事务全部提交成功,则所有的数据库操作被提交,数据库状态发生变化;如果有子事务失败原创 2021-10-19 23:32:30 · 336 阅读 · 0 评论 -
HTTP 学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜
作为一名程序员,可能多数人都偏向于后端敲代码,但是关于Web的知识可千万不能忘呀!还有对网络协议感兴趣的小伙伴,这篇HTTP基础知识入门对你也很有帮助,可以了解HTTP的一整套流程所以本篇博客就来重拾HTTP的基础知识,最不济看完也要入门吧!!!文章可能会理论偏多,所以看不完的记得!要不然以后就找不到了哦~本文会从HTTP的基本概述、演变历史、缓存、Cookie、跨源资源共享、消息、会话和连接管理等方面进行一个基本的介绍有些地方可能介绍的不够深刻,想单独了解某一块的还需要自己进行深入了解啦!转载 2021-10-17 23:04:13 · 736 阅读 · 0 评论 -
鉴权必须了解的5个知识点:cookie,session,token,jwt,单点登录
从状态说起[HTTP 无状态]我们知道,HTTP是无状态的,也就是说,HTTP请求方和响应方间无法维护状态,都是一次性的,它不知道前后的请求都发生了什么但有的场景下,我们需要维护状态,最常见的,一个用户登录微博,发布,关注,评论,都是应该在登录后的用户状态下的[标记]在学校或公司,入学入职那一天起,会录入你的身份、账户信息,然后给你发个卡,今后在园区内,你的门禁、打卡、消费都只需要刷这张卡[前端存储]这就涉及一发,一存,一带,发好办,登录接口直接返回给前端,存储就需要前端想办法了,前提是,你要原创 2021-10-18 22:32:43 · 271 阅读 · 0 评论 -
Java面试——Redis系列总结
文章目录:1.什么是Redis?2.为什么要用 Redis / 为什么要用缓存?3.Redis为什么这么快?4.Redis都有哪些数据类型?5.什么是Redis持久化?Redis 的持久化有哪些实现方式?6.什么是Redis事务?7.谈谈你对Redis集群方案——哨兵模式 的理解8.Redis主从复制的原理是什么?9.Redis如何实现分布式锁?10.Redis中的缓存穿透、缓存击穿、缓存雪崩是什么?1.什么是Redis?Redis(Remote Dictionary Serve原创 2021-10-17 23:08:36 · 302 阅读 · 0 评论 -
Java并发面试宝典,并发相关面试再也难不倒你!
1、在java中守护线程和用户线程的区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon是为其他线程提供服务,如果全部的User Thread已经结束,Da原创 2021-10-16 22:06:48 · 219 阅读 · 0 评论 -
Java线程池七个参数详解
java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。下面会对这7个参数一一解释。一、corePoolSize 线程池核心线程大小线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadT原创 2021-10-16 21:51:34 · 1194 阅读 · 1 评论 -
Java面试——SpringMVC系列总结
文章目录:1.什么是Spring MVC?2.Spring MVC的主要组件有哪些?3.请描述一下Spring MVC的工作流程?4.MVC是什么?MVC设计模式的好处有哪些5.拦截器Interceptor与过滤器Filter有什么区别?6.Spring MVC中常用注解有哪些?7.Spring MVC如何设定重定向和转发?8.Spring MVC如何解决POST请求中文乱码问题,GET请求又如何处理呢?1.什么是Spring MVC?Spring MVC是一个基于Java,实现了M原创 2021-10-12 23:35:02 · 145 阅读 · 0 评论 -
Java面试——SpringMVC系列总结
文章目录:1.什么是Spring MVC?2.Spring MVC的主要组件有哪些?3.请描述一下Spring MVC的工作流程?4.MVC是什么?MVC设计模式的好处有哪些5.拦截器Interceptor与过滤器Filter有什么区别?6.Spring MVC中常用注解有哪些?7.Spring MVC如何设定重定向和转发?8.Spring MVC如何解决POST请求中文乱码问题,GET请求又如何处理呢?1.什么是Spring MVC?Spring MVC是一个基于Java,实现了M原创 2021-10-09 21:15:23 · 133 阅读 · 0 评论 -
Java面试——MyBatis系列总结
文章目录:1.MyBatis是什么?2.JDBC编程有哪些缺陷?MyBatis又是如何改进的?3.MyBatis与Hibernate的区别在哪?4.MyBatis的优缺点5.请说说MyBatis的工作原理6.MyBatis的架构设计是怎样的?7.#{}和${}的区别8.模糊查询like语句该怎么写9.如何获取生成的主键?10.当实体类中的属性名和表中的字段名不一样怎么办?11.什么是MyBatis的接口绑定?有哪些实现方式?12.使用MyBatis的mapper接口调用时有哪些要求?原创 2021-10-03 22:03:46 · 243 阅读 · 0 评论 -
Java面试——Spring系列总结
文章目录:1.什么是Spring?2.Spring由哪些模块组成?3.Spring中都用到了哪些设计模式?4.什么是Spring IOC容器?有什么作用?5.Spring IoC的实现机制6.BeanFactory 和 ApplicationContext有什么区别?7.什么是Spring的依赖注入(Dependency Injection)?8.什么是Spring AOP?9.Spring AOP 与 AspectJ AOP 有什么区别?AOP 有哪些实现方式?10.解释一下Sprin原创 2021-10-04 16:14:53 · 660 阅读 · 0 评论