自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

maniacxx的博客

来自SWPU,目前学习的是web后端方向,博客主要写的都是自己记录的笔记

  • 博客(113)
  • 资源 (1)
  • 收藏
  • 关注

原创 用注解的方式管理切面

扫包+参数的方式实现切面以前总是使用配置扫包的配置+入参来管理控制切面,类似这样@Aspect@Componentpublic class TestAspect { @Pointcut("execution(public com.*.api.impl..*(..)) AND args(com.*.TestRequest))") public void accessControl() { } @Around(value = "Pointcut()")

2021-04-29 16:20:17 192

原创 (阿里offer)春招知识点总结1:java基础+集合+并发+jvm+ssm

写在前面:大量总结不是系统的总结,而是作者本人根据自己情况总结的,许多我很清楚的地方就不在提及,大量源码也均未提及,尤其是框架的总结提及很浅。仅作为自己短期技术栈的一个总结,只作为参考,不是一定正确的理论知识点。文章目录java基础面向对象及三大特性多态的实现注解public,protect,private修饰符及默认default。static,finalString,StringBuilde...

2020-06-09 15:15:51 1220

原创 过时的WebMvcConfigurerAdapter及新的写法

最近在学SpringBoot,然后使用idea写自定义的一些mvc配置时发现WebMvcConfigurerAdapter已经过时。@Configurationpublic abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {...}而新的写法有两种(推荐第一种)/*第一种是实现WebMvcConfi...

2019-06-22 12:28:28 563

原创 @Value与@ConfigurationProperties的区别

@Value与@ConfigurationProperties平时都用于给属性获取值,但存在一定的差距@ConfigurationProperties修饰类,用于给整个类获取值,而@Value修饰单个属性,给单个属性获取值@ConfigurationProperties支持松散语法绑定,而@Value不支持@ConfigurationProperties支持使用@Validated(JSR...

2019-06-01 18:27:29 666

原创 (阿里offer)春招知识点总结3:部分理论知识点

写在前面:大量总结不是系统的总结,大量源码也均未提及。只作为参考,不是一定正确的理论知识点。文章目录Linux的IO多路复用方式select与pollepollNetty`Zero-copy`bufferReactor分布式理论基本理论一致性问题项目搭建流程安全XSS攻击CSRF攻击Linux的IO多路复用方式一般数据的访问,都是先等待数据准备,然后把数据拷贝到内核中,再从内核拷贝到进程中。...

2019-05-20 14:37:17 278

原创 (阿里offer)春招知识点总结:2:计网+数据库+操作系统+redis

写在前面:大量总结不是系统的总结,而是作者本人根据自己情况总结的,许多我很清楚的地方就不在提及,大量源码也均未提及,操作系统只写了自己不太熟练的两个算法。仅作为自己短期技术栈的一个总结,只作为参考,不是一定正确的理论知识点。文章目录计网端口号:三次握手四次挥手流量控制(滑动窗口)拥塞控制主机访问网站时解析域名的过程get和post区别HTTP状态码TCP和UDP的区别TCP的可靠性保证Http1...

2019-05-20 14:31:21 549

原创 计网笔记4-应用层

4 应用层HTTP,FTP,DNSHTTP=tcp+804.1 域名系统DNSDNS服务作用:负责解析域名,将域名解析成IP域名解析的过程:一个DNS服务器解析所有域名明显是不科学的,所以实际上,域名解析由其顶级域名,二级三级域名依次往下分发任务。主机访问网站时解析域名的过程找缓存找本机的hosts文件根据设置的DNS服务器(可设置多个,选择一个就行),访问本地域名服务器,并...

2019-03-05 13:06:57 408

原创 计网笔记3-运输层

3 运输层两个协议TCP , UDP可靠性传输TCP:分段,编号,流量控制,建立会话(QQ发文件)UDP:一个数据包就能完成数据通信,不建立会话(QQ发消息),多播运输层与应用层的关系:http=TCP+80https=TCP+443ftp=TCP+21SMTP==TCP+25POP3=TCP+110RDP=TCP+3389共享文件夹=TCP+445SQL=TCP+14...

2019-03-04 20:01:48 332

原创 计网笔记2-网络层

2 网络层网络层负责在不同网络之间尽力发送数据包,基于数据包的IP地址进行转发,且对于数据报的顺序,丢失,重复等问题不负责。2.1 文件传输流程网络设备和OSI参考模型关系计算机通信的过程,本网段通信跨网段通信的过程1.应用层准备要传输的文件2.传输层将文件分段并标号3.网络层添加目标IP地址,源IP地址(决定数据发送的起点与终点)4.数据链路层首先使用源ip和目的ip进行...

2019-03-04 09:52:54 528

原创 计网笔记1-数据链路层

1 数据链路层点对点信道:一对一的点对点通信方式广播信道:一对多的广播通信方式1.1 点对点的数据链路层链路:一个结点到相邻结点的的一段物理线路...

2019-03-01 21:30:44 389

原创 jvm随笔9-锁优化

1.自旋锁问题:挂起和恢复线程要转入内核态中完成,许多应用,共享数据的锁定状态只会持续很短一段时间,为了这段时间去挂起和恢复线程并不值得。两个或以上的线程并行执行时,可以让后面请求锁的那个线程等一下,但不放弃处理器的执行时间,看看持有锁的线程是否很快就会释放锁。为了让线程等待,只需让线程执行一个忙循环(自旋),避免了线程切换的开销2.锁消除虚拟机即时编译器在运行时,对一些代码要求同步,但是...

2019-02-23 12:18:46 145

原创 jvm随笔8-类加载

类型的加载、连接和初始化过程都是程序运行期间完成的,这样就导致类加载时增加了一些性能开销,但是为Java应用程序提供了高度的灵活性。类的加载被分为了七个阶段:加载–>验证–>准备–>解析–>初始化–>使用–&a

2019-02-22 20:59:29 137

原创 jvm随笔7-class类文件的结构

class文件是一组以8字节为基础单位的2进制流,其储存内容全为必要数据,没有空隙。若数据大于8字节,按照类似大端的方式,以高低低高的原则进行数据存放。class文件中使用一种类c的数据结构,此结构只有两种数据类型,无符号数与表。无符号数有u1、u2、u4、u8四种类型分别代表1、2、4、8字节的无符号数。表由无符号数和其他表作为数据项的复合数据类型,表习惯以“_info”结尾。class...

2019-02-21 21:40:47 136

原创 springboot报错

写redis配置类时报错Cannot resolve constructor 'RedisCacheManager(org.springframework.data.redis.core.RedisTemplate)错误原因:依赖版本号的缺少解决方案:pom中加入:<dependency> <groupId>org.springframework.dat...

2019-02-18 10:34:15 194

原创 springboot启动报错

报错内容Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2019-02-17 19:27:47.515 ERROR 5968 --- [ main] o.s.b.d.LoggingFailureAn...

2019-02-17 19:32:59 533

原创 jvm随笔6-常用jdk的命令行工具

1.jps用于查看当前虚拟机进程及信息,类似UNIX的ps命令,使用频率很高。2.jstat用于监视虚拟机各种运行状态信息的命令行工具,包括类装载,内存,垃圾收集,JIT编译等运行数据。3.jinfo可用于读写虚拟机的各项参数,其实是有jsp -v可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的,就要使用jinfo -flag来查看,使用jinfo -flag [+|-...

2019-01-23 21:12:16 120

原创 jvm随笔5-内存分配

在对象进行创建时,难免要进行内存的分配。前面提到过Eden与两个survivor内存占用比例是8:1:1,并且使用老年代作为担保。1.对象优先在Eden分配大多数情况下,新时代都会在Eden新生代空间中分配,因为Eden空间足够大,若Eden空间不足进行一次GC,GC时若survivor空间不足存放对象,这些对象都会被放在老年代的空间中存放。2.大对象直接放入老年代大对象的创建会导致Ede...

2019-01-22 20:57:37 129

原创 jvm随笔4-垃圾收集器

1.可达性分析时一致性确保1.1 GC停顿在确定对象是死亡还是存活时,需要进行可达性分析,而在进行可达性分析时需要进行GC停顿来确保一致性(如果不停定,导致引用持续变化,就无法准确定位对象的存活和死亡情况)。而在进行GC停顿以后进行检查时,不需要一个不漏全部检查所有上下文和引用,虚拟机使用一个OopMap的数据结构使虚拟机直接得知什么地方存放着对象引用(类加载完成后HotSpot把对象内在什...

2019-01-22 12:40:51 171

原创 jvm随笔3-垃圾回收概念

1.需要回收的地方程序计数器,虚拟机栈,本地方法栈随线程而生而灭,栈中的栈帧随方法执行而进栈出栈,栈帧的内存分配在类结构确定以后也是已知的。故这几个区域不需要过多考虑回收问题。java堆与方法区则不一样,一个接口的多个实现类的内存可能不一样,一个方法多个分支需要内存也不一样,要在运行期才能会创建那些对象,这部分内存的分配与回收是动态的。2.对象的死亡判定程序计数器:每个对象都加一个程...

2019-01-20 21:53:59 159

原创 jvm随笔2-新建对象的过程

1 对象创建在执行new以后会在常量池中定位到一个类的符号引用(检测是否存在),并检测是否已经被加载,解析,初始化过,若没有就会执行类加载。分配内存:类加载后可确定对象需要的内存,这是就会为新生对象分配内存,方法有两种。理想状态:假设堆完全规整,可用区域连续,用一个指针划分可用与不可用区域,分配时,移动指针来划分即可。称为“指针碰撞”。实际状态:并不规整,进行分页,并维护一个列表来记录每...

2019-01-19 15:30:41 152

原创 jvm随笔1-数据区介绍

jvm在执行java程序时有若干数据区:方法区,虚拟机栈,本地方法栈,堆,程序计数器。程序计数器相当于pc指针,每个线程都有一个,是私有的,指向当前方法执行的位置,在程序运行时使用程序计数器来记录当前执行到的字节码位置。java方法会使用程序计数器记录,但Native方法而程序运行的时候,需要栈来记录程序运行时的局部变量表等,虚拟机栈用来存储java方法的数据,每个方法对应一个栈帧,方法的执行...

2019-01-18 20:09:00 148

原创 《Redis设计与实现》阅读笔记12-集群

16 集群集群由多个节点(redis服务器)组成。多个节点之间通过握手进行连接,从而构造了集群。CLUSTER MEET <ip> <port>客户端向一个节点发送这条命令,可以使得接收命令的节点与命令中对应ip地址和端口的服务器节点进行握手,使得

2018-10-14 15:42:09 233

原创 《Redis设计与实现》阅读笔记11-Sentinel(哨兵)

15 哨兵哨兵系统由一个或多个哨兵实例组成,可以监视任意多个主服务器及其对应的所有从服务器,并在监视的主服务器下线的时候从其对应的从服务器中选出一个作为新的主服务器,然后让剩余的从服务器去复制新的主服务器,并在旧的主服务器上线以后让其成为新的主服务器的从服务器。15.1 启动并初始化哨兵启动一个 Sentinel 可以使用命令:$ redis-sentinel /path/to/your/...

2018-10-03 14:24:51 227

原创 《Redis设计与实现》阅读笔记10-复制

14 复制在redis中使用slaveof命令,可以使得服务器去复制另一个服务器,成为那个服务器的从服务器,称为主从复制14.1 旧版复制功能旧版复制的实现由两种方式组成同步:通过发送主服务器的rdb文件给从服务器与缓冲区保存后续写命令使得主从服务器状态一致命令传播:主从服务器状态一致后,主服务器发送后续修改数据库的命令给从服务器保证主从服务器状态一致14.1.1 同步当一个服务...

2018-10-02 13:33:29 179

原创 《Redis设计与实现》阅读笔记9-服务器

13 服务器13.1 命令请求的执行流程一个命令请求从发送到获得回复的过程中, 客户端和服务器需要完成一系列操作。举个例子, 如果我们使用客户端执行以下命令:redis> SET KEY VALUEOK那么从客户端发送 SET KEY VALUE 命令到获得回复 OK 期间, 客户端和服务器共需要执行以下操作:客户端向服务器发送命令请求 SET KEY VALUE

2018-09-29 14:16:08 215

原创 《Redis设计与实现》阅读笔记8-客户端

12 客户端Redis服务器是典型的一对多服务器(一个服务器与多个客服端建立连接),通过使用I/O多路复用技术实现文件事件处理器,Redis使用单线程单进程的方式来处理命令请求,服务器为客户端建立redis.h/redisClient结构,这些结构保存了客户端当前的状态信息,及执行相关功能时需要用到的数据结构。客户端的套接字描述符客户端的名字客户端的标志值指向客户端正在使用的数据库...

2018-09-18 12:12:14 205

原创 《Redis设计与实现》阅读笔记7-事件

11 事件Redis服务器是一个事件驱动程序,服务器会处理以下两类事件文件事件:Redis服务器通过套接字与客服端进行连接通讯,而服务器本身对套接字进行处理,以套接字为中转实现服务器与客服端的交流,而文件事件就是服务器对套接字操作的抽象。服务器与客服端的通信就会产生相应的文件事件,而服务器就是监听并处理这些事件来完成一系列网络通信的。时间事件:Redis服务器中一些操作(serverC...

2018-09-16 21:04:56 198

原创 《Redis设计与实现》阅读笔记6-AOF持久化

10 AOF(Append Only File)10.1 AOF是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作10.1.1 Aof保存的是appendonly.a...

2018-09-15 13:43:08 218

原创 《Redis设计与实现》阅读笔记5-RDB持久化

.

2018-09-13 20:07:27 211

原创 编译原理1-引论

1.1 什么是编译 编译:将高级语言(源语言)翻译成汇编语言或机器语言(目标语言)的过程 源语言 目标语言 过程名称 高级语言 机器语言 编译 汇编语言 机器语言 编译 高级语言 汇编语言 汇编步骤源程序经过预处理器(将分块的源程序聚合到一起)得到预处理的源程序预处理的程序经过编译器得到汇编语言汇编...

2018-09-09 14:30:48 417

原创 《Redis设计与实现》阅读笔记4-数据库

8 数据库8.1 服务器中的数据库struct redisServer{ //... //一个数组,保存所有数据库 redisDb *db; //服务器数据库数量 int dbnum; //...}Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组中每个项都是一个redisDb结构...

2018-09-08 17:37:53 179

原创 《Redis设计与实现》阅读笔记3-数据结构与对象(对象)

二 对象

2018-09-08 17:37:25 213

原创 《Redis设计与实现》阅读笔记2-数据结构与对象(整数集合,压缩列表)

一 数据结构与对象5 整数集合 整数集合是集合键的底层实现之一,当一个集合键只包括整数值元素,且数量不多时,Redis就会使用整数集合做为集合的底层实现5.1 整数集合的实现typedef struct intset{ //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; ...

2018-09-08 17:37:19 160

原创 《Redis设计与实现》阅读笔记1-数据结构与对象(字符串,链表,字典,跳跃表)

一 数据结构与对象1.1 简单动态字符串1.2 链表1.3 字典1.4 跳跃表1.5 整数集合1.6 压缩列表1.7 对象

2018-09-07 10:51:09 380

原创 idea+maven(远程连接)使用Jedis

我的情况:我在自己的服务器上开启的redis,然后在本机远程连接redis,开发工具为idea,使用maven来依赖注入。1 创建项目与连接redis创建普通的maven项目依赖注入 <dependencies> <dependency>

2018-08-17 17:57:11 1351

原创 Redis的复制

1 概念Redis的复制也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主2 读写分离2.1 主从的配置2.1.1主从库的配置配从(库)不配主(库)从库配置:slaveof 主库IP 主库端口2.1.2 配置文件的修改基础配置拷贝3个redis.conf文件(...

2018-08-10 13:42:20 471

原创 Redis的发布订阅

1 概念进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。2 指令2.1 可以一次性订阅多个,SUBSCRIBE c1 c2 c32.2 消息发布,PUBLISH c2 hello-redis2.3 订阅多个,通配符*, PSUBSCRIBE new*2.4 收取消息, PUBLISH new1 redis2015代码片://端口1订...

2018-08-09 10:03:29 126

原创 Redis事务

1 redis的事务简介可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。一个队列中,一次性、顺序性、排他性的执行一系列命令。2 使用2.1 命令multi 标记一个事务块的开始exec 执行事务块内的所有命令discard 取消事务,放弃事务块内所有命令watch key/[key1 ...

2018-08-04 17:08:20 135

原创 Redis持久层

1 RDB(Redis DataBase)1.1 RDB是什么在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高...

2018-08-04 11:05:52 646

原创 Redis常见的配置文件说明

参数说明,redis.conf 配置项说明如下:daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程。pidfile /var/run/redis.pid 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。port 6379 指定Redis监听...

2018-08-02 11:40:44 145

数字逻辑复习题

计数进位制转换,符号数的编码表示,奇偶校验码,海明码,可靠性编码设计,卡诺图化简

2018-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除