尝试一下mysql索引优化!!! 有更新! 2021-09-02 最近看了不少的 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关键字与内存可见性 有更新! 2021-09-02 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的区别以及自动装箱\拆箱机制 有更新! 2021-08-31 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制作窗帘打开、暂停以及关闭的动画效果 有更新! 2021-08-19 先看效果图 实现 利用 jQuery 的 animate 实现动画效果,设置 CSS 的宽度使其在规定时间内完成。 直接把项目打包放在这里,按需下载。 TestJQuery.rar 这个页面是 index.html
EasyUI报错[Intervention] Unable to preventDefault inside passive event listener due to 有更新! 2021-08-13 在使用 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 缓慢 2021-08-10 一、查找 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头 有更新! 2021-08-04 原先是这样 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命名空间 有更新! 2021-07-28 附代码: 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">&....
JavaScript根据日期判断当前是周几。 2021-07-08 一、创建周一至周末数组 由于我是 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()]; },
css旋转div盒子 2021-07-08 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .xuanzhuan{ width: 300px; height: 300px; position: relative; top: 250px; left: 550px; background-color: #FF8C00; /* transform: rotate(333deg); */ } </style> </head> <body> <div class="xuanzhuan"> </div> </body> </html> 关键代码是:/* transform: rotate(333deg); */ 旋转前: 将关键代码注释解开: transform: rotate(333deg); 还可以在开发者工具中任意旋转。任意旋....
uni-app打包的IPA上传IOS端App Store 有更新! 2021-07-02 一、注册苹果开发者账号 由于我在解决这个事情的时候苹果的开发者账号公司就已经注册好了,所以我暂时没有多去了解怎么个注册法子,大家可以参考参考别人的文档,这边公司注册的是企业版的,一年好像不到一千块钱。 二、证书的生成与下载 这边推荐大家一个非常好用的客户端软件,在 windows 上就可以轻松创建和下载证书,我也是用的这个,感觉用 MAC 什么钥匙串啥的太繁琐,虽然这边也有 MAC,但我还是用的 windows 创建和下载的证书,在上传到苹果商店我会教大家用 MAC 很快速的上传方法,也有 windows 的 下载链接 进去后点击下载就好了,下载完成后,打开软件,右侧登录自己的开发者账号和密码。 登录成功之后,证书和描述文件却一不可,都要申请,先申请证书。 点击 ADD,开发就选开发证书,发布就选发布证书。名称使用英文加数字,email 没有要求,证书密码简单点即可,一般来说,需要搞两套证书和描述文件,一套为开发证书,在 uniapp 中使用开发证书的描述文件打包的 APP 只能在这个开发证书中配置过的 uuid 的 iOS 手机才能安装上,其他 iOS 手机都是安装不上的。而发布....
uni-app自定义遮罩模板。 有更新! 2021-06-29 一、新建组件 mask.vue <template> <view> <view class="cpt-mask"> </view> </view> </template> <script> export default { } </script> <style> .cpt-mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #000000; opacity: 0.5; z-index: 99; } </style> 二、在有需求的页面引入 mask.vue 遮罩组件 <template> <view> <!-- 遮罩组件 --> <myMaskv-if="mask"></myMask> </view> </template> <script> ....
解决Java文件下载后缀为.apk,下载完成变.zip 有更新! 2021-06-29 在手机 Chrome 浏览器中访问接口下载使用 Java IO 流写的文件下载,下载的内容后缀为.apk 的 app 安装包,下载完成后后缀变为.zip。
UniPush + Java实现个推。 有更新! 2021-06-29 一、uni-app 端设置 1、打开 HBuilder X,在项目的 manifest.json 中找到 APP 模块配置,右侧将 Push(消息推送)勾选,会自动勾选 uniPush 服务。 2、点击 uniPush 下方的配置按钮(登录),点击 Uni Push 下的修改应用信息,将右侧内容填好,如果安卓使用的是公共测试证书的话,直接填 B0:1D:06:18:0D:00:3E:79:C7:B9:08:89:93:B8:E5:AE:7A:19:B0:DA:11:61:AA:09:7C:7F:39:8A:6F:51:4F:A7 即可。如果是自有证书,可以去搜查看证书的 sha256,将自己证书的 sha256 填入即可(一定要是 sha256,不要用 sha1) 输入完成后在 Uni Push 下的 Uni Push,右侧选择配置管理,应用配置,就可以看到所需的一些东西。 注:iOS 需要去重新创建一个推送证书,太繁琐了,后续会发出发布 iosAPP 的教程。 到了这一基本就可以不用靠 Java 来进行简单的推送了,前提是 APP 必须是自定义基座或者云打包的 APP。不能使用....
Java判断文件是否为图片类型且MultipartFile转File 2021-06-28 private MimetypesFileTypeMap mtftp; mtftp = new MimetypesFileTypeMap(); mtftp.addMimeTypes("image png tif jpg jpeg bmp"); String contentType; try { contentType = mtftp.getContentType(multipartFileToFile(multipartFile)); } catch (IOException e) { e.printStackTrace(); } String type = contentType.split("/")[0]; if(!"image".equals(type)){ //非图片类型 } /** * MultipartFile 转 File * * @param file * @throws Exception */ public File multipartFileToFile(MultipartFile file) throws IOException { File toFile = ....
echarts图表示例+源码&&免费开源DataV 有更新! 2021-06-23 一、echarts图表示例+源码 https://www.makeapie.com/explore.html#sort=rank~timeframe=all~author=all 二、免费开源DataV http://datav.jiaminghi.com/
PS、CSS使图片高斯模糊 有更新! 2021-06-21 一、PS图片高斯模糊 1、打开ps,将图片导入。 2、菜单栏选择滤镜-模糊-高斯模糊 3、将半径修改即可,值越大越模糊。 二、CSS调整图片高斯模糊 <img src="https://m1.shanhelinks.com/static/img/mpbackground/bgshexiang.jpg"> <div class="backgr-text"> <h1>Hello World</h1> <h2>Blurred Background Image</h2> </div> <style> img { width: 100%; height: 2048px; -webkit-filter: blur(4px); filter: blur(15px); margin-top: 20px; } h1 { color:red; } .backgr-text { position: absolute; top: 20%; left: 50%; transform: translate(-....