面试题
文章平均质量分 80
zeki豪
不知名程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简说 IOC&DI 和 注解 基本概念
文章目录IOCDI注解IOC和DI只是一种思想而Spring 是这个思想实现之一IOCIOC:控制反转,将手动创建对象的控制权交给IOC容器来管理DIDI:依赖注入,,将对象属性设值注解@Autowired: spring提供的,先从类型中找,若有多个相同类型,再从名称中找,都没则报错.@Value: spring提供的,完成属性或字段的注入@Resource: javaee提供的,先按名字找,再按类型找,都找不到则报错@Qualifier:很少用,依赖于Autowired一起用,指原创 2020-11-30 11:24:02 · 722 阅读 · 3 评论 -
如何使用java压测软件之jmeter
文章目录准备开搞准备下载地址https://jmeter.apache.org/进入bin目录,修改jmeter.properties文件中的语言支持为language=zh_CN,然后点击jmeter.bat启动软件(管理员运行)。为了测试,在项目中配置application.yml 设置最大并发值server: port: 8091 tomcat: threads: max: 10 #tomcat的最大并发值修改为10,接下来使用压测工具,对请求进行压原创 2021-02-25 19:57:13 · 146 阅读 · 0 评论 -
springcloud如何远程调用负载均衡之Feign(推荐)
文章目录介绍配置pom.xml启动类定义接口案例演示业务方法演示控制器演示前提参考:ribbon负载均衡实现,Feign默认集成了ribbon前提须知:nacos注册中心介绍 Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。配置在调用者服务上原创 2021-02-25 19:11:34 · 435 阅读 · 0 评论 -
springcloud如何使用Sentinel
文章目录介绍安装与启动配置pom.xmlapplication.yml流控模式直接模式关联模式链路模式流控效果介绍Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时原创 2021-02-26 18:19:10 · 563 阅读 · 0 评论 -
springcloud如何使用网关Gateway
文章目录入门介绍配置pom.xmlapplication.yml启动类过滤器自定义局部过滤全局过滤网关集成Sentinel | 自定义限流默认返回格式 | 自定义API分组限流入门介绍为微服务架构提供一种简单有效的统一的 API 路由管理方式在项目中右键新建模块,作为网关的模块配置pom.xml <!--gateway网关--> <dependency> <groupId>org.springframe原创 2021-02-27 21:10:52 · 369 阅读 · 0 评论 -
springcloud如何使用nacos
文章目录准备工作安装与启动配置pom.xml启动类application.yml效果图准备工作安装与启动下载地址: https://github.com/alibaba/nacos/releases下载zip格式的安装包,然后进行解压缩操作,此演示的Nacos Server版本是1.3.2进入解压后的目录cd nacos/bin 命令启动 (cmd命令)startup.cmd -m standalone打开浏览器输入http://localhost:8848/nacos,即可原创 2021-02-24 19:44:12 · 672 阅读 · 0 评论 -
springcloud如何使用消息中间件rocketMQ
文章目录安装与启动原理图安装与启动下载地址:http://rocketmq.apache.org/mq服务必须先启动name服务再启动broker服务才算能成(共2个)使用rocketmq-4.5.1.zip 解压到指定目录需要配置环境变量ROCKETMQ_HOME修改broker的配置文件进入\conf文件夹内 ,打开broker.conf,在最后下面添加以下代码enablePropertyFilter=truenamesrvAddr=127.0.0.1:9原创 2021-03-04 11:47:07 · 3261 阅读 · 0 评论 -
springcloud如何使用canal监听mysql数据库操作
文章目录配置pom.xmlapplication.yml前提须知:linux配置canalcanal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。配置pom.xml<dependency> <groupId>top.javatool</groupId> <artifactId>canal-spring-boot-starter</a原创 2021-03-09 21:20:46 · 1772 阅读 · 0 评论 -
springcloud如何使用seata解决分布式事务
文章目录逻辑图配置pom.xmlbootstrap.yml配置中心的配置文件逻辑图配置pom.xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> <version>2.2.2.RELEASE</version> <exclusi原创 2021-03-13 21:20:08 · 739 阅读 · 0 评论 -
关于springcloud对秒杀功能的实现讲解
分析与逻辑图介绍:秒杀功能涉及的技术有,mysql,redis,mq,websocket,currentHashmap本地标识符等用户通过网关访问秒杀接口,代码演示 @RequestMapping("/doSeckill") @RequireLogin public Result<String> doSeckill(int time, Long seckillId, HttpServletRequest request) {// 校验参数原创 2021-03-15 11:43:14 · 1022 阅读 · 0 评论 -
关于 TCP协议和HTTP关系 | TCP的三次握手和四次挥手
文章目录网络分层TCP/IP 与HTTPOSI模型TCP/IP模型TCP 和 UDP 的区别总结TCP的三次握手和四次挥手三次握手四次挥手网络分层TCP/IP 与HTTP目前存在的两种网络分层模型:OSI模型和TCP/IP模型。OSI模型一共分为七层,TCP/IP模型和OSI模型类似,但是只分为四层。OSI模型OSI的全程是Open Systems Interconncection,即开放系统互联,它由ISO(International Organization for Standardiza原创 2022-05-02 10:46:13 · 1650 阅读 · 0 评论 -
关于RocketMQ 如何保证信息不丢失 | 实现顺序消费 | 持久化机制
保证信息不丢失实现顺序消费持久化机制consumeQueue和IndexFile 相当于索引文件架构设计原创 2022-05-01 23:01:37 · 526 阅读 · 1 评论 -
关于mysql数据库三范式
文章目录第一范式第二范式第三范式第一范式列不可分。每一列都是不可分割的基本数据项。字段都是不可再分的原子属性,同时有一个主键第二范式首先要满足第一范式,非主键字段必须完全依赖于主键字段,不能只依赖于主键的一部分第三范式首先满足第二范式,非主键字段不能依赖于其他非主键字段,消除传递依赖,第三范式又可描述为:表中不存在可以确定其他非关键字的非关键字段。...原创 2022-05-01 18:30:03 · 1030 阅读 · 0 评论 -
关于redis持久化机制
Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复快照(snapshotting)持久化(RDB)AOF(append-only file)持久化混合方案很多时候我们需要持久化数据也就是将内存中的数据写入到硬盘里面,大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了防止系统故障而将数据备份到一个远程位置。Redis 不同于 Memcached 的很重要一点就是,Redis 支持持久化,而且支持两种不同的持久化操作。Redis 的一种持久化方式原创 2022-05-01 12:15:15 · 228 阅读 · 0 评论 -
AKA面经史
文章目录数据库的行锁,表级锁,什么时候出现,怎么避免,死锁项目中如何保证mq消息的不丢失和重复消费,深入红黑树和平衡二叉树的本质区别数据库和缓存一致性,如果保证,这样做会出现不一致性吗根据sql什么情况建立索引,什么时候会失效项目为啥不使用redis存储而使用mongodb存储数据Redis分布式的lua脚本伪代码讲解,加锁和释放锁,异常未释放锁怎么办HashMap和concurrentHashmap区别,讲解一下concurrenthashmapArrayList和LinkList的区原创 2022-04-25 17:04:42 · 1636 阅读 · 0 评论 -
关于redis 缓存 穿透 | 击穿 | 雪崩
文章目录缓存穿透缓存无效 key布隆过滤器缓存雪崩缓存穿透缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。举个例子:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库。缓存无效 key如果缓存和数据库都查不到某个 key 的数据就写一个到 Redis 中去并设置过期时间,具体命令如下: SET key value EX 10086 。这种方式可以解决请求的 key 变化不频繁的情况,如果黑客恶意攻击,原创 2022-04-07 14:10:52 · 183 阅读 · 0 评论 -
关于事务隔离级别相关知识
文章目录介绍事务的特性并发事务带来的问题事务隔离级别介绍事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。事务的特性原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么原创 2022-04-01 17:07:19 · 480 阅读 · 1 评论 -
关于悲观锁和乐观锁 | CAS算法
文章目录乐观锁版本号机制CAS算法ABA问题CAS与synchronized的使用情景悲观锁乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中 java.util.concurrent.atomic 包下面的原子变量类就是使用了乐观锁的一种实现原创 2022-03-31 16:46:34 · 1563 阅读 · 0 评论 -
关于CAP定理和BASE理论
文章目录CAP定理分布式设计为何不能CABASE理论总结CAP定理CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。在理论计算机科学中,CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:一致性(Consistency) : 所有节点访问同一份最新的数据副本可用性(Availability): 非故障的节点在合理的时间内返原创 2022-03-31 14:02:16 · 198 阅读 · 0 评论 -
关于mybatis一级缓存和二级缓存讲解
文章目录一级缓存二级缓存一级缓存用户发起查询请求,查找某条数据,sqlSession先去缓存中查找,是否有该数据,如果有,读取; 如果没有,从数据库中查询,并将查询到的数据放入一级缓存区域,供下次查找使用。 但sqlSession执行commit,即增删改操作时会清空缓存。这么做的目的是避免脏读。如果commit不清空缓存,会有以下场景:A查询了某商品库存为10件,并将10件库存的数据存入缓存中,之后被客户买走了10件,数据被delete了,但是下次查询这件商品时,并不从数据库中查询,而是从缓存中查原创 2022-03-24 10:55:07 · 295 阅读 · 0 评论 -
关于MySQL优化必备之 Explain 命令的讲解
文章目录基本使用介绍explain命令各字段简洁说明explain 命令的各字段详细讲解(重点)idselect_typetabletypepossible_keyskeykey_lenrefrowsExtraMySQL explain 命令是查询性能优化不可缺少的一部分,该文主要讲解 explain 命令的使用及相关参数说明。基本使用介绍在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的 SQL 语句,找出这些 SQL 语句并不意味着完事了。此时我们常常用到 explain原创 2022-02-24 11:35:42 · 223 阅读 · 0 评论 -
如何查询千万级数据
文章目录测试演示普通分页相同偏移量,不同数据量相同数据量,不同偏移量优化操作(重点)优化偏移量大问题采用子查询方式采用 id 限定方式优化数据量大问题数据了大 一般都有做分库分表的处理测试演示演示中表有3148000条数据普通分页SELECT * FROM table LIMIT 参数1 , 参数2第一个参数指定第一个返回记录行的偏移量第二个参数指定返回记录行的最大数目测试性能效果SELECT * FROM `user_operation_log` LIMIT原创 2022-02-21 11:07:18 · 2749 阅读 · 0 评论 -
软件开发的步骤
软件系统开发分为哪几个步骤 一:需求分析二:设计概要设计详细设计三:编码开发四:产品测试五:软件交付准备六:验收交付七:售后服务软件系统开发的过程是怎么样的?现在让我来为大家大概介绍一下:一:需求分析需求调研分析互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提供最详细的报价,如果你真的想做,可以来这里,这个手技的开始数字是壹伍扒中间的是壹壹叁叁最后的是驷柒驷驷,按照顺序组合起来就可以找到,我想说的是,除非你想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了。1.产品经理向用户初步原创 2022-01-07 11:24:24 · 1925 阅读 · 0 评论 -
关于Java线程池理解
文章目录线程池概念核心参数执行流程比喻化执行流程线程池的工作队列ArrayBlockingQueueLinkedBlockingQueueDelayQueuePriorityBlockingQueueSynchronousQueue常用的线程池newFixedThreadPool (固定数目线程的线程池)工作机制图示例代码newSingleThreadExecutor(单线程的线程池)工作机制图示例代码newScheduledThreadPool(定时及周期执行的线程池)工作机制示例代码newCachedT原创 2021-08-05 16:58:20 · 318 阅读 · 0 评论 -
sql优化方式
优化方式一、为什么要对SQL进行优化我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。二、SQL优化的一些方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中转载 2021-04-08 11:56:01 · 215 阅读 · 0 评论 -
关于ThreadLocal的小理解
文章目录概念图ThreadLocal好处synchronized与ThreadLocal区别概念图ThreadLocal好处存的是泛型 ThreadLocal<?> threadLocal = new ThreadLocal();基本使用就 get() ,set(), remove(),initialValue()synchronized与ThreadLocal区别虽然ThreadLocal模式与synchronized关键字都用于处理多线程并发访问变量问题,不过两者处理问原创 2021-08-04 15:34:35 · 360 阅读 · 0 评论 -
hashmap底层逻辑
1.HashMap(1.8)底层数据结构是数组+链表+红黑树2.为什么要红黑树因为在极端情况,Hash冲突非常明显,所有的数据都存到链表中,时间复杂度就变成O(N),1.8之后采取链表长度>8转成红黑树,在hash冲突明显的情况下,查询时间复杂度O(logN)3.为什么HashMap数组长度需要是2的幂次方,如果输入不是2的幂次方会怎么样?在源码中使用 索引位置=hash & (数组长度-1) 代替 索引位置=hash % 数组长度,从而提升性能. 如果不是2的幂次方,在构造方法中.原创 2021-04-08 12:11:14 · 452 阅读 · 1 评论
分享