面试典籍
文章平均质量分 92
李莲花*
一勤万事通 一懒万事空
展开
-
@Redis高级(数据删除淘汰策略,主从复制,哨兵模式,集群,缓存预热,雪崩,击穿,穿透)
在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露针对过期数据要进行删除的时候都有哪些删除策略呢?原创 2022-09-08 11:57:01 · 420 阅读 · 0 评论 -
@Redis(简介,数据结构,操作指令,持久化RDB和AOF)
概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。特征:(1)数据间没有必然的关联关系;(2)内部采用单线程机制进行工作;(3)高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。原创 2022-09-07 18:40:10 · 450 阅读 · 0 评论 -
设计模式-迭代器模式
迭代器模式提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。原创 2022-09-07 12:15:44 · 89 阅读 · 0 评论 -
@设计模式-状态模式
对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。原创 2022-09-07 11:56:00 · 130 阅读 · 0 评论 -
@设计模式-组合模式
又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。原创 2022-09-07 11:42:48 · 113 阅读 · 0 评论 -
@设计模式-桥接模式
试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一个维度上新增一个具体实现都要增加多个子类。为了更加灵活的设计系统,我们此时可以考虑使用桥接模式。桥接模式将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。原创 2022-09-07 10:58:10 · 92 阅读 · 0 评论 -
@设计模式-装饰器模式
允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。原创 2022-09-07 10:31:22 · 123 阅读 · 0 评论 -
@设计模式-观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。原创 2022-09-07 10:11:33 · 138 阅读 · 0 评论 -
@设计模式-适配器模式
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。原创 2022-09-07 09:50:26 · 135 阅读 · 0 评论 -
@设计模式-工厂模式
什么是工厂模式?我们在创建对象时不会对客户端直接暴露创建逻辑,而是 通过使用一个共同的接口根据不同的条件来指向具体想要创建的对象。原创 2022-09-06 19:56:56 · 231 阅读 · 0 评论 -
@一文搞懂设计模式--模板模式
模板模式实际上是在父类中定义处理流程的框架,在子类中具体实现具体处理的模式。转载 2022-09-06 19:23:54 · 92 阅读 · 0 评论 -
@设计模式-代理模式
在软件开发中,也有一种设计模式可以提供与代购网站类似的功能。由于某些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称之为“代理”的第三者来实现间接访问,该方案对应的设计模式被称为代理模式。原创 2022-09-06 19:09:39 · 194 阅读 · 0 评论 -
@一文搞懂设计模式--单例模式
单例模式的核心思想十分的简单,在开发一个系统的时候,为了保证系统中的数据一致,我们会希望某些特殊的类在整个系统的运行过程中只能存在一个实例。最简单的实现方式就是将这个要求交给开发者,让开发者在开发的时候多加注意。转载 2022-09-06 19:08:27 · 88 阅读 · 0 评论 -
@设计模式-单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。原创 2022-09-06 19:06:52 · 167 阅读 · 0 评论 -
@Spring应用(简介,注解,IOC,AOP,事务,模板对象)
Spring应用(简介,注解,IOC,AOP,事务,模板对象),案例操作实现原创 2022-09-04 12:20:03 · 137 阅读 · 0 评论 -
@Spring MVC面试题
Spring MVC是spring框架的一部分。 Spring MVC 是当前最优秀的 MVC 框架。Spring MVC 下我们⼀般把后端项⽬分为 Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台⻚⾯),将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。原创 2022-09-04 12:13:46 · 211 阅读 · 0 评论 -
@SpringMVC
Spring MVC是一种基于Java实现MVC架构的轻量级框架。通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。原创 2022-09-04 12:11:09 · 344 阅读 · 0 评论 -
@springcloud 下(feign,网关,配置中心,消息总线)
Feign的作用:不再使用拼接URL的方式实现远程调用,以接口调用的方式实现远程调用,简化了远程调用的实现方式,增强了远程调用的功能,例如:增加了负载均衡、熔断、压缩、日志启用。原创 2022-09-04 12:00:42 · 519 阅读 · 0 评论 -
@springcloud 上(简介,注册中心,负载均衡,熔断器)
大家谈起的微服务,大多来讲说的只不过是种架构方式。其实现方式很多种:Spring Cloud,Dubbo,华为的Service Combo,Istio 。那么这么多的微服务架构产品中,我们为什么要用Spring Cloud?因为它后台硬、技术强、群众基础好,使用方便;原创 2022-09-04 10:07:04 · 373 阅读 · 0 评论 -
@SpringBoot自定义启动器
Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,大概意思就是说starter是一种对依赖的synthesize(合成)。starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的starter是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异原创 2022-09-03 18:27:52 · 95 阅读 · 0 评论 -
@springboot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。原创 2022-09-03 18:23:23 · 285 阅读 · 0 评论 -
SpringBoot自定义启动器
Spring Boot自定义启动器简介和实例操作原创 2022-09-03 11:48:51 · 648 阅读 · 0 评论 -
@Spring面试题
分类阐述Spring框架80+道面试题目,内容繁多却又言简意赅。每道题目由作者多方查阅资料二次整理而成,阔揽绝大多数面试考察点,应对Spring面试这一个就够了!原创 2022-09-03 10:18:42 · 568 阅读 · 0 评论 -
如何保证 Redis 和 MySQL 数据一致性?| 大别山码将
为什么会出现Redis 和 MySQL 不一致问题?Redis 和 MySQL 搭配使用在什么地方?缓存量大但又不常变化的数据。也就是说,当我们在使用 Redis 和 MySQL 的时候,搭配使用的地方就是,数据量比较大,但是这个数据不会经常的变换的位置,比如说,某些商品信息的评论数据,也就是让 Redis充当 MySQL 的缓存服务器,而要实现的目标也是比较简单的,当客户要查询数据的时候,先访问我们的 Redis,当 Redis里面没有数据的时候,从 MySQL 中读取数据,并且存储到 Redi原创 2021-09-29 15:42:22 · 102 阅读 · 0 评论 -
Linux常用命令典籍.软件配置安装实例 | 大别山码将
一、基本命令1.1 关机和重启关机 shutdown -h now 立刻关机 shutdown -h 5 5分钟后关机 poweroff 立刻关机重启shutdown -r now 立刻重启shutdown -r 5 5分钟后重启reboot 立刻重启1.2 帮助命令--help命令 shutdown --help: ifconfig --help转载 2021-09-28 10:03:04 · 609 阅读 · 0 评论 -
数据库的数据太多了怎么办?特别大的访问量到数据库上怎么办?分库分表?| 大别山码将
数据库的数据太多了怎么办,一个表有一亿个数据(特别大的访问量到数据库上)?分库分表?Mysql的主从复制1.使用优化查询的方法1.使用索引应尽量避免全表扫描,首先应考虑在 where 及 order by ,group by 涉及的列上建立索引。2.优化 SQL 语句2.1 通过 explain(查询优化神器)用来查看 SQL 语句的执行效果, 可以帮助选择更好的索引和优化查询语句, 写出更好的优化语句。 通 常我们可以对比较复杂的尤其是涉及到多表的 SELECT 语句, 把关 键字 EXPLAI原创 2021-09-27 18:38:57 · 4543 阅读 · 0 评论 -
Hashmap底层解析.面试连环问 | 大别山码将
@Hashmap? hashmap 线程安全吗?能变成线程安全吗?不安全,会出现什么现象?HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的。HashMap是线程不安全的。多线程环境中推荐ConcurrentHashMap。JDK1.8之前:HashMap 底层数据结构是 数组和链表也就是 散列表,它整合了数组的快速索引和链表的动态扩容这两种数据结构的优原创 2021-09-27 18:30:49 · 134 阅读 · 0 评论 -
事务的ACID四大特性·隔离级别·及MVCC保证事务隔离性 | 大别山码将
事务:事务最经典也经常被拿出来说例⼦就是转账了。假如⼩明要给⼩红转账1000元,这个转账会涉及到两个关键操作就是:将⼩明的余额减少1000元,将⼩红的余额增加1000元。万⼀在这两个操作之间突然出现错误⽐如银⾏系统崩溃,导致⼩明余额减少⽽⼩红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。事务的四大特性(ACID):原⼦性: 事务的原⼦性确保动作要么全部完成,要么完全不起作⽤;⼀致性: 执⾏事务前后,数据保持⼀致,多个事务对同⼀个数据读取的结果是相同的;隔离性:原创 2021-09-25 23:04:18 · 745 阅读 · 0 评论 -
JUC多线程面试典籍30+ | 大别山码将
JUC什么是线程和进程?进程:进程是程序的⼀次执⾏过程,是系统运⾏程序的基本单位,因此进程是动态的。系统运⾏⼀个程序即是⼀个进程从创建,运⾏到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了⼀个 JVM 的进程,⽽ main 函数所在的线程就是这个进程中的⼀个线程,也称主线程。程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存,在指令进行运行过程中还需要用到磁盘,网络等设备。进程就是用来加载指令,管理内存,管理IO的当一个程序被运原创 2021-09-24 23:36:37 · 204 阅读 · 0 评论 -
JVM虚拟机面试典籍30+ | 大别山码将
JVM面试题总结介绍java内存区域(运行时数据区)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n6UJczTB-1632497218260)(C:\Users\LENOVO-LX\AppData\Roaming\Typora\typora-user-images\image-20210822155357541.png)]线程共享的:方法区,堆,直接内存 (⾮运⾏时数据区的⼀部分)线程私有的:虚拟机栈,程序计数器,本地方法栈Java 虚拟机在执⾏ Java 程序的原创 2021-09-24 23:29:14 · 239 阅读 · 0 评论 -
Redis数据库面试典籍30+ | 大别山码将
Redis什么是Redis?简单来说 Redis 就是⼀个使⽤ C 语⾔开发的数据库(非关系型的数据库),不过与传统数据库不同的是 Redis 的数据是存在内存中的,也就是它是内存数据库,所以读写速度⾮常快,因此 Redis 被⼴泛应⽤于缓存⽅向。另外,Redis除了做缓存之外,Redis也经常⽤来做分布式锁,甚⾄是消息队列。Redis提供了多种数据类型来⽀持不同的业务场景。Redis还⽀持事务 、持久化、Lua 脚本、多种集群⽅案。非关系型数据库:非结构化存储,高并发下读写能力强大,易拓展,r原创 2021-09-24 23:24:41 · 216 阅读 · 0 评论 -
Mysql数据库面试典籍30+ | 大别山码将
Mysql什么是Mysql?MySQL 是⼀种关系型数据库, 是开源免费的,并且⽅便扩展,在Java企业级开发中⾮常常⽤。MySQL 是一个真正的多用户、 多线程 SQL 数据库服务器。它能够快速、有效和安全的处理大量的数据。相对于 Oracle 等数据库来说,MySQL 的使用是非常简单的。MySQL 主要目标是快速、健壮和易用。MySQL是开放源代码的,因此任何⼈都可以下载并根据个性化的需要对其进⾏修改。MySQL 的跨平台性,MySQL 不仅可以在 Windows 系列的操作系统上运行,还可原创 2021-09-24 23:21:13 · 498 阅读 · 0 评论 -
SpringBoot框架面试典籍30+ | 大别山码将
SpringBoot什么是SpringBoot?Spring Boot基于Spring,是一个非常好的微服务开发框架,你可以使用它快速的搭建起一个系统,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。spring大家都知道,boot是启动的意思。所以,spring boot其实就是一个启动spring项目的一个工具而已。在任何的spring项目中,你都会找到Java配置或一大堆的XML配置文件,很多配置都是复杂并且模板化,降低了开发效率还提高了我们开发的成本。而在springboot中原创 2021-09-24 23:13:55 · 296 阅读 · 0 评论 -
Mybatis框架面试典籍30+ | 大别山码将
Mybatis什么是MyBatis?优缺点及适用场景Mybatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作, 开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动.创建连接.创 建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql执 行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映 射成数据库中的记录原创 2021-09-24 23:11:48 · 94 阅读 · 0 评论 -
Spring框架面试典籍30+ | 大别山码将
Spring什么是Spring框架Spring 是⼀种轻量级(从大小与开销两方面)开发框架,目的是用于简化企业应用程序的开发,它使得开发者只需要 关心业务需求。常见的配置方式有三种:基于 XML 的配置.基于注解的配置. 基 于 Java 的配置Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。从大小与开销两方面而言Spring都是轻量级的。通过控制反转(IoC)的技术达到松耦合的目的;控制反转(依赖注入)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关原创 2021-09-24 23:09:15 · 179 阅读 · 0 评论 -
Java集合面试典籍30+ | 大别山码将
Java集合[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FP1BrsZN-1632495287987)(C:\Users\LENOVO-LX\AppData\Roaming\Typora\typora-user-images\image-20210902084552072.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdST05tK-1632495287998)(C:\Users\LENOVO-LX\AppData\Roa原创 2021-09-24 22:56:13 · 200 阅读 · 0 评论 -
Java基础面试典籍60+ | 大别山码将
java基础面向对象和面向过程的区别面向过程:比面向对象性能高;面向过程以步骤划分问题,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了(蛋炒饭)面向对象:比面向过程易维护,易复用,易拓展;面向对象以功能划分问题,是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(盖浇饭)面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、原创 2021-09-24 22:45:29 · 1115 阅读 · 0 评论