- 博客(109)
- 资源 (2)
- 收藏
- 关注
原创 SpringCloud组件总结
https://www.processon.com/view/link/64e85fe76b2cbb581a3835bc 访问密码:afGw。
2023-08-25 16:00:55
288
原创 JVM系列(7)——java内存模型
先复制一份数据到 CPU Cache 中,当 CPU 需要用到的时候就可以直接从 CPU Cache 中读取数据,当运算完成后,再将运算得到的数据写回 Main Memory 中。
2023-07-19 17:13:54
1013
原创 JVM系列(6)——类加载器详解&&双亲委派
1、双亲委派模型:自下而上寻找,自上而下派任务去解析。2、类加载器是模板方法模式,重写indClass() 方法自定义类加载器,重写loadClass() 打破双亲委派模型。3、双亲委派模型安全、节省资源。
2023-07-14 16:12:01
832
原创 JVM系列(5)——类加载过程
加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)。
2023-07-13 15:06:49
1616
1
原创 Java大文件上传(秒传、分片上传、断点续传)
秒传就是不传,实现逻辑就是看数据库或者缓存里是否已经有这个文件了,有了,直接从已有的文件去拿就可以了(返回文件地址)。这里判断是否是相同文件,要用到信息摘要算法,详情可以参考:一文读懂当前常用的加密技术体系。信息摘要算法常常被用来保证信息的完整性,防止信息在传输过程中被篡改(无法确定信息是否被监听)。常用的就是MD5算法。分片上传,就相当于把一个大文件,拆成很多个小份,就想hls文件一样,一片一片的,上传完成后组合起来形成一个完整的文件。一般和断点续传一起使用。分片上传过程中,会话失效、网络问题、系统
2023-07-05 17:24:46
4145
原创 MySQL调优系列(四)——执行计划
sql语句是有具体的执行过程的,通过查看这个执行过程,可以针对性的优化某一步骤,以加快SQL语句的执行效率。通过MySQL调优系列(一)——性能监控我们可以知道,有一个查询优化器,查询优化器:优化客户端请求query,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果。(交由优化器将请求转化成执行计划,然后与存储引擎交互。
2023-05-08 19:57:34
721
原创 MySQL调优系列(三)——存储引擎的选择
关系型数据库的数据是存在表里的,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式,每个表格就是一个数据。表是在存储数据的同时,还要组织数据的存储结构,而这些数据的组织结构就是由存储引擎决定的。即存储引擎的作用就是规定了数据存储时的存储结构,业务直接决定了存储引擎的选择。因为不同的业务对数据的要求是不同的,比如查询、增删、外键、事务、索引等。mysql查看支持存储引擎语句:show engines;可以看出mysql默认支持的InnoDB索引,且支持事务、行级锁、外键。
2023-05-08 11:36:08
628
原创 MySQL调优系列(二)——数据类型优化
应该尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期更少,但是要确保没有低估需要存储的值的范围,如果无法确认哪个数据类型,就选择你认为不会超过范围的最小类型。2、当我们的表中存在类似于 TEXT 或者是很大的 VARCHAR类型的大字段的时候,如果我们大部分访问这张表的时候都不需要这个字段,我们就该义无反顾的将其拆分到另外的独立表中,以减少常用数据所占用的存储空间。最大空间是65535个字节,适合用在长度可变的属性。
2023-05-06 18:04:33
637
原创 MySQL调优系列(一)——性能监控
本文主要从show profile、performance_schema、show processlist讲解mysql的性能监控。
2023-03-06 17:53:28
703
原创 多线程与高并发(16)——线程池原理(ThreadPoolExecutor源码)
ThreadPoolExecutor使用了AQS、位操作、CAS操作等。
2023-01-06 15:19:43
475
原创 docker(七)容器监控(CAdvisor+InfluxDB+Granfana)
CAdvisor+InfluxDB+Granfana进行容器监控
2022-12-27 19:33:00
962
原创 多线程与高并发(14)——Executor框架(线程池基础)
工作单元和执行单元分开,工作单元包括Runnable和Callable,利用Executor来执行任务。通过 Executor来启动线程更易管理,效率更好,助于避免 this 逃逸问题。
2022-12-08 17:05:08
560
原创 多线程与高并发(13)——Java常见并发容器总结
本文总结常见的并发容器,包含ConcurrentHashMap、CopyOnWriteArrayList 、ConcurrentLinkedQueue、BlockingQueue 、ConcurrentSkipListMap,本文仅做简单的总结,不做详细的源码分析。
2022-11-30 17:24:16
968
原创 java实现微信小程序获取手机号(htts接口实现)
1、获取通过认证的appId和secret;2、利用appId和secret获取accessToken;3、前端获取到用户的code;4、通过code和accessToken获取手机号。
2022-08-31 14:25:46
9298
3
原创 java集合(容器)基本知识
1、List有序,可重复;可根据索引获取元素。2、Set无序,不可重复;独一无二;不能根据索引获取元素。3、Queue按特定的排队规则来确定先后顺序,有序的、可重复;4、Map使用键值对(key-value)存储,类似于数学上的函数 y=f(x),"x" 代表 key,"y" 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。...
2022-08-15 16:12:32
822
原创 多线程与高并发(12)——经典面试题之写一个固定容量同步容器,拥有put和get方法,以及getCount方法,能够支持2个生产者线程以及10个消费者线程的阻塞调用
写一个固定容量同步容器,拥有put和get方法,以及getCount方法,能够支持2个生产者线程以及10个消费者线程的阻塞调用。
2022-08-11 17:27:10
261
原创 多线程与高并发(11)——经典面试题之实现一个容器,提供两个方法,add,size。
实现一个容器,提供两个方法,add,size。写两个线程,线程 1 添加 10 个元素到容器中,线程 2 实现监控元素的个数,当个数到 5 个时,线程 2 给出提示并结束。
2022-08-09 17:57:05
332
原创 docker(六)数据挂载之数据卷
数据卷可以在容器之间共享和重用,且容器停止或删除后数据卷不受影响,且对数据卷的改动是立即生效的,更新数据卷之后不会影响镜像。
2022-08-08 17:29:41
1916
原创 docker(五)构建私有仓库
这篇文章我们主要讲解创建docker私有仓库。简单概述一下,就是docker提供了一个搭建私有仓库的镜像registry ,运行该镜像的容器并且对外暴露5000端口就算是搭建完成了。
2022-08-08 16:48:15
662
原创 HashMap源码解析(jdk1.8,万字大章,图文并茂)
1、hash冲突是因为hash函数计算后,值相同,占数组里的同一个位置导致的;2、数组+链表+红黑树,几个数:16,0.75,12,8,64,扩容是2倍,HashMap 总是使用 2 的幂作为哈希表的大小。3、HashMap 可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个。...
2022-07-29 16:39:37
426
原创 多线程与高并发(10)——ThreadLocal解析
每个Thread中都具备一个ThreadLocalMap,而ThreadLocalMap可以存储以ThreadLocal为 key ,Object 对象为 value 的键值对。
2022-07-11 16:52:04
463
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人