- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 使用JDK自带的jvisualvm工具查看堆dump文件【回顾】
直接命令行输入:jvisualvm ,然后回车。或者去jdk的bin目录下找到打开。
2024-01-15 09:09:41
901
1
原创 从1加到10亿,如何优雅的快速求和
姿势二:JDK 8的Stream 流求和,速度很快,姿势最佳【推荐】题目1:从1加到10亿,有什么求解姿势?姿势三:ForkJoin求解法。
2024-01-14 23:25:45
490
1
原创 【一文搞懂JVM的内存屏障】
线程的安全性是指:指在多线程环境下,多个线程同时访问同一资源时不会产生意外结果或导致数据出错的状态。其实就是保证共享数据操作的三个方面:原子性、可见性、有序性。
2024-01-12 17:09:03
525
1
原创 【挑战帖子】生产环境如何做到Redis一条数据不丢?
先打个样:写一条刷一条、集群环境Redis联锁多个点都写成功了才算成功,还有什么解决方案评论区打出来。
2024-01-02 14:47:21
363
原创 一文搞懂什么是缓存穿透、缓存雪崩、缓存击穿三个概念,以及解决方案
key不主动失效,不是不主动失效,可以利用Redis的hash结构将过期时间拼接在value里面(如:hset product_01 1000 timestamp ),用户自己去决定这个key是否过期删除,类似于Redis的key的惰性删除原理,如果有请求过来,查询该key时候,会有一次检查过期时间的操作,如果过期了就先加锁,暂时阻塞其他线程访问数据库,然后删除该缓存,接着再请求数据库写入缓存,释放锁【只能删除自己的锁】,返回数据,其他线程可以查询缓存返回数据库了。:布隆过滤器内存占用较少;
2024-01-01 18:56:54
1262
原创 Mybatis底层原理分析以及源码阅读
大家在看源码的时候可以从SqlSession入手跟踪,注意Configuration、MappedStatement、StatementHandler之间相互引用的关系,你中有我,我中有你的类与类之间的关系。一条SQL的执行流程是不是很清晰了,还不够清晰的话看看下面的执行链路图。费话不多少先上图,我只喜欢画图分析,看图片。
2023-12-27 23:57:22
406
1
原创 AOP编程底层核心解析
Dependency Injection,依赖注入( IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中,注入方式:属性、构造方法、set方法注入。注意:如果是普通java工程需要导入cglib的第三方jar包,jdk不提供的;:Aspect Oriented Programming,面向切面编程(以切面为基本单位的程序开发,切面=切入点 + 需要加入的功能组成)基于JDK实现的动态代理、基于cglib第三方包实现的动态代理。5:jdk动态代理和cglib动态代理的对比。
2023-12-27 13:26:27
347
1
原创 一文搞懂类加载过程
在加载的过程中并不会拿过来字节码文件就加载,而是从Custom classloader缓存一层层往上找,直到Bootstrap classloader,找到了就不再加载,找不到后会从Custom classloader返回往下,看该字节码应该属于哪一个加载器去加载,然后它自己去加载,这就是双委派机制。**使用双亲委派机制的原因是:**安全,避免用户自己随意定义一些非法或者不符合定义规范的类,比如你自定义一个:java.lang.String,这样会引起错乱。**2、验证或者校验过程做了什么?
2023-12-26 14:45:33
408
1
原创 Kafka、RocketMQ、RabbitMQ消息丢失可能存在的地方,以及解决方案
这里主要对比:Kafka、RocketMQ、RabbitMQ介绍一下消息生产、存储、消费三者的架构形式。
2023-12-25 13:43:51
1386
原创 Redis过期key清理机制
所谓惰性策略就是,Redis一直在扫描清理但仍旧有一些天选的key还是没有被清理掉,那么这些key会在用户在查询的时候,Redis会加上一次鉴定策略:就是这个key有没有到过期时间,没到过期时间就直接返回value,到了就直接清理,然后返回空值。说到Redis是一个典型的key-value非关系型数据库,存储的key基本都有过期时间,或者有默认的过期时间,或者不设置的话永久不失效(内存空间足够大的情况下,生产环境一般放置系统的配置参数才这样),生产环境一般都会设置过期时间。
2023-12-25 11:33:37
764
原创 【Redis主从集群两种数据丢失的情况】
Redis主从集群两种数据丢失的情况主从异步复制导致的数据丢失1. 拿三节点的集群举例(majority=3/2+1=2,quorum设置的是2),当master node宕机过后,Slave节点还没有完成异步数据的复制(goosip协议进行广播同步),而哨兵节点监听到Master节点宕机过后,就开始了选举,另一个从节点被提升成了新的Master node,引发了部分数据的丢失,该如何解决?集群脑裂导致的数据丢失2. master node 和slave node 出现了网络故障,无法连接上,但是maste
2023-12-12 23:55:48
74
原创 jvm优化之:OOM(out of memory)内存溢出
Memory Leak,是指你的堆空间一直有对象不能被GC清理掉,但是你还要放对象进去,还在向堆申请放对象的空间,此时就会报 Memory Leak。Out Of Memory,是指申请的堆内存空间不够用了,比如:你申请了10M空间,但是你要放12M的东西进去;直接查看进程堆空间历史对象信息。
2023-11-25 12:11:29
168
原创 动态规划算法的应用
带备忘录的递归求解,将一些重复计算节点放入集合保存,当下次计算的时候先访问集合是否存在该节点的计算结果,有就直接取出来,没有就计算求解。* 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总共有多少种跳法。* 第10级:可以从第8级、第9级。* 第9级:可以从第8级、第7级。第10级 = 第9级 + 第8级。* 第2级:从第1级 2。第3级=第1级 + 第2级。第4级=第3级 + 第2级。
2023-09-19 18:11:56
65
原创 内存泄漏和内存溢出的区别
首先,这是两个不同的概念,不能混为一谈。memory leak:内存泄漏;OOM(Out Of Memory):内存溢出;什么是内存泄漏?简而言之,就是内存里有一块空间,既不能被访问,也不能被GC清理。什么事内存溢出?直白的说,就是内存空间里面有大量的内存泄漏块存在,找不到一块连续的内存空间来满足新的内存空间的申请,阻塞了新的内存空间的申请,影响了应用的正常运行,直到系统运行崩溃。...
2023-07-01 15:56:00
20
原创 jupyter 优化工作空间踩坑记录
问题:当我们执行完jupyter notebook --generate-config后,找到了jupyter_notebook_config.py,修改了:c.NotebookApp.notebook_dir的默认工作目录但是,当我们cmd执行jupyter启动命令:jupyter notebook 后,发现工作空间修改,并没有生效解决办法:1、去除#号后,此处不能有空格;正确格式:...
2023-06-14 10:18:00
28
原创 Python 3.7.8 pip安装numpy报错:Could not find a version that satisfies the requirement numpy (from versio...
Python版本:python-3.7.8-amd64.exe但在安装numpy框架时报错:pip install numpyLooking in indexes: https://opsx.alibaba.com/mirror/Collecting numpy Retrying (Retry(total=4, connect=None, read=None, redirect=Non...
2022-12-01 20:17:00
1531
原创 superset连接SQL server数据源时报错:ERROR: (builtins.NoneType) None (Background on this error at: http://sqla...
环境信息:数据源版本:SQL server 2008 R2superset版本:2.0.0【均安装成功,没报错】py:3.9配置截图:按照官方文档配置的,感觉都没有问题,但是就是报错,连接失败,头大!!https://superset.apache.org/docs/databases/sql-server回想了一下,该安装的依赖都安装成功了,如:conda install p...
2022-08-12 10:45:00
164
原创 执行superset db upgrade报错:ModuleNotFoundError: No module named 'werkzeug.wrappers.etag'
我的Python版本是:3.9【一路升级上来的,py3.7、py3.8都试过了】数据源SQL server【接下来会分享连接SQL server遇到的大坑】在进行初始化Supetset数据库:superset db upgrade命令时报错:ModuleNotFoundError: No module named 'werkzeug.wrappers.etag'ERROR: pip's d...
2022-08-12 09:26:00
126
原创 Tableau基本了解(一)
Tableau简介:首先,Tableau具有许多理想的和独特的功能。其强大的数据发现和探索应用程序允许您在几秒钟内回答重要的问题。您可以使用Tableau的拖放界面可视化任何数据,探索不同的视图,甚至可以轻松地将多个数据库组合在一起。它不需要任何复杂的脚本。任何理解业务问题的人都可以通过相关数据的可视化来解决。分析完成后,与其他人共享就像发布到Tableau Server一样简单,Tablea...
2022-07-26 23:27:00
27
原创 利用Apache artemis搭建物联网MQTT服务器
1.1 MQTT简介【百度随处可见】MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带...
2022-06-10 21:14:00
64
原创 文字识别:OCR(Optical Character Recognition)高精度的文字检测与识别实践(一)...
近期,由于业务涉及到了一个发票自动识别入库的场景,于是查阅了一些资料,调用百度OCR高精度文字识别API,做了一个小测试。1、注册一个百度智能云账号,拿到:client_id、client_secret,API Key就是:client_id,| Secret Key 就是 client_secret:2、注册好了过后记得领取免费测试额度,否则会报错:{‘error_code‘: 18,...
2022-05-05 10:43:00
72
原创 输入地址计算出经纬度一次实践
注意:1、提供的地址尽量标准、精确;2、先到天地图官网注册账号,申请应用,拿到tk,只能计算国内的地址;3、本文使用的计算接口为“天地图”提供,百度也有类似的接口package com.test.common.util;import lombok.extern.slf4j.Slf4j;import org.apache.http.HttpEntity;import org.apa...
2022-04-19 17:38:00
28
原创 单例模式之懒汉式
懒汉式单例并非绝对的线程安全的,在高并发的情况下有可能被多个线程会初始化多个实例package org.study.singleton;/** * 懒汉式单例模式 */public class LazySingleton { private LazySingleton(){} private static LazySingleton instance = null...
2021-03-06 23:07:00
19
原创 归并排序
归并排序package org.study.order;import java.util.Arrays;public class MergeSort02 { public static void merge(int[] arr, int left, int mid, int right) { int[] tmp = new int[arr.lengt...
2021-03-06 22:57:00
23
原创 选择排序
选择排序:典型的比较排序package org.study.order;import java.util.Arrays;public class SelectionSort01 { public static void main(String[] args) { int[] arr = {5, 2, 9, 1, 10, -1, 11}; ...
2021-03-06 22:27:00
23
原创 (二)hive之分区表
分区表:分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。数仓的核心操作也就是写入和查询,对删除和修改的操作并不是特别的频繁。需求:根据日期对日志文件的数据进行管理。/user/hive...
2021-01-22 23:07:00
28
原创 Hive之数据库创建、查询、删除
创建数据库入门写法:hive (default)> create database test;注:这个数据库的默认在HDFS上的存储路径是/user/hive/warehouse/*.db位置配置:hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下推荐写法:避免要创建的数据库已经存在错误,增加if no...
2021-01-22 23:07:00
149
原创 Scala映射的使用foldLeft生产实践总结
示例代码:package sparkstreamingimport scala.collection.mutableobject SparkStreamingDemo01 { def main(args: Array[String]): Unit = { // 两个Map的数据合并 val map1 = mutable.Map("a"->1, "b"-&g...
2021-01-21 16:40:00
19
原创 SQL之where、hiving、group by的使用总结
SQL的执行先后顺序是:from、where 、join 、on、 group by、 having 、select 、distinct、 union、 order by、 limit执行的过程解释:from:将数据从硬盘加载到数据缓冲区,方便对接下来的数据进行操作。where:从基表或视图中选择满足条件的元组。(不能使用聚合函数)join:连接(如join、right join、lef...
2021-01-19 21:57:00
120
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人