自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 听过了API咱们来看看SPI是什么

1.了解了什么是SPI;2.SPI和API的简单区别和联系;3.学习了怎么使用SPI来扩展服务;4.分析了ServiceLoader的源码加载过程,这里扯一句,简单的就是META-INF/services定义好要实现的接口(文件名)和实现类(文件内容),ServiceLoader加载的时候没有实例化实现类,而是在Iterator遍历的时候去用反射创建了实例.

2019-06-16 18:33:38 333 1

原创 springboot整合quarzt实现动态定时任务

springboot整合quarzt实现动态定时任务实现定时任务的几种方式:1.使用linux的crontab2.使用spring自带的ScheduledExecutor3. 使用JDK自带的Timer4.使用quarzt整合步骤:遇到的坑:源码地址:[github源码地址](https://github.com/wxwwt/dynamic_scheduler),朋友们觉得写得还行的帮忙star个...

2019-05-12 16:26:21 3482 1

原创 理解shell脚本中的2>&1

问题描述:

2019-03-13 23:20:16 3148

原创 记一次线上频繁FGC的事件和解决方式

问题描述:    早上去公司上班,突然就邮件一直报警,接口报异常,然后去查服务器的运行情况,发现java的cpu爆了.接着就开始排查问题问题解决过程:1.先服务器(centos7)上,使用了top和uptime命令,发现时java的cpu爆了,超过100%了,导致后续的服务无法正常提供;2.调整了负载均衡,下掉了有问题的那几台机器;3.使用jps找...

2019-03-10 23:50:35 1712

原创 jvm oop-klass对象模型

jvm对象模型可以从hotspot7的源代码中学习.本文内容都是以jdk7对应的hotspot虚拟机为基础进行分析的.一.oop-klass的层级关系 首先,从oopsHierarchy.hpp的源代码.看看jvm对象模型的层次结构. 引用Hotspot实战里面的一张图,oop各模块的组成: oop层级部分: klass层级部分: 二.oop层级部分: 看完了jvm整个...

2018-06-10 22:51:49 8039

原创 JVM运行时数据区域学习

注:     1.本地方法栈和虚拟机栈并非所有的JVM都有区分,不是强制规定,HotSpot中本地方法栈和虚拟机栈是合在一起的;     2.方法区不等于永久代,HotSpot使用永久代来实现方法区,但在其他的JVM中并不适用;     3.一般来说,对象实例和数组都在...

2018-05-27 18:05:59 259

原创 反射交换两个值的大小引发的思考

发现问题:最近在学习java的时候在java群里面看到一个问题,就是用反射来实现两个值的交换,然后结果没有按群友的预期去执行.群里的代码如下: 群友想的结果是a=1,b=2;a=2,b=1; 然而结果是 然后就觉得很奇怪,交换完以后,a,b都变成了2.问题探究过程(和群友一起讨论出来的,一开始自己也觉得很奇怪,涉及到java的自动装箱和Integer类的源码设计问题)...

2018-03-28 01:21:57 380

原创 Zlib压缩实践例子

前言: 之前做项目的时候,遇到这么一个问题,对接方对推一些单子给我方的接口,而且数据内容很大,平均一条有10M左右.然后我们经过解析等处理以后存入数据库,随着每天项目的运行,数据量越来越大,导致了解析过程很慢,数据存储越来越大,导致磁盘空间不足.ps:一开始用的text,后来发现长度不够用,变成了mediumtext.于是,我们项目组考虑了一些方案.下面的内容是我自己想出来的方案中的一个

2018-01-14 17:37:27 1707

原创 用jmeter进行http测试和接口测试

最近为了测试接口的性能学了一下jmeter,写了两个小例子记录一下 1.jmeter http压力测试小例子 步骤:1.下载jmeter2.打开jmeter3.右键测试计划 添加线程组4.右键线程组添加cvs data set config并输入这些参数其中data文件的内容5.右键线程组-sample-http请求6.右键线程组添加-...

2017-01-16 15:25:20 17841 2

原创 在同一台机器上实现主从复制,多个mysql(windows)

最近在自学,看到了mysql的主从复制,觉得挺有意思的,就研究了下.无奈试了多种方法均以失败告终,最后只好在同一台机器上安装多个mysql.试试主从复制.一共试了三种方式,目前只成功了一种.1.用云服务器坐从服务器,本地的电脑做主服务器.但是因为电脑是在内网里面...无法被访问到.就使用了花生壳和nat123.进行端口映射.这样做之后,云服务器A(叫做A好了),可以通过映射的域名来访问本地

2016-12-26 15:29:03 6644

原创 LangChain-Chatchat知识库对话

上次我们完成了Chatchat的本地部署,使用了LLM对话的功能。这次我们尝试一下其他的功能,之前总是有报错没有跑通,这次处理了几个问题之后才跑通了知识库对话和文件对话。

2024-03-24 21:04:04 1253

原创 Langchain-Chatchat本地部署

虽然使用Chatchat整个过程中的坑还是挺多的,但是至少跑起来了,而且在跑这个项目中遇到了很多自己没有接触过的知识。比如量化模型这个概念,是在优化返回速度的时候才知道可以把模型的精度改小,提高计算速度。现在本地还只运行成功了项目本身支持的几个模型,像界面中的知识库问答,文件对话,搜索引擎问答,自定义agent都还没跑成功,还有挺多东西要去研究和尝试的,还是挺有意思的。我想了想后面可能会针对其他的几个模式也写一些记录。

2024-03-10 20:40:24 1526

原创 2023年回顾

自己总结就是23年的目标总体还是比较满意的,有好几项是超额完成了,虽然也有两项没完成,但是这两项我本身也没有投入很多精力,对目标完成的渴望并不高,所以我也没有很大的挫败感。对比22年的学习情况来说的话,还是有很多进步的,根据这一年计划的完成情况,对24年指定计划也有了一些新的体会和想法。1.阅读书籍这种,不应该追求书籍的数量,而应该根据阅读时长来设定目标。因为有的书就短短一两百页字还很大,有的书有七八百页字还很小。

2024-02-17 20:34:35 430

原创 Mysql大数据量分页优化

之前有看过到mysql大数据量分页情况下性能会很差,但是没有探究过它的原因,今天讲一讲mysql大数据量下偏移量很大,性能很差的问题,并附上解决方式。

2024-01-28 21:51:11 1256 2

原创 单调栈介绍和使用

今天来讲一下单调栈,它定义是非常简单的,首先栈是一种先进后出、后进先出的数据结构。而单调栈,就是说栈中的元素是的。它主要用来解决的问题:找到前一个或者后一个的最大或者最小元素。属于一种空间换时间的思想,通常用来把O(n^2)的时间复杂度降低到O(n)。典型的做法:假设我们是要找比当前元素大的元素,那么栈内的元素就是递增的(从栈顶往栈底方向)。当元素大于栈顶的元素,就把栈顶的元素给替换成当前元素;当元素小于等于栈顶元素,就直接入栈。这样处理后,栈内就一直保持着一个从栈顶往栈底方向递增的单调栈。

2023-10-06 19:25:50 157

原创 并查集介绍和常用模板

并查集(Union-find set 也叫Disjoint Sets)是图论里面一种用来判断节点之间是否连通的数据结构,学会使用它可以处理一些跟节点连通性的问题。它有两个很重要的方法:Find(x):查找x的父元素Union(x,y):将x,y两个对应的集合合并到一起接下来我们先看一个例子,看看怎么判断节点之间是否相连,怎么把两个集合合并到一起:先看第一个问题,怎么判断两个节点是否相连?

2023-09-10 22:35:48 226

原创 leetcode-7022 限制条件下元素之间的最小绝对差

这道题是358周赛的第三题,当时没做出来,后来弄明白了,记录一下。

2023-08-13 23:15:42 231

原创 postgresql字段被截断问题

最近遇到一个问题就是字段名过长,会被pg给截断,导致原始字段和下游用的的字段不一样,就会报错。当然,小伙伴可能会说为什么会用那么长的字段名,每个应用程序里面处理不一样,我们数据字段每次被使用就会加一个后缀,用来标识它是在哪一层里面被使用的,随着被使用的越来越多,就会超长。这只是这个NOTICE,在命令行里面可以报出来,但是如果是在Java程序里面,执行的时候是不会报这个错,只会在最后执行失败的时候抛出字段不存在的异常。

2023-08-13 23:14:15 1001

原创 Java ShutDown Hook介绍和使用

1.ShutDown的使用还是比较简单,网上也有分析Spring和Dubbo等开源框架的使用例子,基本上都是用于销毁处理资源释放的问题2.稍微要注意的就是一些特殊情况,比如hook执行是无序的,不能重复添加相同的hook,已经执行的hook不能再创建新的hook等3.平时基本没用到过ShutDown Hook,自己想到一个比较有用的场景就是Jvm挂了,在Hook里面给监控程序发通知发邮件之类的,让技术人员来处理。

2023-06-18 23:08:33 1154

原创 2022回顾

新年和亲朋好友的相聚差不多接近尾声,假期也所剩无几,开始静下心来写作,回顾一下我的2022年,看下自己去年做得好的和不足,展望下2023,开始新一年的生活。(因为是公历2023年写的文章,所以文中所有的去年都是指的2022年)一年的时间其实还挺长的,回忆起来经历了很多事情,但是事情仿佛都是一件件被记录在脑海,没有时间关联,好在手机里面储存了一些照片,能够帮助串起这些时间的碎片。所以我在想平时可能还是需要多拍拍照片,往后才能更好的回忆往昔的生活。

2023-01-28 10:37:04 502 1

原创 用Typora,PicGo和OSS实现自动上传图片

以前写博客要发布到好些个平台,我是将图片一张张上传到每个平台,后来发现是真的麻烦,上传图片花的时间太多,极大的降低了我写文章的积极性。后来改进为使用oss,把博客的图片都上传到oss上面。然后使用oss返回的图片url,这样我的文章里面的图片只上传了一次,最后把整篇文章的mardown复制到各个平台上,平台一般都会把markdown的文章中的img标签的图片上传到他们自己的服务器,然后把图片打上平台的水印,然后把原图片链接替换掉。

2023-01-02 22:35:43 684 1

原创 杭州马拉松赛后感

2022年杭州马拉松结束了,成绩也出来了,记录一下自己第一次参加马拉松的过程和感想。从我马拉松抽签知道中签到马拉松正式开赛,中间只有九天的准备时间,可以说是非常仓促了。主要是事前也没想到自己能中签,从大学毕业后,马拉松摇号至少有五次吧,从来没中过,没想到这次摇中了,但是又没怎么针对性训练过。不过最后结果是好的,我还是完成比赛了,成绩也比我自己预计要好不少,赛前估计自己跑完十公里大概需要一小时十六分,这个数据是我自己在小区里面跑了十点五公里推算出来的。然后在推测自己后半程的十公里多可能要比前半程要慢,所以在加

2022-11-26 11:36:05 366

原创 JVM-对象头了解一下?

在《深入Java虚拟机》第三版的第二章里面有讲到关于对象的内存布局的知识,今天我们就来聊一聊这里面的对象头,并且会对创建对象,对象头里面的信息变化做一个实践的程序练习。

2022-11-16 22:27:46 354

原创 JVM-对象头了解一下?

在《深入Java虚拟机》第三版的第二章里面有讲到关于对象的内存布局的知识,今天我们就来聊一聊这里面的对象头,并且会对创建对象,对象头里面的信息变化做一个实践的程序练习。首先我们要知道对象在内存的布局是什么样子?对象的内存布局可以分为三块:了解了对象的内存布局之后,我们开始讲markWord储存的信息,markWord在32位和64位系统中的长度是32和64,如果64位系统开启了压缩指针的话,那也是32位。查看jvm默认参数:java -XX:+PrintCommandLineFlags -versio

2022-11-16 22:25:49 454

原创 trino的介绍和安装使用

根据官网的自己的描述,他们解释了trino不是什么,是什么,来方便读者了解trino。不是什么:它不是数据库的替代品,也不是为OLAP来设计的是什么:它是一种工具,一种可以提供访问多种数据源,并且可以处理PB,TB级别的工具。并且能进行数据分析,聚合数据,生成报告(通常这是OLAP的功能)...

2022-08-07 23:20:21 7436 3

原创 类加载的思维导图

来自于学习《深入理解Java虚拟机》的第七章做的思维导图,,还有部分验证加载过程的。

2022-07-24 21:07:12 124

原创 Java接入sqlserver的一些坑点记录

jdbc对应的maven版本:网上搜索出来的资料有两种,一种是比较老版本的这个版本我去maven的主仓库查了下,更新时间是2016年3月份,所以最好就别用这个老版本的包了。推荐使用:另外一种是船新版本的driver2.Java对应sqlserver驱动名称驱动名称:发现很多网上写的都是com.microsoft.jdbc.sqlserver.SQLServerDriver,申明这个名称在10.2.1版本是错的,正确的是com.microsoft.sqlserver.jdbc.SQLServerDri

2022-06-22 13:24:21 1034

原创 2021回顾

前言本来也不打算写年终总结了,毕竟公历和农历年都过了,但是想想之前也没有正式写过什么年终总结,现在开始每年写一篇,等到自己年纪大了,在翻看自己年轻时写下的一篇篇回忆录,看看当时的自己正在干什么,也还是挺有趣的,否则时间太长的话就真的不记得当时做过些什么了。很多年之后再翻看的时候,和当时写记录的时候对比心情肯定也不一样了,所以还是有必要写点啥。于是开始拿着手机的照片和记录翻阅,看看自己2021年都干了些啥。1.体育锻炼:从过年之后开始上班,在3月份有了一个很大的转变就是加入了公司的健身小分队,开始锻炼身

2022-02-06 23:09:43 245

原创 jdbc和mybatis的流式查询使用

导语:有些时候我们所需要查询的数据量比较大,但是jvm内存又是有限制的,数据量过大会导致内存溢出。这个时候就可以使用流式查询,数据一条条的返回,处理完一条在拿下一条数据,这样每次在内存里面的数据其实很小,不会导致内存溢出。本文里面会讲到jdbc的流式查询和mybatis的流式查询。jdbc流式查询:jdbc的流式查询需要在生成PreparedStatement的时候设置三个参数。如下:PreparedStatement stmt = jdbcTemplate.getDataSource().ge

2021-12-18 18:42:56 1678

原创 Mysql行记录格式

概述:mysql的行记录格式是跟随着文件格式一起变化的,官网上说Antelope是早期的文件格式,它又包含了 COMPACT 和 REDUNDANT 行格式;另外最新的文件格式是Barracuda ,它包含COMPRESSED 和 DYNAMIC 行格式,与 COMPRESSED 和 DYNAMIC 行格式相关的功能包括压缩表、页外列的高效存储以及最多 3072 字节的索引键前缀。在官网上没有找到这两个文件格式具体是从什么时候开始启用和设置为默认配置的,如果有朋友知道文件格式是从什么时候开始被使用的可

2021-09-05 22:43:15 932 1

原创 连接数据库SSLHandshakeException问题

问题描述:在测试服务器上,java程序启动的时候,日志里面出现javax.net.ssl.SSLHandshakeException,这个错误目前还没有发现是什么原因导致的,大概率是有人升级了mysql或者jdk的版本。在查找多方资料发现,是jdk8和mysql支持的协议不一致导致的。mysql版本:5.7.34jdk版本:1.8.0_292问题剖析:1.jdk8从小版本JDK8u261开始支持TLS1.3,默认TLS1.2之前的协议在security里面是禁用的,所以从JDK8u261开始只

2021-08-08 23:00:56 5143

原创 机器学习笔记5-支持向量机2

1.低维到高维的映射根据上一节的结论,我们主要要做的就是解决线性可分的问题,线性可分的问题最后会被转换为一个凸函数的问题就认为是有解的。但是并不是每个问题都是线性可分的。遇到线性不可分的问题,我们可以将低维映射到高维。比如,二维映射到三维:当特征空间的维度M上升时,对应的(ω,b)待估计参数的维度也会随之上升,整个模型的自由度也会随之上升,就有更大的概率将低维数据分开。这里问题就由线性不可分变成了怎么找到φ(x),来完成低维到高维的映射。2.核函数为了解决上面找φ(x)的问题,引入了一个新的概

2021-07-18 23:05:41 239 2

原创 机器学习笔记5-支持向量机1

前言:支持向量机这一节是看的中国mooc网上浙大胡浩基的课,感觉还是中文讲课的比较清晰易懂,再结合看了周志华的《机器学习》。看完视频再看瓜书才明白上面那些公式是怎么来的,可能对于初学者来说还是母语的视频教学更好懂。一开始看瓜书真的是头痛,全是各种数学公式,推导过程也没有。1.支持向量机(support vector machine)定义:可分不可分如图如果能用一条直线把不同的数据给分隔开,就是线性可分的(linear separable)如果如果不能用一条直线把不同的数据给分隔开,就是线性

2021-07-04 22:15:30 321 6

原创 机器学习笔记4-多元梯度下降法

1.多特征2.多元特征下降法3.多元特征下降法-特征缩放有多个变量来求全局最优解的时候,如果变量的取值范围非常不一样,会使得等高线图变得扁平,比如图中的房屋尺寸和房间数量,一个是0-2000另外一个是1-5,会导致求全局最优解变得很慢,要花很长时间来计算。所以这里要把特征的范围缩小到比较相近的范围,比如x1/2000,x2/5,这样x1和x2都的范围是[0,1],使等高线的图看起来比较圆,会更快的找到全局最优解。均值归一化 mean normalization:μ1是x1的平均值,s1

2021-06-27 23:23:57 672 1

原创 机器学习3-线性代数回顾

引语:这一节基本上就是大学上的线性代数的内容的复习。1.矩阵和向量矩阵定义:矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。matrix:rectangular array of numbers矩阵的维数:是指它的行数和列数,比如上图就是一个4x2的矩阵dimension of matrix:number of rows x number of columns矩阵的元素:是矩阵中的数值,使用Aij来表示第i行第j列的数值向量是特殊的矩

2021-05-30 10:33:15 380

原创 记一次安全漏洞处理过程CVE-2018-3252

问题描述:部署在用户的服务器,扫描系统服务的时候,发现服务器上有weblogic的CVE-2018-3252的漏洞。经过在公司反复验证和查找大量资料最后确认是端口的问题。weblogic默认是7001的端口,项目的端口默认是7001。然后扫描软件一般会有固定的验证方式确认是否存在该漏洞,比如3252的POC(观点证明),就是向7001发起一个固定地址的请求如果成功了就说明有漏洞。解决过程:因为这个扫描程序是第三方提供的,而且扫描的报告中并没有说明CVE-2018-3252是在服务器新项目中的多少行,

2021-05-16 23:06:05 2076 2

原创 机器学习笔记2-单变量线性回归

1.模型描述:1.1监督学习 Supervised Learning:given the right answer for each example in the data.对于每个数据集中的样例都有一个人为给出的正确答案。1.2回归问题 Regression problem:predict real-valued output.预测实际值的输出。ps:回归问题这个从字面意思上我老是会记错它是干嘛的,可以这样联想记忆,函数是一个线性模型,就是一条线,我们要让新的值,回归到这条线上面。就是预测一

2021-04-18 22:42:39 652 3

原创 机器学习学习笔记1-初始机器学习

导语:之前有做过一些简单的跟机器学习相关的一些小玩意,比如OCR识别,车牌识别的东西,不过没有系统话的学习过机器学习,最近打算系统的看看学一学。这个是看吴恩达的机器学习的学习笔记的记录。学习地址什么是机器学习 Machine Learning:视频中介绍了两位机器学习专家给出的机器学习的定义:1.Artthur Samuel(1959年).Machine Learning:Field of study that give computers the ability tolearn withou

2021-04-11 23:31:30 132

原创 表格识别2-用jTessBoxEditor训练tesseract模型

1.要想完成这个流程要使用安装了训练工具的tesseract,tesseract现在好像不支持带训练工具的安装参数了,安装会报下面的错误(本人使用的是tesseract4.1.1版本) Error: invalid option: --with-training-tools,所以安装训练工具需要自己编译安装,可以参考博客。

2021-03-28 23:46:41 2163 1

原创 睡眠革命-读书笔记

导语:最近看了《睡眠革命》这本书,这本书比较薄只有400多页,全书总共两个大块,一是介绍睡眠方面的知识,第二块是怎么用这些知识解决实际问题,和实际问题联系起来分析。该书比较新奇,可能是因为看睡眠方面的书籍比较少,但是确实又与每个人的生活密切相关,毕竟人每天大概有三分之一的时间都在睡眠上。下面是看完全书做的思维导图:总结:看完这本书对睡眠有了新一层的认识,之前只知道咱们每个人都有一个生物钟,要睡8小时,熬夜不好等基本常识。阅读完之后,觉得比较新奇的一点,甚至我认为是整本书的核心就是R90睡眠周期

2021-03-14 22:33:05 199 3

jdk-6u38-windows-x64

1.6的jdk 自己一直在用这个 感觉挺好用的 给大家分享一下

2014-07-14

Tomcat-6.0.37

apache-tomcat-6.0.37-windows-x64 适合win7 64位

2014-07-14

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

TA关注的人

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