- 博客(91)
- 收藏
- 关注
原创 用命肝出来的啊,阿里P8熬了一个月才总结出的32W字Java面试手册
2021年的互联网行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完美的面试宝典,奈何难抽出时间,这套1000+道的Java面试手册我整理了整整1个月,上传到Git上目前star数达到了30K+这套互联网Java工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Springboot、SpringCloud、MQ、Kafka面试专题(共485页,32W字)阿里P8熬了一个月肝出这份32W字的Jav
2021-11-17 15:39:58
427
2
原创 腾讯疯狂扩招,肝完这份八股文,38Koffer妥了
今年的秋招基本已经进入大规模的开奖季了,很多小伙伴收获不错,拿到了心仪的offer。各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。俗话说得好,他山之石,可以攻玉,多看多借鉴还是有帮助的,这次腾讯也在疯狂招人!肝完这份八股文,38K妥了!这份总结内容涵盖极广,包含了 14 个技术栈: 基础篇 JVM 篇 多线程 &并发篇 Spring 篇 MyBatis 篇 Spring
2021-11-17 15:30:03
349
原创 我去,你连Nginx都用不好,还怎么进大厂?
前言Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,互联网企业使用nginx网站用户有:百度、京东、新浪、网易、...
2021-11-17 15:01:37
223
原创 肝到吐血,这份24万字的Java面试手册终于完成了
一直想整理一份面试手册,之前虽然也整理过,放在GitHub上目前Star数过千了。但是内容上来讲,涉及到的技术栈并不全面,内容上也不细致。索性重新整理了一份。内容包括网络协议、Java基础、进阶、字符串、集合、并发、JVM、数据结构、算法、MySQL、Redis、Mongo、Spring、SpringBoot、MyBatis、SpringCloud、Linux以及各种中间件(Dubbo、Nginx、Zookeeper、MQ、Kafka、ElasticSearch)等等...最后整理完,统
2021-11-17 14:59:27
110
原创 疯了疯了,这还不被报警?阿里内部面试题库惨遭泄露
阿里内部面试题库惨遭泄露!各平台上阅读量爆火,Github获赞已破50K!一夜之间,全网都在疯传!此笔记已助朋友成功拿到腾讯,阿里,美团等10个offer !据说是阿里内部P9大佬耗费了一年时间才整理出来的。这套互联网 Java 工程师面试题包括了:基础 &进阶篇字符串 &集合面试题汇总、.Java 并发编程、JVM、数据结构与算法、网络协议、数据库、MySQL、52 条 SQL 性能优化策略、一千行 SQL 命令、Redis、MongoDB、Spring、MyBat
2021-11-17 12:30:33
2877
原创 这么卷?毕业四年就已经是P7架构师了
前言:现在已经是十一月份了,金九银十已经过去,年前面试最后一波时期悄然而至,那天我面了个P7的大佬,按照正常面试流程,我通常都会问一些需要掌握的知识和实战路程,主要考察一下清不清楚其中的细节,每个方案可能带来的副作用;有没有实战落地的经验。再比如:项目介绍,Spring插件式扩展点开发,DDD项目架构应该如何落地,Redis缓存与数据库双写不一致如何解决等问题这次面试了个阿里P7的大佬,也是按部就班地问这些问题,没想到他还可以举一反三,不仅仅回答了问题,还介绍了他做过的项目具体的细节,每一个细节..
2021-11-16 23:57:08
1277
3
原创 手撕红黑树、KMP…全程Hard题,2021算法面试难度逆天
纵观国内头部大厂的算法面试情况,可以说是诸神内卷,全员团灭。而2021年的趋势是DP、KMP等都是信手拈来,个别公司还要求你手写实现,LC刷题数至少得达到300+,而且必须对题目有深刻的理解,能很好地应对难题、变形题和扩展题。为此,九章也搜集了LC上的部分难题,各位不妨来试试自己能不能秒杀市面上的难题(文末有福利):1772·子集数量难度:☆☆☆☆对于一个集合中的每个元素x,2x和3x均不在这个集合中。则称这个集合为好集合。给定一个整数n。好集合中的元素大小在[1,n
2021-11-15 19:29:26
385
原创 95% 的算法都是基于这 6 种算法思想
算法思想是解决问题的核心,万丈高楼起于平地,在算法中也是如此,95% 的算法都是基于这 6 种算法思想,接下了介绍一下这 6 种算法思想,帮助你理解及解决各种算法问题。1 递归算法1.1 算法策略递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。优缺点:优点:实现简单易上手 缺点:递归算法对常用的算法如普通循环等,运行效率较低;并且
2021-11-15 10:15:00
1483
转载 Java中ThreadLocal的实际用途是啥?
老规矩用面试来介绍ThreadLocal开场白张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试。我丢,什么情况怎么刚投递出去就有人约我面试了?诶。。。真烦啊,哥已经不在江湖这么久了,江湖还是有哥的传说,我还是这么抢手的么?太烦恼了,帅无罪。暗自窃喜的张三来到了某东现场面试的办公室,我丢,这面试官?不是吧,这满是划痕的Mac,这发量,难道就是传说中的架构师?张三的心态一下子就崩了,出来第一场面试就遇到一个顶级面试官,这谁顶得住啊。你好
2021-11-15 09:45:00
520
原创 告知你不为人知的UDP-疑难杂症和使用
引言作为文章”《从TCP三次握手说起—浅析TCP协议中的疑难杂症》”的姊妹篇,很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大、复杂,但是,要想将UDP描述清楚,用好UDP却要比TCP难不少,于是文章从下笔写,到最终写成,断断续续拖了好几个月。对应系列的上一篇:告知你不为人知的UDP-连接性和负载均衡3. UDP疑难杂症3.1 UDP的传输方式:面向报文面向报文的传输方式决定了UDP的数据发送方式是一份一份的,也就是应用层交给UDP多长的报文,UDP就照样发送,即
2021-11-15 08:45:00
548
原创 腾讯云数据库团队:浅谈如何对MySQL内核进行深度优化
MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务型)、存在多个分支、读写效率瓶颈等问题。所以如何用好MYSQL变得至关重要,一方面需要通过MYSQL优化找出系统读写瓶颈,提高数据库性能;另一方面需要合理涉及数据结构、调整参数,以提高用户操作响应;同时还有尽可能节省系统资源,以便系统可以提供更大负荷的服务。本文将为大家介绍腾讯云团队是如何对M
2021-11-15 07:30:00
170
原创 做开发十年,我总结出了这些开发经验
康亮,腾讯高级工程师。历经网易在线游戏事业部、百度客户端部门、腾讯研究院、腾讯MIG。横跨多个平台10年开发,目前负责腾讯翻译君app。在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器、移动端翻译app等。积累了一些感悟。必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。一、对于团队而言,流程太重要了行军打仗,你需要一个向导;如果没有向导,你需要一个地图;如果没有地图,至少要学习李广,找一匹识途的老马;如果你连老马也没有,那最好可以三个.
2021-11-15 00:30:31
342
原创 SpringBoot中实现通用Auth认证的几种方式
前言最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大,代码方面不明显,但感觉自己抹掉了 java、Tomcat、Spring 一直挡在我眼前的一层纱。对它们的理解上了一个新的层次。挑一个方面总结一下,希望在梳理过程中再了解一些其他的东西。由于 Java 繁荣的生态,下面每一个模块都有大量的文章专门讲述。所以我选了另外一个角度,从实际问题出发,将这些分散的知识串联起来,各位可以作为一个综述来看。各个模块的极致详细介
2021-11-14 08:15:00
417
原创 数据库自增ID用完了会怎么样?
看到这个问题,我想起当初玩魔兽世界的时候,25H难度的脑残吼的血量已经超过了21亿,所以那时候副本的BOSS都设计成了转阶段、回血的模式,因为魔兽的血量是int型,不能超过2^32大小。估计暴雪的设计师都没想到几个资料片下来血量都超过int上限了,以至于大家猜想才会有后来的属性压缩。这些都是题外话,只是告诉你数据量大了是有可能达到上限的而已,回到Mysql自增ID上限的问题,可以分为两个方面来说。1.有主键如果设置了主键,并且一般会把主键设置成自增。我们知道,Mysql里int类型是4个
2021-11-14 03:12:39
514
原创 分享一个进销存项目(多层架构)
分享一个进销存项目(多层架构) 花了点时间完成了一个进销存的项目,个人觉得对逻辑分析,架构思想都有一定的体会,故拿出来和大家分享下,首先介绍下项目的功能吧,主要功能有采购管理,销售管理,库存管理,人员信息管理,系统管理等,不过写这篇博客的主要目的并不是讲解如何实现项目功能,而是分享下该项目的架构思想、实现步骤和碰到的一些问题,分享下心得体会罢了......数据库设计 下面进入主题,首先贴上项目的主界面,由于对界面要求不是很高,所以界面相对来说比较简单,甚至可是...
2021-11-11 21:15:10
715
原创 2021年最新java SpringMVC面试题及答案
1.什么是 Spring?谈一下你的理解答:Spring MVC是一个基于Java地实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2.Spring MVC的优点:答:(1)可以支持各种视图技术,而不仅仅局限于JSP;(2)与Spring框架集成(如IoC容器、AOP等);(3)清晰的角色分配:前端控制器(disp
2021-11-11 16:54:18
1284
原创 你真的懂Spring Cloud+Nginx秒杀实战,Nginx高性能秒杀和限流吗?
Nginx高性能秒杀和限流从性能上来说,内部网关Zuul限流理论上比外部网关Nginx限流的性能会差一些。和Zuul一样,外部网关Nginx也可以通过Lua脚本的形式执行缓存在Redis内部的令牌桶限流脚本来实现分布式限流。Nginx秒杀限流有两种架构,分别说明如下:1.Nginx限流+Zuul认证和路由+seckill-provider微服务秒杀这种架构属于非常典型的Nginx+Spring Cloud微服务架构,限流的逻辑处于外部网关Nginx,用户的权限认证处于内部网关Zuul,而获取
2021-11-11 16:51:17
155
原创 当 Transactional 碰到锁,这大坑怎么填 ?
前几天在某平台看到一个技术问题,很有意思啊。涉及到的两个技术点,大家平时开发使用的也比较多,但是属于一个小细节,深挖下去,还是有点意思的。来,先带你看一下问题是什么,同时给你解读一下这个问题:https://segmentfault.com/q/1010000040361592首先,这位同学给出了一个代码片段:他说他有一个 func 方法,这个方法里面干了两件事: 1.先查询数据库里面的商品库存。 2.如果还有库存,那么对库存进行减一操作,模拟商品卖出。 对于
2021-11-10 21:18:17
505
2
原创 十年架构师强烈推荐的面试通关宝典,你知道多少?
一 数据库1.常问数据库查询、修改(SQL查询包含筛选查询、聚合查询和链接查询和优化问题,手写SQL语句,例如四个球队比赛,用SQL显示所有比赛组合;举例2:选择重复项,然后去掉重复项;) 数据库里的密码如何加密(md5);(1)数据库的密码加密:单向加密,insert into users (username,password) values (‘mike’,MD5(‘guessme’));(2)双向加密:insert into users (username ,password) value
2021-11-10 14:53:19
772
原创 那些你不知道的 TCP 冷门知识
最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。案例一:TCP中并不是所有的RST都有效背景知识:在TCP协议中,包含RST标识位的包,用来异常的关闭连接。在TCP的设计中它是不可或缺的,发送RST段关闭连接时,不必等缓冲区的数据都发送出去,直接丢弃缓冲区中的数据。而接收端收到RST段后,也不必发送ACK来确认。问题现象:某客户连接数据库经常出现连接中断,但是经过反复排查,后端数据库实例排查没有执行异常
2021-11-09 14:43:54
151
原创 终于有人把TCP协议与UDP协议给搞明白了
网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下IP地址、端口号、通信协议的相关知识。一、IP地址网络中的计算机使用IP地址来进行唯一标识,IP地址有IPv4和IPv6两种类型。IPv4采用十进制或二进制表示形式,十进制是一种比较常用的表示形式,如192.168.1.131,IPv6采用十六进制表示形式,一般不常用。如何查看IP地址相关信息:在Windows系统下,打开cmd,输入命令ipco
2021-11-09 14:42:07
281
原创 当初我要是这么学习Nginx就好了(多图详解)
本文主要帮助大家熟悉 Nginx 有哪些应用场景、Nginx 特点和架构模型以及相关流程、Nginx 定制化开发的几种模块分类。读完本文你将对 Nginx 有一定的认识。图片来自 Pexels本文将围绕如下几个部分进行讲解:Nginx 简介及特点 Nginx 应用场景 Nginx 框架模型介绍 Nginx 内部流程介绍 Nginx 自定义模块开发介绍 Nginx 核心时间点模块介绍 Nginx 分流模块介绍 Nginx 动态 upstream 模块介绍 Nginx query
2021-11-09 13:48:56
132
原创 数据中台到底长什么样子?4张图带你详解数据中台架构
数据中台不是一个单纯的系统,而是一套架构、一套数据流转模式。数据中台需要采集数据作为原材料进行数据加工、数据建模,然后分门别类地储存,再根据实际的业务场景,打造各类数据服务(含数据应用平台)从而实现对业务的赋能加速。但以上流程的实现,需要有对应的系统与产品作为支撑,那么基础的数据中台到底应该由哪些系统或者产品组成?这里我们可以先来看一下几个企业的数据中台架构。可以看出,虽然每个企业由于自身业务的不同,衍生出来的数据中台体系都有所不同,但大的架构方面是基本统一的,都
2021-11-08 19:54:12
4913
原创 2022秋招算法岗卷成人间地狱,高薪惹眼,招录比100:1
新智元导读】2022年秋招已经陆续展开,AI就业形势再次引发了网友热议。有人说,2022 年秋招算法岗人间地狱。那么,真实情况如何?「求职卷,进来了做实验也卷,卷翻天。」有人说,2022 年秋招算法岗人间地狱。那么,真实情况如何?算法岗高薪惹眼根据Talent Seer 2020 AI人才报告显示,全球AI从业者总人数约有30万,还是供不应求,其中AI技术专家(具有相关领域博士学位及3年以上工作经验的)约有3.65万。其中有20%就职在谷歌、微软、苹果、I
2021-11-08 19:14:05
318
原创 别再用mybatis了,mybatis-plus 这个神级工具一发入魂
mybatis-plus是一款Mybatis增强工具,用于简化开发,提高效率。下文使用缩写mp来简化表示mybatis-plus,本文主要介绍mp搭配SpringBoot的使用。注:本文使用的mp版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:baomidou.com/快速入门 创建一个SpringBoot项目 导入依赖 <!-- pom.xml --><?xml version="1.0" encoding="UTF-8"?>
2021-11-08 14:04:01
1016
原创 nginx、swoole高并发原理初探
阅前热身为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。同步与异步同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。同步:当一个同步调用发出去后,调用者要一直等待调用结果的通知,直到得到调用结果。异步:当一个异步调用发出去后,调用者不能立即得到调用结果的返回。异步调用,要想获得结果,一般有两种方式:1、主动轮询异步调用的结果;2、被调用方通过callback来通知调用方调用结果。举个栗子:同步买奶茶:小明点单交钱,然后等着拿奶茶;异步买
2021-11-02 21:42:52
209
原创 使用LTS帮你解决分布式任务调度问题
LTS(light-task-scheduler)主要用于解决分布式任务调度问题,支持实时任务,定时任务和Cron任务。有较好的伸缩性,扩展性,健壮稳定性而被多家公司使用,同时也希望开源爱好者一起贡献。##1.7.2-SNAPSHOT(master)变更主要点优化JobContext中的BizLogger,由原来的去掉了threadlocal,解决taskTracker多线程的问题, 去掉LtsLoggerFactory.getLogger()用法框架概况LTS 有主要有以下四种节点:Jo
2021-10-31 13:55:22
1698
原创 docker化你的java应用
前言在各种技术大会(互联网架构,云计算等等),哪都少不了docker的身影。docker为啥这么火?因为它解决了大部分企业的痛点:快速的持续集成,服务的弹性伸缩,部署简单,方便了运维,而且为企业节省了机器资源,降低了成本。现在在很多企业(腾讯/京东/阿里/小红书等等)都大规模使用docker。作为开发工程师,咱们或多或少需要接触docker,因为咱们的程序运行在docker容器当中,了解docker,有益无害。下面我们就进入docker的世界吧~走进dockerdocker是什么?d
2021-10-31 13:53:30
148
原创 你敢说自己了解单例模式?
你敢说自己了解单例模式?一、背景最近在学习设计模式,在看到单例模式的时候,我一开始以为直接很了解单例模式了,实现起来也很简单,但是实际上单例模式有着好几个变种,并且多线程中涉及到线程安全问题,那么本文我们就来好好聊聊单例模式,说一下经典三种实现方式:饿汉式、懒汉式、登记式。并且解决掉多线程中可能出现的线程安全问题。二、基本概念1.为什么要使用单例模式?在我们日常的工作中,很多对象通常占用非常重要的系统资源,比如:IO处理,数据库操作等,那我们必须要限制这些对象只有且始终使用一个公用的实例,即
2021-10-31 13:46:42
105
原创 SpringBoot实现session共享和国际化
SpringBoot Session共享修改pom.xml添加依赖 <!--spring session--> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>添加配置类 RedisSessionConf
2021-10-31 13:45:22
227
原创 Java 内存区域和GC机制
目录Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器Java垃圾回收概况Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(Java Virtual Ma
2021-10-31 13:44:29
371
原创 Java定时任务调度详解
前言在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券;比如在保证最终一致性的场景中,往往利用定时任务调度进行一些比对工作;比如一些定时需要生成的报表、邮件;比如一些需要定时清理数据的任务等。本篇博客将系统的介绍定时任务调度,会涵盖Timer、ScheduledExecutorService、开源工具包Quartz,以及Spring和Quartz的结合等内容。
2021-10-31 13:43:25
2412
原创 面试必备:HashMap(JDK1.8)原理以及源码分析
对于HashMap想必大家都不陌生,无论是平时code还是面试都经常和它打交道。今天我们通过源码的层面来分析一下它的实现原理,注意本文基于的是JDK1.8。问题是从哪边开始聊起呢?我觉得不妨先从一段熟悉的代码开始。Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, "Jack");然后我们会迫不及待点开HashMap这个类,发现里面有大量的属性和方法,一脸懵逼。那就直接点开put方
2021-10-30 17:31:43
207
原创 7000字长文带你深入了解IOC启动原理
推荐学习读阿里P8大佬15W字的Spring文档,面试犹如开了挂,成了Offer收割机 还这样学Spring Cloud?学透这份Alibaba笔记手册,面试官都佩服 已献出膝盖!GitHub上的宝藏级SpringBoot核心文档,讲得太清晰了1. IOC概述1.1 是什么?两个概念:控制反转,依赖注入来看一下传统的干活方式:在对象单一职责原则的基础上,一个对象很少有不依赖其他对象而完成自己的工作,所以这个时候就会出现对象之间的依赖。而体现在我们的开发中,就是需要什么对象的时候,就创建
2021-10-30 17:30:10
136
原创 大量示例彻底搞懂Linux查找,which,whereis,locate,find
前言Linux常用命令中,有些命令可以帮助我们查找二进制文件,帮助手册或源文件的位置,也有的命令可以帮助我们查找磁盘上的任意文件,今天我们就来看看这些命令如何使用。whichwhich命令会在PATH变量指定的路径中,搜索某个系统命令的位置。例如:which -a which #查看命令which所在位置,-a参数表示找出所有/usr/bin/which/bin/whichPATH变量有哪些内容呢?我们来看一下(不同电脑可能不同):echo $PATH/home/hyb/
2021-10-30 13:57:19
118
原创 使用Spring.profile实现开发、测试和生产环境的配置和切换
介绍软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等。为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spring的profile功能来进行配置参数的切换。以我用到的项目的实际情况为例,首先可以在resources文件夹下分别为每个环境建立单独的文件夹(也可以额外建立一个common文件夹,用于存放公共的参数配置文件),每个文件夹下面存放对应的环境所需的配置文件,就像这样子:配置和使用在re
2021-10-30 13:55:31
491
原创 Shiro等权限管理框架本质很简单,一个注解+拦截器就可实现
注解Java目前只内置了三种标准注解四种元注解,元注解专职负责注解其他的注解如何在运行时获取注解的值?java在java.lang.reflect包中定义了AnnotatedElement接口,Class,Method,Field等都实现了该接口,通过该接口提供的方法,就可以获得我们需要的信息,并且该接口的方法返回的数组可以由调用方修改,而不影响返回到其他调用方的数组。AnnotatedElement接口的一部分方法java.lang.Class中的getDecl
2021-10-30 13:52:47
312
原创 能用在性能检测,权限管理,事务控制的Spring AOP是怎么实现的?
介绍AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring AOP的实现进行分析和介绍。使用AspectJ的编译时增强实现AOP之前提到,AspectJ是静态
2021-10-30 13:51:11
118
原创 Redis的n种妙用,分布式锁,分布式唯一id,消息队列,抽奖……
介绍redis是键值对的数据库,常用的五种数据类型为字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)Redis用作缓存,主要两个用途:高性能,高并发,因为内存天然支持高并发应用场景分布式锁(string)setnx key value,当key不存在时,将 key 的值设为 value ,返回1。若给定的 key 已经存在,则setnx不做任何动作,返回0。当setnx返回1时,表示获取锁,做完操作以后del key
2021-10-30 13:49:02
306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人