JUnit单元测试、反射、注解、动态代理 JUnit单元测试、反射、注解、动态代理直接上传的黑马的官方笔记。 反射、注解、动态代理在许多框架都有使用。 最近看Mybatis代码时,有点忘了,传上来好经常复习。 学习目标 能够使用Junit进行单元测试 能够通过反射技术获取Class字节码对象 能够通过反射技术获取构造方法对象,并创建对象。 能够通过反射获取成员方法对象,并且调用方法。 能够通过反射获取属性对象,并且能够给对象的属 2021-04-03 Java 基础 Java
MySQL_Join优化 MySQL_Join优化1. Simple Nested-Loop Join r为驱动表,s为匹配表,可以看到从r中分别取出每一个记录区匹配s表的列,然后合并数据,对s表进行r表的行数次访问,对数据库开箱比较大 建议小表驱动大表 2. Index Nested-Loop Join 这个要求非驱动表(s)上有索引,可以通过索引来减少比较,加速查询。 在查询时,驱动表(r)会根据关联字段的 2021-04-01 Database MySQL MySQL
MySQL的MVCC机制和锁 MVCC机制和锁1. 当前读和快照读MySQL的InnoDB存储引擎默认事务隔离级别是RR(可重复读), 是通过 “行排他锁+MVCC” 一起实现的, 不仅可以保证可重复读, 还可以部分防止幻读, 而非完全防止。为什么是部分防止幻读, 而不是完全防止? 效果: 在如果事务B在事务A执行中, insert了一条数据并提交, 事务A再次查询, 虽然读取的是undo中的旧版本数据(防止了部分幻读), 2021-04-01 Database MySQL MySQL MVCC
Redis缓存数据库双写不一致 Redis缓存数据库双写不一致学习笔记 1. 示例1.1 示例一 线程一:写数据库stock=10,之后发生卡顿或者延迟了很久才更新缓存 线程二:在线程一之后写数据库stock=6,然后更新了缓存stock=6 线程一:再线程二更新缓存结束后,卡顿或者延迟结束,更新缓存stock=10 结果:导致数据库stock=6,而缓存stock=10 解决方法:更新数据库之后删除缓存。 但是依然有问题,见示 2021-04-01 Database Redis Redis
Redis分布式锁的深入理解 Redis分布式锁的深入理解学习笔记 1. 高并发下的超卖bug先看一个简单的减库存代码 123456789101112131415161718192021222324252627package com.redissonimport ...@RestControllerpublic class IndexController{ @Autiwired private R 2021-03-31 Database Redis Redis
包装类注意点 包装类的注意点前言: 今天在刷leetcode76时候遇到一个奇怪的bug,发现是一个常见的笔试考题 补充: 2021.05.03 :原理其实就是一个享元模式的应用,关于享元模式在并发编程笔记中有详细解释 1. bug123456789101112131415161718192021222324252627282930313233343536373839404142class Solution & 2021-03-29 Java 基础 Java
常见攻击HTTP协议的五大方式 常见攻击HTTP协议的五大方式http协议从诞生至今伴随着互联网走过了相当长的岁月,就在当下,http协议依旧是搭建网站的主流协议。http协议的存在有其特定的历史意义,但是面对如今日益严峻的安全问题,http协议的不安全性也越发暴露,下面列举常见的攻击http协议的五大方式。 一.跨站脚本攻击(XSS)跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站 2021-03-28 CS Network Network CS HTTP
SSL的加密过程 SSL的加密过程 SSL(Secure Socket Layer)安全套接字层: SSL通过采用机密性、数据完整性、服务器鉴别和客户鉴别来强化TCP,经常用来为发生在HTTP之上的事务提供安全性。[1] HTTP + SSL = HTTPS 1. 加密方法 对称加密 非对称加密 2. 公钥认证非对称加密不能保证你获得的公钥是否是你要进行通信的实体的公钥。 于是有了数字证书的概念: 数字证书 2021-03-28 CS Network Network CS HTTPS SSL
Redis集群与企业级解决方案 Redis集群与企业级解决方案基于黑马Redis的视频的学习笔记 1. 主从复制1.1 主从复制简介1.1.1 互联网“三高”架构 高并发 高性能 高可用 1.1.2 单机redis的风险和问题 机器故障 容量瓶颈 结论: 避免单点redis服务器故障,准备堕胎服务器互联 互联服务器保证数据同步 实现Redis高可用,实现数据冗余备份 1.1.3 多台服务器连接方案 提供数据方:mast 2021-03-28 Database Redis Redis
Redis高级 Redis高级基于黑马Redis的视频的学习笔记 1. Linux环节安装1.1 安装 1.2 启动方式 普通默认端口启动 1234# 默认端口开启redis-serve# 默认端口连接redis-cli 指定端口启动 1234# 换端口启动redis-server --port 6380# 连接客户端指定端口连接redis-cli -p 6380 指定配置文件启动 redis-637 2021-03-27 Database Redis Redis