自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Java对象集合转成tree结构

【代码】Java对象集合转成tree结构。

2023-08-18 14:59:25 336 1

原创 MAC本地电脑免密登陆Linux服务器

我们利用ssh 访问Linux服务器,每次都需要输入密码,非常麻烦,可以通过公钥的方式免密登陆。

2023-06-20 15:28:31 460 1

原创 Sharding JDBC分库分表及读写分离

与将数据根据分片键打散至各个数据节点的水平分片不同,读写分离则是根据 SQL 语义的分析,将读操。#cid列的值%2+1,要么等于1就选course_1表,等于2就选course_2表。#cid列的值%2+1,要么等于1就选course_1表,等于2就选course_2表。#真实表分布,m1库的course_1或course_2的表。#真实表分布,m1库的course_1或course_2的表。#读写分离规则, m0 主库,s0 从库。#用表的cid列作为分片规则。#基于读写分离的表分片。

2023-03-23 11:52:45 189

原创 IO、NIO、IO多路复用及netty

IO、NETTY

2023-02-17 10:53:20 289

原创 mybatis+自定义注解实现对数据库敏感字段进行加密

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括://语句执行拦截// 参数获取、设置时进行拦截// 对返回结果进行拦截//sql语句拦截简而言之,即在执行sql的整个周期中,我们可以任意切入到某一点对sql的参数、sql执行结果集、sql语句本身等进行切面处理。

2022-12-08 15:27:16 1413 2

原创 MAC TELENT命令找不到

1 首先执行 安装Telent 命令:brew install telnet如果系统提示 zsh: command not found: brew ,则执行/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"序列号选择中科大(1)原因是 未安装homebrew...

2022-04-09 23:22:48 1183

原创 Linux下创建定时备份数据库

1 背景线上发生过数据库误操作事件,项目组要求对生产库定时进行备份。2 实现步骤2.1 备份与还原数据库命令#前提是安装了mysqldumpmysqldump -u $username -p$password $database_name > $backup_dir/mydb.sql

mysql -u $username -p$password $database_name < /opt/startdt/mysql-backups/mydb.sql2.2 实现过程

2022-04-07 10:43:15 1383

原创 MAC启动项目慢的解决方法

打卡系统偏好设置->共享修改电脑名称修改hosts文件/etc/hosts在localhost后面加上 电脑名称.local

2021-11-10 15:06:36 889

原创 GIT LINUX 常用命令

Git 命令git stashgit pullgit stash popmvn clean install -Dmaven.test.skipmvn dependency:tree//撤销最近的commitgit reset HEAD~//代码还原git reset --hard将指定的提交commitHash,合并到当前分支git cherry-pick 3252b2a5c9c9ecf84a2e43feaa27fa9a17c0d889Linuxtail -n

2021-11-08 17:03:06 726

原创 2021面试题

1 Java相关1.1 反射和动态代理反射:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。动态代理:就是根据对象在内存中加载的Class类创建运行时类对象,从而调用代理类方法和属性。使用Proxy和InvocationHandler两个类,并实现invoke方法1.2 Spring的两种动态代理:Jdk和Cglib 的区别和实现java动态代理是利

2021-10-10 22:54:47 510 1

原创 框架知识Java

1 dubboDubbo的服务注册与发现是如何实现的答案要点1)服务容器负责启动,加载,运行服务提供者。2)服务提供者在启动时,向注册中心注册自己提供的服务。3)服务消费者在启动时,向注册中心订阅自己所需的服务。4)注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者Dubbo的软负载均衡策略有哪些?延伸题目:一致性Hash算法(或者其它算法)的原理是什么?答案要点1)Dubbo提供了4种均衡策略,如:Random LoadBa

2021-09-13 09:35:43 102

原创 MySQL数据库

1 MySQL复制功能1.1复制的作用 基于语句的复制和基于行的复制两种。 复制是让一台服务器的数据与其他服务器保持同步,通过复制可以让读操作指向备库来获得更好的读扩展。数据分布 负载均衡 备份 高可用和故障切换 MySQL升级测试1.2复制如何进行工作在主库上把数据更改记录到二进制文件。 备库将主库中的日志复制到自己的中继日志中。 备库读取中继日志事件,将其放到备库数据之上。1.3 复制的原理1、基于语句的复制在Master上执行的SQL语句,...

2021-09-09 17:55:51 168

原创 java面试

1 Java基础1.1 String、StringBuffer与StringBuilder之间区别String是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的String对象和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象StringBuffer字符串变量(线程安全)StringBuilder字符串变量(非线程安)1.2ArrayList与Lin...

2021-09-08 10:04:33 143

原创 缓存的风险

1 缓存穿透 缓存穿透指查询了数据库中不存在的数据,每次查询都会先查询一级、二级缓存 在查询到最末端的数据库。缓存穿透的原因有业务逻辑本身的问题和恶意攻击导致。针对业务逻辑的问题:可以约定在一定时间内对返回为空的key值进行缓存,使得在一定时间内缓存只被穿透一次。 针对恶意攻击 可以使用布隆过滤器来解决。所谓恶意攻击是指请求者刻意构造数据库中肯定不存在的 Key 值,然后发送大量请求进行查询。布隆过滤器是用最小的代价来判断某个元素是否存在于某个集合的办法。如果布隆过滤器给出的判定...

2021-07-26 11:38:49 219

原创 Java锁的分类

1 锁的分类无锁 -> 偏向锁->轻量锁(自旋锁)->重量级锁1.1 偏向锁当一个同步代码块中只有一个线程进行访问时,把整个同步都消除掉,标志位是01当有另外一个线程尝试获取该锁时,偏向模式宣告结束...

2021-06-27 16:31:49 87

空空如也

空空如也

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

TA关注的人

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