- 博客(75)
- 问答 (2)
- 收藏
- 关注
原创 JUC学习笔记
本身是一种抽象的概念并不真实存在,它仅仅描述的是一组约定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性、可见性和有序性展开的。它要做的事情是:让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。当一个线程在获取锁的时候,发现锁被其他线程占有,不马上阻塞自己,在不放弃CPU使用权的情况下,多次尝试获取。
2023-10-08 12:03:08
163
原创 Vue使用beforeRouteUpdate和beforeRouteLeave解决路由前置钩子需要与实例通信的问题
使用beforeRouteUpdate和beforeRouteLeave解决路由前置钩子需要与实例通信的问题前景提要近期项目有个需求:为了增加用户粘性,增加菜单要可配置成需要登陆后才允许访问的功能。最初的想法:在路由前置钩子中,判断目标路由是否需要登陆,不需要就直接跳转,否则弹出登录对话框。然后问题来了:当初写登录的时候,没有写成一个组件,仅仅是常驻组件header中的一个对话框,通过一个布尔loginFlag判断是否打开对话框。然而,在全局前置钩子中无法访问组件实例this,无法通过事件总线与对话
2022-03-29 17:13:00
1615
原创 Vue路由添加公共参数
Vue路由添加公共参数如Vue-Router介绍所说,router.beforeEach是路由跳转前的钩子,需要增加公共参数可以在这里处理。In that case, you must call next exactly once in any given pass through a navigation guard.router.beforeEach中第三个参数next,必须在每一种给定的导航中严格执行一次。执行分两种情况next(),这种情况不再执行前置钩子next('/'),这种情
2022-03-25 22:38:32
2965
原创 事件总线,Vue兄弟组件通信、传值
事件总线,Vue兄弟组件通信、传值父子组件在Vue中,父子组件通信、传值是比较方便的。通过$emit和@事件名即可完成通信<!-- 子组件 --><template> <button @click="sendToParent"> 向父组件传值 </button></template><script>export default{ name: 'son', data(){
2022-03-25 22:23:44
430
原创 Windows、Linux定时备份Mysql数据库
文章目录备份脚本定时任务LinuxWindows删除过时备份文件LinuxWindows参考资料备份脚本之前写过一篇Mysql备份与还原命令,其中今天的备份脚本就是用的这篇文章提到的mysqldump。mysqldump是mysql自带的转储数据库以进行备份的客户端工具。常用于备份数据库# mysqldump -h主机 -P端口 -u用户 -p密码 [选项] > 转储目标文件mysqldump -h127.0.0.1 -P3306 -uroot -p --all-databases >
2022-02-15 23:46:12
776
原创 iView upload组件手动上传、图片预览
iView upload组件手动上传、图片预览手动上传iview文档中并没有实际的上传操作实现<Upload ref="upload" :format="['jpg','jpeg','png']" :before-upload="handleUpload" type="drag" :show-upload-list="false" :action="actionUrl" :data
2021-10-08 17:43:33
2065
原创 基于OAuth2查询在线用户及强退用户
基于OAuth2查询在线用户及强退用户场景最近工作的项目需要做认证授权、限制授权登录用户。需要统计当前在线用户数,及强退指定用户。效果实现获取所有在线用户登录后,OAuth2会向Redis存放用户的token信息,键是token值,值是OAuth2的认证对象。实现思路:从Redis中获取所有的token值,及通过RedisTokenStore获取到OAuth2的认证对象。/** * VO */@Data@AllArgsConstructor@NoArgsConstructor
2021-08-10 10:25:32
2248
2
原创 Feign 传输 MultipartFile 的一些问题
Feign 传输 MultipartFile 的一些问题File 转 MultipartFilepom.xml<!-- https://mvnrepository.com/artifact/org.springframework/spring-mock --><dependency><groupId>org.springframework</groupId><artifactId>spring-mock</artifactId&g
2021-05-21 16:52:31
714
原创 用反射实现实体类数据导出excel
// 参数解释:// 1. title, Map<Integer, String[]>// 1.1 key - Integer, 列数// 1.2 value - String[] 容量为2的数组,0位置存储实体类属性名,1位置存储excel中该列标题// 2. data, 需要导出的数据// 3. clz, 需要导出的实体类的class// 4. 文件名public <T> HSSFWorkbook fillExcel(Map<Integer, String[]
2021-04-06 14:23:59
248
原创 位运算 n & (n-1)、Leetcode231、面试题 05.06
位运算 n & (n-1)作用n & (n-1)作用:将最低为的1改为0。举例 6 110 //原始数& 5 101-------- 4 100 //6 最低位 1 改为 0& 3 011-------- 0 000 //4 最低位 1 改为 0应用判断一个正整数是否为2的幂如果(n & (n-1)) == 0则这个正整数为2的幂。解释2的幂的二进制特点:有且只有一个1。如果一个正整数二进制最低位1改为0后,没有其他的
2020-10-29 22:04:19
298
原创 Centos7 安装 RabbitMQ
Centos7 安装 RabbitMQ安装查看RabbitMQ版本对应eralng版本RabbitMQ Erlang Version Requirements下载对应erlang版本rabbitmq / erlang-rpmwget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.1.1/erlang-23.1.1-1.el7.x86_64.rpm下载RabbitMQrabbitmq - releases
2020-10-16 14:09:57
208
原创 摩尔投票,leetcode169,leetcode229
摩尔投票初步认识涉及题目LeetCode 169 - Majority Element算法概述在给定的数组中,找出其中出现次数超过n/2的元素。题目假定一定存在一个元素出现超过n/2次。思路每次删除数组中两个不相同的元素,遍历完数组后,剩下的元素一定是出现超过n/2次的元素。定义候选者cand赋任意值、计数器count初始化为0遍历数组如果count值为0,将cand赋值为当前值nums[i],count赋值为1如果count值不为0,且当前值nums[i]等于cand的值,则co
2020-10-10 16:44:17
129
原创 Floyd判圈算法
Floyd判圈算法算法概述Floyd 判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm)。是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,求出该环的起点与长度的算法。思路设两个指针t和h已不同步伐(t一步h两步)从起点出发,如果存在环,两个指针必有某时刻相遇。解决问题是否存在环设两个指针t和h已不同步伐(t一步h两步)从起点出发:如果快指针到达了链表尾部,两者都没相遇,则没有环。
2020-10-10 11:10:44
783
原创 Java实现WebSSH,自适应宽高、心跳检查、断开自动重连
文章目录效果自适应宽高心跳检查断开自动重连关键代码自适应宽高心跳检查断开后自动重连参考资料基于NoCortY的项目WebSSH修改:升级xterm到4.x自适应宽高心跳检查断开自动重连NoCortY的博客:使用纯Java实现一个WebSSH项目篇幅限制,这里只放出效果及关键代码。完整代码见 mervynlam/Webssh-Java - Github效果自适应宽高心跳检查断开自动重连关键代码自适应宽高前端//terminal 大小改变function resizeT
2020-09-25 10:46:31
1316
2
原创 Windows下更新 Mysql5.6 到 5.7
升级步骤下载Mysql5.7备份旧数据库mysqldump -uroot -p123456 --all-databases > all_db.sql停止服务net stop Mysql# Mysql 替换为电脑中的服务名# 等待出现 MySQL 服务已成功停止。删除服务在旧数据库bin目录下打开命令行mysqld --remove Mysql# Mysql 替换为电脑中的服务名# 等待出现 Service successfully removed.解
2020-09-15 17:51:46
319
原创 使用 PicGo + Github 为Typora 提供图床
使用 PicGo + Github 为Typora 提供图床Typora 是一款非常好用的跨平台“所见即所得”的 Markdown 编辑器。一直使用 Typora 编写 Markdown 文本:博客、笔记之类的。但是在写笔记、博客时,使用的图片都是本地路径,上传到 Github 后,会有图片无法显示的问题。所以今天学习一下使用 PicGO + Github 建立自己的图床。软件下载及安装NodejsTyporaPicGo创建图片仓库Github 中创建一个用于存放图片的库。创建一个Tok
2020-08-21 13:57:08
164
原创 Mysql备份与还原命令
Mysql备份与还原命令备份命令:mysqldump -h127.0.0.1 -P3306 -uroot -p123456 mytable > mytable.sql还原命令:mysql -h127.0.0.1 -P3306 -uroot -p123456 mytable < mytable.sql-h主机-P端口-u用户名-p密码mytable需要备份的库mytable.sql备份的文件名Java 实现//备份public void backup() {
2020-08-14 17:03:16
209
原创 展开、收起过高div
<!DOCTYPE html><html><head> <title></title> <style type="text/css"> .contentDiv { width: 300px; } .hideDiv { display: -webkit-box; -webkit-box-orient.
2020-07-29 17:08:05
249
原创 javascript 拖拽调整div大小
<!DOCTYPE html><html><head> <title></title> <style type="text/css"> div { height: 200px; position: absolute; top: 0px; } .right { right: 0
2020-07-29 16:46:09
862
原创 layui table 方法渲染添加、修改、删除行
以前写过一篇自动渲染和静态表格的动态添加行:layui table点击按钮添加、删除一行今天学习别人的方法渲染表格动态添加、修改、删除行。//表格渲染var tableId = "dataTable";var tableIns = table.render({ elem: "#" + tableId, id: tableId, data: tbData, page: false, cols: [[ {field: "name", minWidth: 150,
2020-07-29 16:24:23
5418
原创 矩阵快速幂笔记
这里写自定义目录标题矩阵快速幂常规求幂递归快速幂矩阵快速幂矩阵乘法求解递归状态转移确定矩阵Ajava 代码实现参考资料矩阵快速幂常规求幂求ana^nan的值,如果用纯for循环,要循环n次乘a。时间复杂度:O(n)空间复杂度:S(1)递归与二分法异曲同工。例:a57={a28{a14{a7{a3{aaaa3aa7a14a28aa^{57} =\left \{\begin{matrix} a^{28} & \left \{\begin
2020-07-24 15:33:51
166
转载 win10开启FTP服务并设置登录验证
控制面板->程序->启用或关闭Windows功能小娜搜索IIS打开IIS右击网站添加FTP站点输入站点名称和作为FTP的目录IP地址填FTP本机IP,选择无SSL根据需要选择身份验证,授权与权限控制面板->系统和安全->防火墙->允许应用或功能通过Window防火墙点击更改设置,勾选FTP服务器点击允许其它应用,选择C:\Windows\System32\svchost.exe然后添加,最后确定。资源处理器访问ftp:// IP 试试吧!.
2020-07-07 13:57:23
7566
原创 spring获取静态资源目录
使用HttpServletRequestString staticPath= request.getSession().getServletContext().getRealPath("/")+"static/";使用ContextLoaderWebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();ServletContext servletContext = web
2020-06-28 09:29:33
722
原创 SQL索引学习笔记
文章目录SQL索引本质Hash - 哈希索引B+Tree 索引二叉搜索树平衡二叉树B-Tree 多路搜索树、多叉平衡查找树B+Tree聚集索引`myisam` 引擎`innodb`引擎主键索引优秀的索引列的离散性联合索引覆盖索引三星索引SQL索引本质索引(index)是帮助MySQL高效获取数据的数据结构。在RDBMS中,索引存储在硬盘中。Hash - 哈希索引AHI-adaptive hash index - 自适应哈希索引对字段计算hash值,将hash值和行指针对应存在hash表中。为什
2020-06-08 23:08:38
353
原创 Java 实现 RSA 非对称加解密
Java 实现 RSA 非对称加解密RSA 加解密RSA是一种非对称加密算法,拥有一对密钥(公钥和私钥),由公钥加密的数据只能由私钥解密,由私钥加密的数据只能由公钥解密。RSA 工具类public class RsaUtils { //加密算法RSA private static final String ALGORITHM = "RSA"; //密钥长度 private static final int KEY_SIZE = 1024; //公钥文件
2020-05-21 16:43:44
699
原创 Nacos学习笔记,及demo实现
文章目录NacosNacos 简介简介特性安装Nacos 配置管理Nacos 配置管理 - 基础应用Nacos 配置管理模型Nacos 配置管理 - Java实现Nacos 配置管理 - 分布式系统应用单一配置文件实现自定义扩展 dataId自定义共享 dataId配置优先级Nacos 集群部署Nacos 服务发现Nacos 服务发现 - 快速入门Nacos 服务发现 - 基础应用Nacos 服务...
2020-05-06 16:06:04
1113
1
原创 mysql查询动态行转动态列,并使用mybatis执行
mysql查询动态行转动态列,并使用mybatis执行语句。新建表# 学生表DROP TABLE IF EXISTS students;CREATE TABLE students( `id` INT(3) NOT NULL COMMENT '主键', `name` VARCHAR(10) NOT NULL COMMENT '姓名', `age` INT(3) NOT...
2020-04-07 17:58:14
3034
原创 layui-table动态列实现
前两天项目遇到一个场景,使用layui table时,除了固定列之外,还需要使用动态列来展示一些动态数据。基本思路:从后台获取数据,处理成数组类型声明一个二维数组,根据列需求动态添加元素作为动态列table渲染时指定数据和列套路:$.ajax({ url: url , type : "GET" , dataType: "JSON" , succes...
2020-04-07 16:35:32
12123
原创 Nginx 学习笔记
文章目录NginxNginx优势及特征安装启动、停止 nginx开机启动修改配置(负载均衡、动静分离)参考资料NginxNginx优势及特征负载均衡反向代理动静分离高可用高并发默认监听80端口,反向代理到各个tomcat服务器,实现负载均衡,高并发安装下载 nginx 压缩包到/usr/local目录nginx官网下载cd /usr/localwget http://...
2020-03-16 14:51:46
190
原创 git多用户配置
git多用户配置场景在git的使用中,经常会出现这种情况:在公司有一个git账户,github上有个人账户,希望在同一台电脑针对不同的项目使用不同的账号。此时就需要进行git多用户配置创建用户全局用户git config --global user.name "globalUser"git config --global user.email "global@email.com"...
2020-03-09 12:18:00
453
原创 vmware固定虚拟机ip地址
记录子网掩码和网关地址编辑 /etc/sysconfig/network-scripts/ifcfg-ens33文件修改BOOTROTO为"static",添加想要固定的IP地址、刚刚记录的子网掩码和网关。保存并退出。重启网络,查看ip地址。system network restart...
2020-02-05 16:02:13
336
原创 sublime3实现markdown在chrome中实时预览,解决livereload无效问题。
需要插件语法高亮 Markdown Editting实时预览(使用浏览器预览) Markdown Preview热加载 LiveReloaddchrome 浏览器扩展 LiveReload使用方法解决liveReload无效问题:chrome安装liveReload扩展后直接跳到第3步配置sublime和chrome中的liveReload。sublime和chrome分别安装...
2019-12-18 09:46:24
756
4
原创 docker学习笔记:安装、命令、端口映射、数据卷、Dockerfile、Registry、Harbor、资源限制
文章目录安装操作命令镜像容器生命周期操作端口映射数据卷数据卷特性命令数据卷容器数据卷的备份和还原安装安装依赖docker依赖于系统的一些必要的工具,可以提前安装yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源yum-config-manager --add-repo http://mirrors.aliy...
2019-12-17 18:02:34
327
原创 linux安装nvm、nodejs、pm2
该文章分为在线安装和离线安装两个部分。如果在线安装无法成功请看离线安装。以下内容以centos7为例。文章目录在线安装离线安装在线安装安装nvm[root@localhost ~]# curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash[root@localhost ~...
2019-12-13 10:25:51
394
原创 linux安装mysql5.7
以下内容以centos7为例下载mysql下载地址https://dev.mysql.com/downloads/mysql/5.7.html#downloads根据系统选择参考博客:https://blog.csdn.net/pdsu161530247/article/details/81585889...
2019-12-10 17:35:51
171
原创 linux安装tomcat
tomcat下载地址复制这个文件的链接地址。下载tomcatwget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz解压tar -zxvf apache-tomcat-8.5.49.tar.gz修改文件名mv apache-tomc...
2019-12-10 11:08:34
129
原创 linux安装、卸载JDK
以下内容以centos7为例。检查是否已安装jdkjava -version若版本合适可不卸载,直接使用。卸载JDK查看已安装的JDK环境yum list installed |grep java卸载yum -y remove java-1.7.0-openjdk*yum -y remove tzdata-java.noarch安装JDK查看JDK软件包列表yum sear...
2019-12-10 10:21:29
189
原创 linux 关闭防火墙、防火墙开机不启动
centos7关闭防火墙systemctl stop firewalld防火墙开机不启动systemctl disable firewalld
2019-12-10 10:08:21
877
空空如也
安卓开发从SD卡中读取音乐的信息的问题
2016-01-02
关于安卓button的findviewbyid导致程序报错,和adapter的使用错误
2015-12-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人