![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端java
文章平均质量分 64
奋斗的小青年~
这个作者很懒,什么都没留下…
展开
-
Redis安全控制及解决方案
Redis安全控制一、缓存穿透?二、缓存击穿三、缓存雪崩一、缓存穿透?产生背景:缓存穿透使用不存在的key进行大量的高并发查询,导致缓存无法命中,每次缓存都要穿透到后端数据库查询,使得数据库的压力非常大,甚至导致数据库服务器压死。解决方案:1.接口层实现api限流、用户授权、id检查、黑名单和白名单等2.从缓存和数据库都获取不到数据的话,一样将数据库空值放入缓存中,设置30s有效期避免使用同一个id对数据库攻击压力大3.使用布隆过滤器二、缓存击穿产生背景:在高并发的情况下,当一个缓存key原创 2022-04-07 10:41:48 · 1255 阅读 · 0 评论 -
Java开发面试经验
Java开发面试两年经验一、反射是什么?二、Java如何遍历Map集合?一、反射是什么?很多人会说我直接new一个对象不就完了么,干嘛还用反射来获取对象。因为new属于静态编译,而反射属于动态编译,反射只有到运行时他才会去获得该对象的实例,从这点上可以看出反射的强大之处。Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可原创 2022-04-06 10:28:47 · 2298 阅读 · 0 评论 -
设计模式之策略模式讲解
策略模式讲解一、策略模式1.1 什么是策略模式?1.2 环境配置代码演示一、策略模式1.1 什么是策略模式?策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。1.环境(Context)角色:持有一个Strategy的引用。2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。3.具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。定义策原创 2022-03-25 10:23:24 · 260 阅读 · 0 评论 -
Java两年工作经验面试
Java两年工作经验面试题目和心得一、ArrayList和LinkedList的区别?二、ArrayList的底层扩容机制是如何实现的?三、spring的aop底层实现方式有哪些?四、HashMap的底层实现原理?4.1 HashMap的几个重要知识点4.2 JDK7与JDK8的HashMap区别4.3 HashMap的容量与扩容机制五、MySQL的事务隔离级别有哪些?一、ArrayList和LinkedList的区别?ArrayList是基于动态数组的数据结构实现的,LinkedList是基于链表的原创 2022-03-22 11:13:08 · 2846 阅读 · 0 评论 -
Java安全开发注意事项
互联网安全架构设计前言一、如何防御xss攻击?二、抓包如何防止篡改数据?三、对接口实现加密四、相关安全架构设计方案说明前言本文是对Java开发做安全的架构设计。一、如何防御xss攻击?攻击场景说明:在客户端发起请求时,如果URL的请求参数被篡改为网页脚本的话,而且后台没有对参数做处理的话,在当前页面中会受到恶意攻击。如何解决:在后台编写一个过滤器,对后台接收到的请求参数做过滤处理。代码说明:@Component@WebFilterpublic class XssFilter imple原创 2022-03-16 15:33:52 · 5272 阅读 · 0 评论 -
微服务知识(容易理解)
微服务基础知识前言一、微服务的特点是什么?二、微服务的优缺点是什么?三、说说微服务架构的优势?四、什么是幂等性?五、在使用微服务架构时,面临的挑战是什么?六、什么是熔断?什么是服务降级?前言单个轻量级服务一般为一个单独微服务,微服务讲究的是专注于某个功能的实现,比如登录模块只专注与登录功能的实现,职责单一,可以独立运行,微服务是一个分布式的系统,按照业务划分不同的模块服务,实现复杂需求。一、微服务的特点是什么?解耦:系统服务分离,整个应用可以轻松修改、扩展业务能力:服务简单,专注于单一功能自原创 2022-03-16 14:38:11 · 269 阅读 · 0 评论 -
Java实现冒泡排序
原理:1.比较 前后相邻的两个数据,如果前面的数据大于后面的数据,就将这两个数据交换;2.第一次遍历后,最大的元素会沉淀到最后的位置里,循环次数为N-1代码如下:public class maopao { public static void maoPao(){ int temp; int[] array = {2,5,4,6,1}; for (int i = 0; i < array.length-1; i++) {原创 2022-03-14 23:40:27 · 593 阅读 · 0 评论 -
TCP三次握手(白话文理解)
网络知识一、http响应码301和302的区别是什么?二、简述tcp和udp的区别?三、TCP三次握手过程四、TCP为什么要三次握手,两次不行吗?五、get和post请求的区别有哪些?六、TCP中粘包、拆包的问题一、http响应码301和302的区别是什么?301,302都代表着某个URL发生了转移区别:301:代表永久性转移302:代表暂时性转移二、简述tcp和udp的区别?tcp是面向连接的可靠协议,如打电话先拨号建立连接;udp是无连接的不可靠协议,发送数据前不需要建立连接。三、T原创 2022-03-14 17:30:55 · 373 阅读 · 0 评论 -
RabbitMQ基础
RabbitMQ面试题详解一、RabbitMQ的应用场景有哪些?二、消息的角色有哪些?三、RabbitMQ有哪些重要的组件?四、RabbitMQ中vhost的作用是什么?五、RabbitMQ如何发送消息?六、RabbitMQ怎样确保消息的稳定性?七、如何避免消息丢失?八、持久化有什么缺点?九、如何实现延迟消息队列?十、集群有什么用?十一、节点类型有哪些?十二、集群搭建需要注意什么?十三、集群中唯一的磁盘节点崩溃了会发生什么情况?十四、RabbitMQ 对集群节点的停止有顺序要求吗?十五、RabbitMQ 有原创 2022-03-14 11:53:47 · 84 阅读 · 0 评论 -
Redis快速安装
本文将介绍redis在Linux下如何安装与配置前言Redis 是完全开源免费的,是一个高性能的key-value的非关系型数据库。说明:关系型数据库:数据存在硬盘中来实现io操作,例如mysql,SqlServer非关系数据库:数据存在内存中,效率高,例如redis一、Redis的应用场景1. Token令牌的生成2. 短信验证码Code3. 缓存查询数据4. 网页计数器5. 分布式锁6. 延迟操作Redis如何存放一个java对象 直接存放json类型即可提示:以下是本篇原创 2022-03-12 15:27:18 · 138 阅读 · 0 评论 -
如何去管理Java项目
Java项目管理工具:1.代码版本管理,通过Git或SVN工具规范版本2.jar包管理,通过maven工具管理jar包3.Jenkins,项目自动部署4.Worktile,团队项目协作开发工具5.swagger,接口测试、文档管理原创 2022-03-11 15:41:03 · 8996 阅读 · 0 评论 -
Spring框架中对Ioc和Aop的理解
spring是一个企业级应用的轻量框架,具有Ioc(控制反转)和Aop(面向切面)的功能。在项目开发中,一个类可能会调用很多对象(service、dao层)去实现相关的功能,在没有使用spring框架的前提下,每次调用都去new,效率低且消耗资源,而spring的容器化技术可解决这个缺点。使用spring与否做对比:1.不使用spring框架:public void UserService{ private UserDao userDao; public void insert(Us原创 2022-03-11 11:25:32 · 758 阅读 · 0 评论