摘要: 参考链接: https://my.oschina.net/u/4116286/blog/3107389 一、二叉树不适合做索引结构的原因 1、若数据在插入过程形成线性链表,比如按照1234这种从大到小的顺序插入,树的高度就会无限增大,查找慢 二、平衡二叉树不适合做索引的原因: 1、搜索效率还不够高, 阅读全文
posted @ 2022-05-02 21:15 DustAsh 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/qq_33135813/article/details/91352093?utm_medium=distribute.wap_relevant.none-task-blog-2~default~baidujs_title~default-0.wap_ 阅读全文
posted @ 2022-01-28 11:55 DustAsh 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 1、常用的json格式,key-value的形式存储,value以json字符串的形式保存; 2、bson格式,这是一种类似json的二进制存储形式,简称Binary json; bson具有三个特性:轻量、可遍历、高效;MongoDB采用bson格式的重要原因是其可遍历性。 https://blo 阅读全文
posted @ 2021-09-18 14:58 DustAsh 阅读(1783) 评论(0) 推荐(0) 编辑
摘要: 一、作用 变量实现线程之间隔离 二、原理概述: ThreadLocal<String> threadLocal = new ThreadLocal<String>(); 在某个线程内调用threadLocal.set(value)方法时,①先获取当前线程t的ThreadLocalMap map属性, 阅读全文
posted @ 2021-08-23 10:47 DustAsh 阅读(42) 评论(0) 推荐(0) 编辑
摘要: java.util包下Queue接口,BlockingQueue在Queue的基础上添加了put和take两个阻塞方法。 特点:阻塞,put和take两个阻塞方法。 1、使用场景: 生产者、消费者模式,生产者通过put方法往队列里添加元素,若队列满了,put方法将阻塞等待,一旦队列容量有剩余,将唤醒 阅读全文
posted @ 2021-08-21 23:53 DustAsh 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 一、为什么要使用线程池: 1、统一管理,可以控制最大线程数量,避免线程数过多造成内存不足; 2、线程频繁创建和销毁比较耗费性能,使用线程池可以重用线程,避免线程的频繁创建和销毁,提高性能。 3、直接创建线程的方式,功能比较单一,使用线程池可以实现定时任务,还能使用Future接收线程返回的处理结果。 阅读全文
posted @ 2021-07-29 07:26 DustAsh 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 转发路径 https://blog.kdyzm.cn/post/26 一、基于注解的授权使用 1、开启注解模式:@EnableGlobalMethodSecurity(securedEnable = true),可以放在springboot的启动类上,或者放在spring配置类; 2、在Contro 阅读全文
posted @ 2021-07-19 21:52 DustAsh 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 记录一下导包过程: 1、首先,开启go mod 模式,即在工程第一级目录下打开cmd,执行go mod init test,这样就产生go.mod文件,初始化自定义的模块,名称为test; 2、开始导入第三方包之前,设置代理,可以加快下载速度。设置代理,直接添加环境变量,GOPROXY = http 阅读全文
posted @ 2021-07-11 16:20 DustAsh 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 一、对象头 每个实例对象都有自己对应的对象头; 对象头包含Mark word(32位) 和 Klass word(32位)两部分,Klass word是一个指针,指向对象从属的Class对象;数组对象的话,还有一个用于表示数组长度的部分,占用32位也就是4个byte。 对象头结构: 一般分为普通对象 阅读全文
posted @ 2021-06-02 14:37 DustAsh 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 一、原理: 1、当thread0获得ojb的Monitor锁时,发现不满足条件,进入WaitSet变为WAITTING状态; 2、BLOCKED和WAITING状态的线程都是阻塞状态,不占用cpu;两者是由区别的,WAITING是已经获得过锁,但是又放弃了锁;BLOCKED是正在等待去获取锁; 3、 阅读全文
posted @ 2021-05-05 12:09 DustAsh 阅读(644) 评论(0) 推荐(0) 编辑