- 博客(32)
- 资源 (198)
- 收藏
- 关注
原创 List转Page对象,看这篇就够了,附代码、实验结果&分页自己编程实现
List 转 Page 对象public class ListConvertPageUtil { public static <T> Page<T> convertList2PageVO(List<T> list, Integer page, Integer size) { Pageable pageable = new PageRequest(page - 1, size); if (CollectionUtils.is...
2020-09-29 17:05:51 10074 2
原创 深入理解写时复制技术!CopyOnWrite
写时复制(读写分离的思想):读取时不加锁只是写入和删除时加锁 实现机制(volatile + ReentrantLock)往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。提高并发:我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器。内存占用:因为Copy..
2020-09-29 16:08:37 2008
原创 ArrayList 和 LinkedList 有什么区别?
ArrayList 在新增和删除元素时,因为涉及到数组复制,所以效率比 LinkedList 低,而在遍历的时候,ArrayList 的效率要高于 LinkedList。01、ArrayList 是如何实现的?ArrayList 实现了 List 接口,继承了 AbstractList 抽象类,底层是基于数组实现的,并且实现了动态扩容。publicclassArrayList<E>extendsAbstractList<E>implemen...
2020-09-28 14:49:31 346
原创 分布式事务
最近,工作中要为现在的老系统做拆分和升级,刚好遇到了分布式事务、幂等控制、异步消息乱序和补偿方案等问题,刚好基于实践结合个人的看法记录一下一些方案和思路。分布式事务首先,做系统拆分的时候几乎都会遇到分布式事务的问题,一个仿真的案例如下:项目初期,由于用户体量不大,订单模块和钱包模块共库共应用(大war包时代),模块调用可以简化为本地事务操作,这样做只要不是程序本身的BUG,基本可以避免数据不一致。后面因为用户体量越发增大,基于容错、性能、功能共享等考虑,把原来的应用拆...
2020-09-27 10:13:52 101
原创 深入剖析Redis持久化,RDB还是AOF!?
RDB(Redis Persistence Demystified)RDB指的是 ——>在指定的时间间隔内(规则)将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。持久化过程:Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整.
2020-09-25 17:34:00 222
原创 忽略ssl证书的验证 ——> 丝滑处理IDEA已配置阿里云镜像,但Maven无法下载jar报包 <—— 阿里云不支持http下载了
配置:-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true还需要配置的是: maven文件夹下的settings.xmlhttps://maven.aliyun.com/repository/public阿里云镜像下载路径<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf..
2020-09-25 16:00:12 1489
原创 单一账户操作,追踪操作人(新增数据、更新数据)!
BaseJpaEntity建议加上这两个字段吧,方便追溯记录:@CreatedByString createBy;@LastModifiedByString updateBy;1. 加上这个设置当前用户 、注入到Spring容器@Componentpublic class SpringSecurityAuditorAware implements AuditorAware<String> { @Override public String getCurrentA.
2020-09-24 16:23:05 131
原创 IDEA之maven导航栏显示( view -> tool button 勾上)
右侧咋不显示maven的导航栏呢?需要小小的设置 view -> tool button 勾上
2020-09-23 15:37:29 2128
原创 JDK1.8中ConcurrentHashMap源码解析,底层如何保证安全高效的?
在高并发、多线程场景下,HashMap不安全、HashTable效率低,这时需要在保持同步的同时并发效率比较高,那么,ConcurrentHashMap就自信地出场了...看一下源码中对这个类的描述:这个哈希表的主要设计目标是维护并发可读性(通常是get()方法,但也有迭代器和相关方法),同时最小化更新争用。次要目标是保持空间消耗与java.util相同或更好。HashMap,并支持高多个线程对空表的初始插入率。键值信息存在Node节点中,该节点主要信息为hash、key、va...
2020-09-22 17:04:22 1321
原创 MySQL读写分离&主从同步理论介绍&时延问题
大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?如何实现读写分离基于主从复制架构,一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。主从复制原理主库将变更写binlog日志,然后从库连接到主库之后,从库有一个IO线程,将主库的binlog日志拷贝到自己本地,写入一个中继日志中。接着从库中有一个SQL线程会从中继日志读取binlo
2020-09-21 14:49:33 171
原创 MySQL的体系架构 & InnoDB&数据库优化 & 不合适的索引适得其反
一览MySQL的体系架构引自《MySQL技术内幕InnoDB存储引擎》p4由体系机构图来看,MySQL主要由以下几部分组成: 连接池组件 (管理连接,权限校验等) 管理服务和工具组件 SQL接口组件 查询分析器组件 (语法树分析) 优化器组件 缓冲组件 (存储访问时的缓存表和索引数据。在专用服务器上,通常会为缓冲池分配50% - 75%的物理内存) 插件式存储引擎 (区别于其他数据库的重要特点之一) 物理文件 注意:
2020-09-21 14:10:18 437 2
原创 揭开JVM垃圾回收的神秘面纱?JVM到底用的什么算法去发现垃圾的?附代码及GC日志 堆内存大小设置,垃圾对象会被回收几次?
/** * @Author: Be.insighted * Description: * @date Create on 2020/9/18 15:08 **/public class TestGC { public Object instance; private static final int _1MB = 1024*1024; private byte[] bigsize = new byte[2*_1MB]; public static void te.
2020-09-18 16:00:17 166 1
原创 记一次电话面试,谈谈面试中的那些奇葩问题!
HS公司,202009121700~202009121750老生常谈的问题,首先是自我介绍主要说了下再当前公司用什么语言什么框架做了什么!1、你们公司用的是微服务架构,你能说说微服务架构与SOA架构相比,有什么优缺点?SOA(面向服务的架构):是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交
2020-09-13 13:30:40 360
原创 一文了解zookeeper
Zookeeper是Apache开源的一个分布式框架,它主要为分布式应用提供协调服务。Zookeeper主要负责存储和管理大家都关心的数据,一旦这些数据的状态发生变化,Zookeeper就会通知那些注册在Zookeeper上的服务。简单来讲就是zookeeper=文件系统+通知机制。一 Zookeeper的数据结构Zookeeper的数据结构与Unix文件系统很类似,整体上可以看作是一棵树,与Unix文件系统不同的是Zookeeper的每个节点都可以存放数据,每个节点称作一个ZNode,默认存储
2020-09-12 10:16:11 64
原创 Redis (缓存)主流应用架构 & Redis实现分布式锁
Redis (缓存)主流应用架构Redis为什么能这么快?阻塞IO模型IO多路复用模型Redis的一些底层数据结构实现分布式锁方法二、解决1可能持有锁成功,然后设过期时间出现问题的情况!...
2020-09-10 16:13:15 152
原创 Redis中如何从海量Key里查询出某一固定前缀的Key?
批量生成redis测试数据1.Linux Bash下面执行for((i=1;i<=20000000;i++)); do echo "set k$i v$i" >>/tmp/redisTest生成2千万条redis批量设置kv的语句(key=kn, value=vn)写入到/tmp目录下的redisT&2.用vim去掉行尾的M符号,使用方式如下::vim /tmp/redisTest.txt:set fileformat=dos#设置文件的格式,通过这句话去掉每行结尾的^
2020-09-10 14:17:13 686 1
原创 IDEA使用maven打包时报 MojoExecutionException 或者项目程序包不存在和找不到符号 使用命令: mvn idea:idea 解决问题
IDEA使用maven打包时报 MojoExecutionException 或者项目程序包不存在和找不到符号 使用命令: mvn idea:idea 解决问题
2020-09-10 09:26:21 7713
原创 浅析AQS原理
来,一览多线程抢占式获取state过程AbstractQueuedSynchronizer基于ReentrantLock实现!* <p>To enqueue into a CLH lock, you atomically splice it in as new* tail. To dequeue, you just set the head field.* <pre>* +------+ prev +-----+ +-----+* h
2020-09-09 18:46:49 184
原创 MySQL存储引擎之InnoDB小结
一览 InnoDB 结构InnoDB简介InnoDB是一个平衡了高可用和高性能的通用存储引擎。完整支撑ACID事务的MySQL存储引擎。具有行锁设计、支持MVCC、外键、提供一致性非锁定读,同时被设计用来最有效地利用以及使用内存和CPU。并发操作更新或插入秒800!...
2020-09-09 11:54:52 184
原创 MySQL架构 & 如何设计一个关系数据库?
一览MySQL的体系架构引自《MySQL技术内幕InnoDB存储殷勤》p4由体系机构图来看,MySQL主要由以下几部分组成:连接池组件 (管理连接,权限校验等) 管理服务和工具组件 SQL接口组件 查询分析器组件 (语法树分析) 优化器组件 缓冲组件 (存储访问时的缓存表和索引数据。在专用服务器上,通常会为缓冲池分配50% - 75%的物理内存) 插件式存储引擎 (区别于其他数据库的重要特点之一) 物理文件注意: 存储引擎基于表而非数据库!存储引擎的底层物理结构的实现!
2020-09-09 11:42:35 156
原创 复杂的高频SQL语句&清空表SQL语句
常见SQL语句练习先来看一下表之间的结构和联系创建表结构CREATE TABLE course (cid INT, cname VARCHAR(20), tid INT, PRIMARY KEY(cid)) ENGINE = INNODB;CREATE TABLE teacher (tid INT, tname VARCHAR(20), tcid INT,PRIMARY KEY(tid)) ENGINE = INNODB;CREATE TABLE student (sid INT,
2020-09-08 15:14:14 592
原创 SQL执行计划十大参数解析& SQL语句执行顺序 & 一条查询语句在MySQL中是如何工作的
数据库系统命令查看各项性能指标show status;show variables;优化sql时需要知道sql语句的执行顺序,平时写SQL的时候:select distinct... from... join...on...where...group by...having...order by...limit...而实际数据库引擎在真正解析时,按from...on...join...where...group by...having...select distin.
2020-09-07 17:37:20 831
原创 InnoDB存储引擎中的自适应哈希索引
InnoDB存储引擎使用哈希算法来对字典进行查找,其冲突机制采用链表方式,哈希函数采用除法散列方式。对于缓冲池页的哈希表来说,缓冲池的Page页都有一个chain指针,指向相同哈希值的页。对于除法散列,模m的值略大于2倍的缓冲池的总页数的质数。如: innodb_buffer_pool_size = 10M ,则共有页数为 10*1024*1024/(16*1024) = 640个页。缓冲池页内存的哈希表来说,需要分配640*2个槽,比1280大的最小质数为1399,启动时会分配1399个槽
2020-09-07 14:20:57 644
原创 MySQL数据库表设计基本概要
引言数据库的性能取决于数据库级别的几个因素,例如表,查询和配置设置。基本设计 表结构设计是否最优? 列值类型设计策略,对字段内容评估使用合理数据类型,即最小化它们在磁盘上的空间! 频繁更新的表 <——> 列少 ; 分析大数据量的应用 <——> 列多 索引设计是否合理? <——> 查询命中 存储引擎是否合理?对于InnoDB 、MyISAM选择是否正确? 一般而言,InnoDB是默认存储引擎。适合操作频繁、事务、高并发、聚簇索引(叶子
2020-09-05 16:01:32 237
原创 Java高级工程师总结的MySQL规范
1. 命名规范 库名、表名、字段名、索引名必须采用小写英文单词/缩写,禁用特殊符号,采用下划线分隔 库名、表名、字段名、索引名不得超过32个字符,中间不要留空格字符,不使用mysql保留关键字,不得使用下划线作起止字符 临时库、临时表名必须以tmp为前缀并以日期为后缀tmp_xxx_0904 备份库、备份表名必须以bak为前缀并以日期为后缀 bak_xxx_0904 分表后的表名后缀用数字递增,且从零开始,例如:test_0、test_100 库...
2020-09-04 15:58:02 159
原创 浅析HashMap,何时树化?常见面试题解析
首先来看下HashMap的类描述/** * Hash table based implementation of the <tt>Map</tt> interface. This * implementation provides all of the optional map operations, and permits * <tt>null</tt> values and the <tt>null</tt> key.
2020-09-04 15:48:01 996
原创 IDEA 自动绘制时序图之 SequenceDiagram 插件 <—— (源码分析&项目分析)好帮手
IDEA 自动绘制时序图之SequenceDiagram插件(源码分析&项目分析) 看源码或者新到公司看项目代码时,往往由于方法调用层级深度比较多,层层深入到某处时,已经忘记了身处何处,虽然自己可以使用一些画图工具来时序图,但是,这种情况下,自己画时序图很繁琐,比较浪费时间!SequenceDiagram初登场IDEA有一个插件可以自动生成时序图,工具名称:SequenceDiagramCtrl+Alt+S 快捷键进入我这里已经安装:如未安装此插件,...
2020-09-03 15:30:51 1292
原创 nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException, 检查实体字段与数据库字段的映射
{"timestamp":1599039364449,"status":500,"error":"Internal Server Error","message":"Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is o
2020-09-02 17:45:27 624
原创 使用POI对Excel文件的一些简单操作(生成、读取),附代码
import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apach.
2020-09-02 16:26:25 224
原创 记一次更新服务MySQLTimeoutException(表数据量较大增加列执行超时所致)
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autocon
2020-09-01 14:55:58 1335
原创 IDEAmvn报错,Failed to clean project: Failed to delete&[ERROR] /MAVEN/MojoExecutionException,请关掉所有运行的服务
mvn clean install 报错[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project MmpFrontTest: Failed to clean project: Failed to delete D:\sourceGit\*********** -> [Help 1] [ERROR] [ERROR] To see
2020-09-01 14:29:40 512
原创 RabbitMQ总结及如何设计MQ要点剖析
RabbitMQ总结及如何设计MQ要点剖析使用场景你工作中的业务场景 <——> 比如:比如我们有个订单系统,订单系统会每次下一个新的订单的时候,就会发送时一条消息到ActiveMQ里面去,后台有个库存系统负责获取了消息然后更新库存。智能售餐系统绑定的商品关联的菜谱发生图片、名称、描述等信息变更时,需要通知设备端、商业云!为什么使用先说一下消息队列的常见使用场景吧,其实场景有很多,但是比较核心的有3个:解耦、异步、削峰解耦:现场画个图来说明一下,A系统发送个数据到BCD三个
2020-09-01 11:08:47 329
系统集成项目管理工程师.rar
2021-03-13
JDK SE8 Java语言规范与虚拟机规范 官方文档
2020-10-14
message-push-service.rar
2020-08-26
redis、activemq、juc、jvm、gc等知识点的脑图.rar
2020-05-04
Windows下安装Rabbitmq需要的安装包.rar
2020-04-26
视频对应课件-软件设计师
2020-01-18
Interview_Guide.rar
2019-09-11
smartgit-win32-setup-jre-17_1_4.zip
2019-09-04
maven&freeSSHd&freeFTPd&gitblit-1.9.2&pdfbox-2.0.28.jar
2023-05-11
水果商城sql文件,亲测可用
2022-12-04
Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现.rar
2021-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人