自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Myd

是什么?怎么用?细节是什么

  • 博客(102)
  • 收藏
  • 关注

原创 win10连上了wifi热点但是无法上网

打开cmd窗口发现能ping通百度,掘金,csdn这些网址。我的情况是能正常连接wifi热点(手机连接这个热点能上网,说明这个wifi热点是正常的)将【使用代理服务器】关闭,就可以上网无需重启。

2024-01-02 10:46:52 589

原创 Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream

通过上面的例子,我们知道压缩包里的是一个个ZipEntry对象,在解压时,可以遍历压缩包获取到ZipEntry对象。每一个ZipEntry对象都是一个文件,使用ZipFile可以获取到每一个ZipEntry对象的文件流;获取到文件流就可以将压缩包的文件读出来了。在创建ZipEntry对象时可以指定文件在压缩包的位置:new ZipEntry(“second-dir\second-01.txt”)用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。

2023-06-14 01:15:17 9577 1

原创 字符串搜索算法:暴力搜索,KMP

最近脑子有点昏昏沉沉,喝点那种红枣泡的白酒居然神奇的好了一些,感觉很舒服。看来喝少量的酒可以让人更清醒,长期喝可能有养生的效果?写道这里去百度了下,发现红枣还真有养生效果。对于长期坐在电脑旁的人,不止眼睛,其实整个身体状况就注定不会很好,平时还是要注意养生。虽然现在整个行业很卷又是互联网的寒冬,但还是尽量抽出一点时间出去走走运动运动,这样人更精神做事效率也会更高。前段时间有个大佬左耳朵才40多岁就心梗去世了,应该是平时没注意自己身体或者没有精力管自己的身体健康问题?

2023-06-04 23:42:17 744

原创 MySQL(8.0.19)索引失效的分析

因为利用没有索引的字段做搜索条件会搜索整个表,而有索引的字段只需要根据B+树做搜索搜索次数是成指数减少的。因为还要拿着查询到的主键id到主键索引树再查询一次,如果没有筛选掉大部分的数据,拿着90%的id主键到主键的B+树上查询,相当于是来了2次全表查询,效率会相当低。因为给age加了索引,因此搜索首先会搜索age的索引,也就是age值组成的B+树;当搜索找到了age=7的时候只能够拿到主键id的值,而我们需要的是整个数据行的值,因此还需要用id的值去搜索主键的索引(B+树)也就是所谓的返表。

2023-03-22 20:06:44 955 1

原创 docker安装与基础命令

在这上面可以找到不同发行版linux操作系统的docker安装流程。我安装的是CentOS7,因此选择CentOS。如果以前安装过docker,需要先卸载再安装。

2023-02-03 21:23:43 332

原创 Huffman二进制编码以及文本的压缩与解压

Huffman树转化成二进制编码。

2022-12-23 04:02:38 1684

原创 Huffman编码

一本玄幻小说,在相近的章节中一定大量的重复出现人名,地名,功法境界,以及主角在一段时间内修炼的功法。在数据传输,保存的时候,特别是在数据量特别大的时候传输,保存数据是一件特别麻烦的事。比如逛淘宝的时候,首页会有很多商家展示自己产品的高清图片,如果不对图片进行压缩服务端保存图片会占用大量空间,在将图片传输给客户端的时候传输过程会特别耗时。

2022-12-21 03:57:34 1359 3

原创 js写简单日历

写日历主要的是要搞清楚2点:1,每个月的第一天是周几? 2,每个月有多少天?清楚这2个之后就可以完成一个最简单的日历了。而这2个问题可以轻易的调用js的api获取到。

2022-11-22 03:43:31 3917

原创 Java自定义ClassLoader加载外部类

前几天在GitHub上下载了一个开源项目想要运行起来,启动这个项目会关联到数据库的一些表。因此想要运行起来还需要把数据库表建好。但是这个项目涉及到几十张表,并且作者没有给建表的SQL语句。(后续:吐血中,作者在项目给了sql语句。。。。。)想用这个项目那就只好自己建表了,但是几十张表自己建一时半会儿也弄不好。有这时间还不如重新找一个新项目于是果断放弃了这个项目,结果找了一圈发现这种类型的开源Java项目还真是少。于是,没办法还是回到这个项目。

2022-11-01 08:15:05 1628

原创 IDEA2019.2.1修改堆内存

网上很多文章都是说直接修改idea安装路径bin包下的idea64.exe.vmoptions文件;这个害人不浅,修改此处的文件idea启动时不会读取;应该修改当前用户下路径下的idea64.exe.vmoptions才会生效。

2022-10-18 02:04:20 2637

原创 SynchronousQueue的transfer方法分析(JDK1.8)

  存入,获取元素都是调用同一个方法,那么它是如何分辨出方法的调用者到底是存入元素还是要取出元素呢?transfer方法有3个参数,这三个参数分别表示:  在SynchronousQueue内部transfer方法有2种实现:TransferQueue,TransferStack。在创建SynchronousQueue对象时可以选择transfer方法的实现类:  TransferQueue 是一个链表结构,在Transfer

2022-09-21 15:36:42 588

原创 DelayQueue(JDK1.8)------ take的源码分析

从PriorityQueue优先队列分析,PriorityQueue将元素构建成堆结构这样可以快速从队列中按优先顺序将元素取出。在DelayQueue中,主要是判断从PriorityQueue取出的时机。判断阻塞线程,以及将线程从条件队列中唤醒的时机。

2022-09-18 07:53:44 746

原创 AbstractQueuedSynchronizer---condition队列的await方法中为什么要释放锁(JDK1.8)

前言。

2022-09-14 13:12:54 1257 2

原创 AbstractQueuedSynchronizer(JDK1.8)中关于锁的获取和释放的源码分析

前言。

2022-09-02 04:58:59 451

原创 手写ioc和aop容器

在前几篇文章中,分别介绍了,如何解析,根据这些知识点,就可以实现一个简易版的ioc容器。

2022-08-28 01:18:27 429

原创 二叉树的树状打印(Java)

树型结构的打印难点是如何处理好同一行不同节点之间的位置关系,空格和连接线的位置长度;只要弄清楚这些就可以写代码了。

2022-07-27 15:54:19 3948 6

原创 MySQL开启慢查询定位优化SQL

在实际环境中,可能会产生一个很大的慢日志文件,如果这样直接看日志文件可能不太方便,MySQL自带了一个分析慢日志文件的工具mysqldumpslow;ON表示开启慢查询日志,SQL查询时间超过long_query_time定义的时间,就会被记录在日志里;假设一条SQL语句的执行时间是1s,5s,10s。设置的long_query_time=0.1s,因此超过这个时间的查询SQL都会被激励在这个日志里;SQL查询时间超过该数字,那么SQL将会被定义为查询时间过长记录在慢查询日志里;............

2022-07-19 15:41:46 352

原创 红黑树RBT的原理分析及实现

  上一篇文章讲了 AVL 树是自平衡的二叉搜索树;在 add 和 remove 之后是通过节点的左右子节点高度差来判断调节节点的平衡;红黑树RBT,也是自平衡的二叉搜索树;RBT是通过下列条件来约束节点实现的平衡:  RBT的叶子节点  连续红色节点  这是一颗红黑树,可以观察到任意一个节点到叶子节点的路径上黑色的节点数都是相等的;比如 根节点500到叶子节点的路径一共10条;这10条路径上每一条路径的黑色节点数都是都是3个;再比如 200节点到叶子节点的路径有4条,这4条路径从叶子到200节点的黑色

2022-07-10 17:30:01 824 10

原创 AVL树的Java实现

  二叉搜索树有一个很大的弊端就是很不稳定。输入数字的顺序不同可能导致二叉树退化成链表;比如:顺序输入: 1 -> 5;与乱序输入:3,2,4,1,5;会有不同结果;  苏联的科学家G. M. Adelson-Velsky和E. M. Landis发明了自平衡的二叉搜索树:AVL(名字缩写)树;AVL树本质上还是一棵二叉搜索树,它的特点是:也就是说,AVL树,本质上是带了平衡功能的二叉查找树; htarget = max(hleft , hright) + 1;  例子:有2个子节点;比较左........

2022-07-07 18:40:43 713 1

原创 二叉搜索树的Java递归实现

  打算从二叉搜索树开始,然后AVL树,最后会写红黑树和B+树;目标:希望看完整个系列的文章大家能够自己手写红黑树和B+树;话说为什么要写这系列文章呢?可能是在网上白嫖太多好文章以及视频,希望写这篇文章能够帮助大家更好理解红黑树和B+树吧。  红黑树是比较重要的结构HashMap,ConcurrentHashMap中就使用到了这种数据结构。不理解红黑树就很难说完全理解了HashMap,ConcurrentHashMap;如果直接写红黑树的add,remove过程又会引出二叉搜索树以及AVL树中的节点旋转的知

2022-07-05 17:26:24 625

原创 ConcurrentHashMap(JDK1.8)的扩容方法transfer的源码分析

ConcurrentHashMap扩容过程的源码分析;对ConcurrentHashMap迁移数据过程中,多线程如何协作?链表类型如何迁移?红黑树如何迁移?如何确保数据完成迁移?对ConcurrentHashMap可能存在数据丢失的情况。

2022-06-15 07:27:46 2715 10

原创 ConcurrentHashMap(JDK1.8)put分析(一)

ConcurrentHashMap和HashMap的put值过程有些类似,ConcurrentHashMap的结构也是table + 链表+ 红黑树;在put值时,锁粒度是table的元素;也就是说,当put值时定位到table的第 i 个元素,那么就会给table[i]上锁;其他线程在put值时也定位到 i 时就需要等待获取锁;如果是其他位置则不需要等待锁,可以进行put操作。 下面具体分析ConcurrentHashMap的put值过程 ConcurrentHashMap在

2022-06-02 11:37:27 1898

原创 HashMap中对红黑树find()的源码分析

红黑树是一种二叉搜索树,也就是说,对红黑树的查找其实就是对一个二叉搜索树的查找;

2022-05-13 06:26:37 694 3

原创 线段树的修改和求和

@线段树        网上有很多讲线段树原理的文章,如果你是第一次接触【线段树】这种数据结构,看这些文章估计会把你脑子弄得很晕。强烈推荐直接看这个视频:线段树;1.线段树有什么用?我们可以先看一个例子;给你一个很大的数组nums,现在有个需求,给定一个区间[left,right],求该区间nums的元素和:nums[left] +nums[left+1] +…+nums[right];常规做法直接for循环叠加就

2022-04-07 21:55:07 575

原创 cglib新生成的对象注解丢失原因及解决办法

最近在写一个aop时遇到一个问题,就是被cglib代理的类,找不到注解了;举个列子:现在有一个Model类,@Component,@Autowired,@Value是自定义的注解@Componentpublic class Model{@Autowiredprivate User user;@Value("model-1")private String modelName;@Value("TYPE-1")private String modelType;}//cglib代理publ

2021-08-11 04:25:47 1901 2

原创 实现一个简单的类似spring的pointcut正则表达式

正则匹配execution表达式: String regex = execution\\((public|protected|private|\\*)\\s+((\\w+\\.)*((\\w+\\*?|\\*|\\*?\\w+|\\w+\\.?)\\.))?(\\w+\\*?|\\*|\\*?\w+)\\((\\.\\.|([A-Z]\\w*|int|double|float|char|byte|long|short|boolean)(\\[\\])*(,([A-Z]\\w*|int|doub

2021-08-05 01:52:59 490

原创 opencv+ArcFace人脸识别

        前几天逛知乎看到有免费的工具来做人脸识别,觉得很有意思;心血来潮,想自己也搞一个人脸识别;不得不说虹软ArcFace真的是太好用了;对于我这种完全不懂人脸识别算法的人,也可以构建出人脸识别的应用;只需要调用封装好的API就行了。        只有ArcFace是不行的,因为这个只负责做图像对比;因此我们还需要一个能够调用摄像头获取

2021-07-02 19:47:45 1210

原创 手写一个简单的IOC

读取xml信息,生成对象public class SimpleIOC { /* * *Map<id,Object> */ private Map<String,Object> beans = new HashMap<>(); /* * * 通过className来获取bean; */ private Map<String,Object> classBeans = n

2021-06-24 18:38:38 224

原创 较大数字的乘法

在知乎上,刷到过n次同样的话题:比较2个数的大小:45321与 54321;一般正常的做法是两边取对数,再计算对数的大小;这样就能把这2个很大的数转换成较小的数,然后利用计算器就搞定了。但是呢,总有很沙雕的答案===>直接把45321与 54321结果算出来比大小。每次刷到那个答案都会笑得不行*_*。45321与 54321这2个数字的长度都很长用long,BigDecimal这写是不行的,只能用原始的方法了。首先这2个数的幂都很大,如果直接for循环效率可能不高,这个可以利用指数的性质:(ab)n。

2021-06-18 19:48:09 216

原创 Java注解(二)

       上篇文章简单的介绍了注解的2个基本属性;1.在什么地方使用注解(由@target来决定);2.注解保留到什么时候(由@Retation决定);       了解了这2个基础的属性,加一点反射的知识就可以自定义一个简单的注解;这篇文章主要是介绍一下注解的另一些简单的东西:元注解,自定义注解@interface元注解  &nb

2021-06-09 21:27:03 156 2

原创 java注解(一)

注解有2个很基础的属性:@Target(作用对象)@Retention(保留策略)@Target作用对象:类,方法,字段,参数。。。。@Retention保留策略:SOURCE(源码阶段),CLASS(编译阶段),RUNTIME(运行时)...

2021-06-08 02:27:44 180 2

原创 HashMap(JDK1.8)指定初始容量

在阅读本文之前是不是认为,在初始化时HashMap对象时指定的大小就是HashMap的容量呢?(既然这么问那肯定有鬼~????????????????)<1> HashMap map = new HashMap(12);<2> HashMap map = new HashMap(2);<3> HashMap map = new HashMap(4);上面三个例子的初始容量分别是多少呢?      &n

2021-05-25 18:59:42 1195 4

原创 JVM字节码指令表

       这次MSI比赛RNG VS PSG的半决赛BO5,前两场看的是真扎心;PSG这属于外卡赛区了吧,cryin居然被对面中单吊打~揪心。。JVM指令表常量型本地变量数组变量类型将值存入变量将值存入数组将值弹出栈顶复制栈顶数值指令数据交换指令变量计算变量增加指定值跳转指令返回指令获值/赋值指令调用方法指令创建对象指令异常指令锁指令常量型助记符指令含义nop什么都不做aconst_null将nul

2021-05-22 01:34:42 396

原创 MySQL8.0.19索引

index索引一,创建index1.1创建唯一索引1.2创建普通索引1.3多列索引1.3.1最左原则1.4在创建索引时指定索引的数据结构二,查询索引3.删除索引4.MySQL存储引擎特性InnoDB存储引擎索引特性MyISAM 存储引擎索引特性MEMORY 存储引擎索引特性查看MySQL支持的引擎一,创建index语法:CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name [index_type] ON tbl_name (key_par

2021-05-17 02:21:37 172

原创 [Err] 1055 MySQL 8.0 使用GROUP BY报错

在MySQL使用group by报错:select courseid,score,stuid from score group by courseid;[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ssm.score.stuid' which is not functionally dependent on columns in GROUP

2021-05-14 17:36:17 247

原创 min/max 与group by连用(MySQL8.0.19)

最近看到很多文章说,min/max与group by连用会有问题。举个max 与gruop by的使用场景;MySQL使用的版本:8.0.19;数据表:student,score;student表结构:stuIdclassIdstuName111xiaoming211xiaohong311kunjia411shewang...

2021-05-13 07:04:05 1285

原创 for-each循环删除数据报错问题

        前2天在csdn论坛上看到一个问题,就是使用for-each时,删除数据报错的一个问题;当时第一眼看到这个问题还以为是删除时数组越界问题;结果显然不是。仔细debug看源码之后把问题搞清楚了,问题不难,写一篇文章记录一下;问题代码: List<Integer> list = new ArrayList<>(); for (int i

2021-05-11 16:12:17 1164

原创 MySQL优化EXPLIAN关键字使用

        如果时间足够多,看官网会更有收获官网手册,英语看不懂怎么说?直接用浏览器翻译成中文就可以愉快的学习了。        

2021-05-09 04:16:14 289

原创 mybatis3.5.6缓存

一级缓存mybatis一级缓存流程图:mybatis的一级缓存是SqlSession级别的缓存,在sqlSession中有一个很重要的属性:Executor对象,实际是CachingExecutor;在DefaultSqlSessionFactory中创建SqlSession的时候,会创建executor,而executor是由configuration.newExecutor()创建的;public class Configuration{ public Executor newExecut

2021-04-25 10:56:37 235

原创 mybatis3.5.6的cachekey

        mybatis有一级缓存和二级缓存,默认开启一级缓存;在查询的时候会先查缓存,缓存中没有数据才会查询数据库;那么是根据什么来确定当前要查询的数据已经在缓存中呢?一个叫cacheKey对象,可以确定前要查询的数据是否在缓存中。        cacheKey和我们缓存的数据有什么联系呢?由于一条查询语句,会查询到相应的数据;所以会根据

2021-04-24 14:41:55 418

空空如也

空空如也

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

TA关注的人

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