目录

chen 的个人博客

VX:TiAmo151028
Phone:13403656751
Email:zxydczzs@gmail.com

Layui下线

Layui 镜像站:https://layui.11dz.cn/

简单学习数据结构 有更新!

数据结构简介 数据结构是为实现对计算机数据有效使用的各种数据组织形式,服务于各类计算机操作。不同的数据结构具有各自对应的适用场景,旨在降低各种算法计算的时间与空间复杂度,达到最佳的任务执行效率。 常见的数据结构可分为[线性数据结构]和[非线性数据结构],线性数据结构:[数组]、[链表]、[栈]、[队列];非线性数据结构:[树]、[图]、[散列表]、[堆]。 数组 数组是将相同类型的元素存储与连续内存空间的数据结构,其长度不可变。 1// 初始化一个长度为5的数组arr 2int[] arr = new int[5]; 3// 元素赋值 4arr[0] = 1; 5arr[1] = 2; 6arr[2] = 3; 7arr[3] = 4; 8arr[4] = 5; 或者可以使用直接赋值的初始化方法 1int[] arr = {1,2,3,4,5}; 可变数组 [可变数组]是经常使用的数据结构,其基于数组和扩容机制实现,相比普通数组更加灵活。常用操作有:访问元素、添加元素、删除元素。 1// 初始化可变数组 2List<Integer> arr = new ArrayLis....

Linux搭建confluence企业级WIKI(破解) 有更新!

前言 从今天开始安装 confluence 的小伙伴一定要记得安装固定版本,因为在八月底 confluence 的某些版本有缺陷,经过身份验证的攻击者(在某些情况下未经身份验证的攻击者)通过构造恶意请求,造成 OGNL 注入,实现远程代码执行,所以官方给出了几个修复这个问题的版本,附截图和连接: https://confluence.atlassian.com/doc/confluence-security-advisory-2021-08-25-1077906215.html https://www.huaweicloud.com/notice/2021/20210826160403127.html 我这里安装的是 confluence v7.4.11 版本。 一、安装 MySQL 1、去官网下载 rpm 包,建议下载好在传到服务器中。 https://downloads.mysql.com/archives/community/ 描述一下我们下载了那些 rpm 2、上传至/usr/local/src 目录下,如下图所示。 3、安装,需要联网,使用如下命令: 1yum inst....

悲观锁、乐观锁、自旋锁、读写锁、共享锁、排它锁、统一锁、分段锁。 有更新!

悲观锁 1、定义 具有强烈的独占和排它特性,它指的是对数据被外界(包括本系统当前的其他食物,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。 2、Java 悲观锁实现之 synchronized synchronized 就是典型的悲观锁,相当于不管哪一个线程(例如线程 A),运行到这个方法时,都要检查有没有其他线程 B 或者 C、D 等正在用这个方法(或者该类的其他同步方法),有的话要等正在使用 synchronized 方法的线程 B 或者 C、D 运行完这个方法后再运行此线程 A,没有的话,锁定调用者,然后直接运行。 补充 1/** 2 * @author ZhangXiaoYu 3 * @date 2021/5/13 9:25 4 */ 5public class Thumbnail { 6 Object obj = new Object(); 7 //synchronized修饰普通方法,锁对象是this对象。 8 public synchronized void test(){ 9 10 } 11 12 //sy....

MacOS brew安装mysql报错【tar: Error opening archive: Failed to open xxx】 有更新!

解决方案 更改环境变量,将 HOMEBREW_BOTTLE_DOMAIN 改正确即可。 1echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.zshrc 2source ~/.zshrc 此刻 brew 已经换源为中科大源。 参考资料:https://www.cnblogs.com/zupernova/p/15138881.html

MacOS安装brew

网上搜了好多安装 brew 的方式,包括官网的方式、中科大镜像啊啥的都不行,最后找到了一种可行的方案。 终端执行下方命令,会让你选择镜像源,我选择的是清华大学镜像源,然后等待就好了。 1/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 2

MacOS启动SpringBoot项目时报错【Logging system failed to initialize using configuration from 'logback.xml '】 有更新!

由于是第一次操作 MacOS 系统,在将 Java 环境变量配置好,IDEA 等一系列都安装好后,把项目代码拉了下来,然后运行,结果报错 1Logging system failed to initialize using configuration from 'logback.xml ' 反复找解决方案,最终定位到了 logback.xml 中创建日志文件目录的问题,因为原先在 windows 环境下,logback.xml 中的日志文件存放在/home/xxx 目录下,切换到了 MacOS 系统后由于 home 是不允许创建任何东西的,所以需要以下步骤。 1、进入根目录; 2、编辑 auto_master 文件 1sunshiqiang@sunshiqiangdeMac-mini / % cd / 2sunshiqiang@sunshiqiangdeMac-mini / % sudo vim /etc/auto_master 3、将 home 一行注释掉。 1# 2# Automounter master map 3# 4+auto_master # Use directory....

css给图片加阴影的两种方式 有更新!

1、box-shadow 方式 1{ 2 box-shadow: rgb(249 254 184) 0px 0px 20px; 3} 效果差强人意 2、filter 方式 1{ 2 filter: drop-shadow(rgb(249, 254, 184) 0px 0px 8px); 3} 效果达到了预期

[system] DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL 有更新!

报错如图 解决 问题出现原因为某个请求缺了个“/”,所以在自己的项目中找到了缺失的地方。 1//更新学习到的红外码信息 2// /iot/tuya/oAuth/updateLearningCode报错时是iot/tuya/oAuth/updateLearningCode 3//将“/”加上即可 4function updateLearningCode(data, resultFunction, failFunction){ 5 requestUtils.doPostRequestToTuYa("/iot/tuya/oAuth/updateLearningCode", data, resultFunction, failFunction); 6}

Stack && LinkedList 有更新!

栈是一种具有[先入后出]特点的抽象数据结构,可以使用数组或链表实现。 1Stack<Integer> stack = new Stack<>(); 我们知道 Java 是不推荐使用 Vector 以及它的子类 Stack 的,因为有更好的替代品,比如:ArrayList、LinkedList,CopyOnWriteArrayList......,当然它也有它的有点,就是它是线程安全的,但也得结合使用场景,比如在单线程无竞争的场景它就是额外的开销了,但是在多线程的环境下也有更好的替代它实现线程安全的方法,所以这里不建议使用。 栈的特性:先入后出也可以使用 LinkedList 来实现,具体实现方法: Stack 1/** 2 * @author ZhangXiaoYu 3 * @date 2021/9/6 11:50 4 */ 5public class TestStack { 6 public static void main(String[] args) { 7 //栈,先入后出,最先入栈的最后出栈。 8 Stack<Integer&g....

尝试一下mysql索引优化!!! 有更新!

最近看了不少的 MySQL 调优,其中提到了索引,现在来尝尝鲜。 这是一个 10W+ 数据的表,没有带任何索引的时候去精准查询 name,它的执行时间为 11.122s,很慢 运行的 SQL 语句为: 1select * from book_chapter where chapter_name = '第两千五百三十六章 玄雷之命(终章)'; 这个时候它的执行计划是 ALL,也就是全表扫描。 然后尝试给这个字段加索引 使用命令 1alter table book_chapter add index chapter_name(chapter_name); 加完索引咱们再次尝试。执行时间为 0.139s。这里貌似触发了回表操作,可以知道我这个版本的 MySQL 默认存储引擎为 innodb,底层数据结构为 B+ 树,而 MySQL 一个索引就是一颗 B+ 树,默认主键就是一个索引,也就是一棵树,而 chapter_name 为另一颗 B+ 树,innodb 在存储数据和索引的时候,只有一颗 B+ 树存储的是主键 + 数据,而 chapter_name 这颗 B+ 树存储的是主键 ID....

volatile关键字与内存可见性 有更新!

1package com.zxy.demo.thread; 2 3import lombok.Data; 4 5/** 6 * @author ZhangXiaoYu 7 * @date 2021/9/2 9:26 8 */ 9public class ThreadDemo1 { 10 //volatile关键字与内存可见性 11 /* 12 * new一个线程子类实例并start,线程内部睡眠200毫秒后将flag设置为true 13 * 主线程使用while循环,如果线程子类的成员变量flag为true时,输出一句话后break出循环。 14 * 问题1:在主线程while循环时,flag已经为true,却没有跳出循环,为什么? 15 * 这是内存可见性的问题。当多个线程操作共享数据时,彼此不可见。 16 * 基本可以理解为,ThreadDemo线程先从主存中把数据读取过来,读取到的是false,然后修改为true,就在还未来得及把true同步到主存 17 * 时,main进来了,这是main读取到的还是false,所以形成死循环,就在main循环时,ThreadD....

int和Integer的区别以及自动装箱\拆箱机制 有更新!

Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换。 Java 为每个原始类型提供了包装类型: 原始类型: boolean,char,byte,short,int,long,float,double 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double 测试用例: 1/** 2 * @author ZhangXiaoYu 3 * @date 2021/8/31 14:29 4 */ 5public class AutoUnboxingTest { 6 public static void main(String[] args) { 7 Integer a = new Integer(3); 8 Integer b = 3; 9 int....

JQuery制作窗帘打开、暂停以及关闭的动画效果 有更新!

先看效果图 实现 利用 jQuery 的 animate 实现动画效果,设置 CSS 的宽度使其在规定时间内完成。 直接把项目打包放在这里,按需下载。 TestJQuery.rar 这个页面是 index.html

EasyUI报错[Intervention] Unable to preventDefault inside passive event listener due to 有更新!

在使用 EasyUI 的 slider 组件时,拖动滑块报错[Intervention] Unable to preventDefault inside passive event listener due to。 解决方法: 在 style 全局样式添加* {touch-action: pan-y;}, pan-y 表示启用单指垂直平移手势(上下滑动事件)。 1* { 2 touch-action: pan-y; 3} 参考:https://blog.csdn.net/weixin_44157964/article/details/108053521

Tomcat启动时Creation of SecureRandom instance for session ID 缓慢

一、查找 java.security 文件所在位置 [root@ecs-s6-xlarge-2-linux-20191210145334 shanhe]# find / -name java.security /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el6_10.x86_64-debug/jre/lib/security/java.security /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el6_10.x86_64/jre/lib/security/java.security 二、打开 java.security 文件 [root@ecs-s6-xlarge-2-linux-20191210145334 shanhe]# vi /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el6_10.x86_64/jre/lib/security/java.security 三、修改“securerandom.source=file:....

取消dom4j生成的xml的xml头 有更新!

原先是这样 String requestXml = document.asXML(); System.out.println(requestXml); <?xml version="1.0" encoding="UTF-8"?>//dom4j生成的头部信息,明显我不需要。 <xml xmlns="http://www.w3.org/1999/xhtml"><block><value><block><field>asd</field><value><block><field>asd</field></block></value><value><block><field>asd</field></block></value></block></value><statement><block><value>&....

dom4j设置XML命名空间 有更新!

附代码: Java: Document document= DocumentHelper.createDocument(); Element root = document.addElement("xml", "http://www.w3.org/1999/xhtml"); String requestXml = document.asXML(); System.out.println(requestXml); pom.xml <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j --> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version> </dependency> 输出: <xml xmlns="http://www.w3.org/1999/xhtml">&....

Xftp&Xshell学生\家庭免费版 有更新!

Xftp&Xshell 学生\家庭免费版

JavaScript根据日期判断当前是周几。

一、创建周一至周末数组 由于我是 uni-app 项目,所以就使用 uniapp 的格式了,js 也一样。 weekDay: ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] 二、写方法返回当前星期几。传值为日期,如 2021-07-08 isWeekDay(date){ let _this = this; let myDate = new Date(Date.parse(date)); return _this.weekDay[myDate.getDay()]; },