自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 资源 (4)
  • 收藏
  • 关注

原创 Spring中怎么解决循环依赖?

前文在写Spring之getBean的时候提到过在这个过程中要解决循环依赖。什么是循环依赖?A类依赖B类,B类依赖A类。 这就是循环依赖。如下就是一段在Spring中会造成循环依赖的代码@Componentpublic class A { private B b; @Autowired public A(B b) { this.b = b;...

2020-03-29 21:28:44 1348 1

原创 Spring是怎么创建一个Bean的?

finishBeanFactoryInitialization

2020-02-12 13:31:38 2991 1

原创 Spring之NamespaceHandler与BeanDefinitionParser

1.前文由Spring启动过程之-obtainFreshBeanFactory() 可以看到NamespaceHandler、BeanDefinitionParser为解析配置文件中的Element起重要作用。那么它本身是如何被加载的呢?2.NamespaceHandler之ContextNamespaceHandler常见的NamespaceHandler实例:ContextNamespa...

2020-01-20 19:14:41 1128

原创 线程池中的线程何时死亡?

文章目录本文产生的原因结论Thread线程状态线程池中提交任务threadPoolExecutor#execute(runnable)addWorker(firstTask)线程状态new: newWorker(command)->getThreadFactory().newThread(this)线程状态runnable:worker.thread.start()线程状态running:w...

2019-08-02 11:40:35 5062 5

原创 《Java高并发编程详解-多线程架构与设计》Java Classloader

摘自《Java高并发编程详解-多线程架构与设计》第九章 p144-p157重点:1.连接-准备阶段为静态变量赋初值,初始化阶段为静态变量赋代码值2.引起初始化阶段的6种情况(主动引用),静态变量/方法,new,反射,子类引起父类。以及被动引用,如静态常量。其值opy到被引用的类。3.类加载的三个阶段4.静态代码块可以对后面的静态变量赋值,但不能访问。5.clinit线程安全1.类...

2019-07-24 12:00:32 904

原创 DeepSeek-R1试用

最近DeepSeek太火了,刚好放假,下载试试。发现现在开源大模型的生态做的挺好的,几分钟就能在本地部署一个大模型。

2025-01-27 21:24:30 3014

原创 差点被这个Kafka的删除策略难住了

Kafka 会基于空间大小判断,超过大小的数据将被删除。可以基于topic设置高优先级的配置。Kafka 会基于时间判断,只保留时间内的分段(segment)文件。可以基于topic设置高优先级的配置。Kafka不会单独针对某条消息去删除,只会删除整个分段(segment)。Kakfa可以基于时间和大小来生成新的分段。可以通过控制这两个参数,来减小Kafka删除整个分段保留的消息时间的正确性。

2024-07-13 14:13:13 1167

原创 【邮件协议】解析邮件流量包,发现正文出现了两次

使用foxmail发送流量包, 解析其内容,发现正文出现了两次。一次是base64编码的内容,一次是quote-printable编码的内容。使用base64编码的正文无法展示格式,而quote-printable的内容可以展示格式,猜测是用于兼容不同的邮件客户端。WIKI-多用途互联网邮件扩展。

2024-07-04 17:31:46 257

原创 postgreSQL/kingbase limit分页查询,结果乱序

postgres/kingbase limit分页查询,结果乱序

2023-06-04 15:47:17 2514

原创 利用字节码分析a=a++后,为何不会自增

主要就是对本地变量表的数据+1(为2)后,栈顶的1又覆盖了本地变量表的数据,导致a最终仍为1。刚好最近看了《自己动手写Java虚拟机》,对着指令集一行一行分析了一下。群友分享一道题,一看很熟悉,但是不知道怎么解释。具体每一行,看图吧,应该很清楚了。《手把手写Java虚拟机》第4章。

2022-10-18 21:00:29 1058

原创 SpringMVC请求调用流程简介

【代码】SpringMVC请求调用流程简介。

2022-10-16 01:12:39 939

原创 【读书笔记】《自己动手写Java虚拟机》-方法调用

虚拟机执行指令(instruction)步骤:1. 获取当前虚拟机栈顶帧2. 设置程序计数器3. 读取一个字节的操作码(one-byte opcode)以及操作数4. 设置下一跳的程序计数器5. 执行指令6. 循环到第1步骤[^2]

2022-09-14 00:48:26 625

原创 cannot access class jdk.internal.misc.Unsafe(java9的模块概念)

现象java11的本地环境,服务中使用到netty。启动后,服务无法访问,查看日志,有提示:cannot access class jdk.internal.misc.Unsafe ... because the module java.base not export jdk.internal.misc to unnamed module解决办法stackoverflow给了原因以及解决办法。--add-opens java.base/jdk.internal.misc=ALL-UNNAMED

2022-03-20 19:07:59 5666

原创 SpringBoot测试用例对资源文件的加载

背景在运行测试用例的时候,test目录下未配置application.properties,但加载到了 非test/java下的application.properties。跟踪代码关键代码org.springframework.boot.context.config.ConfigFileApplicationListener.Loader#load启动的时候,classpath会指定到main/java下面的代码。运行测试用例的时候,加载到了非test路径下的resource:applic

2021-08-20 10:55:28 615

原创 Mac下python2.7安装pip失败后解决流程

背景电脑是Mac Pro M1,自带有python2.7.16尝试使用pip,发现没有pip命令。安装及解决过程直接用 sudo easy_install pip 安装失败pip命令(在$PATH中)有了,但是执行pip 任何命令都失败。curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.pypython get-pip.py 执行后,pip --version报错,使用python -m pip --version不报

2021-07-22 11:36:33 3263 10

原创 SpringBoot+外部Tomcat启动报错 .NoClassDefFoundError: javax/servlet/http/HttpSessionIdListener`

环境Tomcat版本:7.0maven中的servlet-api版本为3.1.0 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> <version>3.1.0&l

2021-07-02 17:23:14 6551 3

原创 mybatisplus报错:getSqlFirst

错误com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can not use this method for "getSqlFirst"涉及的代码query=lambdaQuery().eq(User::getId,id);page(new Page(1,20),query);原因正确写法应该是lambdaQuery().eq(User::getId,id).page(new Page(1,20);page方法虽然可

2021-03-26 19:22:06 8069 1

原创 使用mybatis-plus的分页拦截器(PaginationInterceptor)分页失败

背景项目中使用到了mybatis-plus的3.0.5版本,分页拦截器是PaginationInterceptor。代码如下: @Transactional(readOnly = true) public void test() { int current =1; while (true) { final LambdaQueryWrapper<Foo> query = Condition.<Foo>lambda

2021-03-16 01:28:58 7028

原创 Arthas实用案例

1.查询Mybatis执行的sql:经常不知道mysql执行的什么语句,可以用如下语句去监控mysql的执行语句。注意UPDATE 即代表 更新。 SELECT 同理。watch org.apache.ibatis.mapping.BoundSql getSql -n 5 'returnObj' 'returnObj.indexOf("UPDATE")!=-1'这里returnObj是观察了返回值TODO...

2020-12-09 15:16:49 3701

原创 读书笔记-需求设计:构建用户想要和需要的产品(1)

描述系统的方法五视图业务组织图 。 描述系统关系。业务流程视图。 描述运行流程,边界。数据视图。 描述数据(库/表)层面的关系。程序员视图。 描述代码结构。硬件配置。 描述部署情况。什么是设计1. 理解。理解自己想要达到的目标(想开发的东西),需要克服的困难。--成果:需求清单。2. 猜想。需要有一些创意,依靠直觉并作出一些有理由的猜想。--从诸多想法中挑选一个或几个,进行下一步。3. 细化。确保所有的需求都得到覆盖,并确保所有已知的弱点都得到解决,使设计充实。4. 分析。对

2020-11-30 23:19:18 499

原创 Jmeter-入门

Jmeter目录结构bin : 可执行文件与配置文件。jmeter.bat        windows的启动文件jmeter.log        jmeter运行日志文件jmeter.sh         linux的启动文件jmeter.properties    系统配置文件jmeter-server.bat windows分布式测试要用到的服务器配置extras:扩展插件目录。提供了对Ant的支持,可以使用Ant来实现自动化测试。lib:所用到的插件目录,里面均为jar

2020-10-31 22:25:06 199

原创 Arthas使用-wath与tt入门

介绍Arthas 是Alibaba开源的Java诊断工具,可以用于线上快速定位问题。对于我呢,常常直接用来还原事故现场。比如,异常发生时,又没有记录足够的日志。使用watch与TT排查下载maven仓库Github Releases页启动java -jar arthas-boot.jar启动后选择要观察的java进程。选择应用java进程:$ $ java -jar arthas-boot.jar*> [1]: 35542[2]: 71560 arthas-demo.jar

2020-09-30 01:56:34 4251

原创 mybatis-plus启动报错:java.lang.NoClassDefFoundError: Could not initialize class.. SqlSessionFactoryBean

java.lang.NoClassDefFoundError: Could not initialize class org.mybatis.spring.SqlSessionFactoryBean注意mybatis版本与mybatis-plus的版本是否兼容。我报错的版本是:mybatis,3.3.0, mybatis-plus:3.0.5。修改为下面版本,正常:mybatis:3.4.6, mybatis-plus:3.0.5...

2020-08-18 19:28:22 1675

原创 Jmeter学习笔记(一):线程组配置

作用线程组配置一组线程,用于产生负载,模拟用户行为。配置解释一个tes plan 是一个测试计划。线层组类型:setup和teardown分是 thread group 运行前后执行的线程组ramp up 测试,迭代第二轮没有线程启动时间注意:这里1-1线程的第二次请求在第一次结束后马上请求。ramp up 限制了单个线程启动时间为 6/3=2秒参考资料官网:https://jmeter.apache.org/usermanual/index.htmlhttps://

2020-07-28 22:50:15 311

原创 MapperScannerConfigurer导致PlaceHolder的替换变量报错

前提1.开启了byName自动注入2.定义了PropertySourcesPlaceholderConfigurer,去解析配置。3.含有id="sqlSessionFactory"的SqlSessionFactory4.定义了MapperScannerConfigurer,在其属性sqlSessionFactory中的dataSource属性中使用了${username}、${password}等。原因MapperScannerConfigurer 是一个BeanDefinitionReg

2020-06-28 22:33:24 434

原创 《Java多线程编程实战指南-设计模式篇》笔记

线程池大小1.CPU密集型:考虑设置 Cpu数+12.I/O密集型:考虑设置 2*Cpu数线程泄漏(Thread Leak)含义:指线程池中的工作者线程意外中止,使得线程池中实际可用的工作者线程变少。如果线程泄漏持续存在,那么线程池中的工作者线程会越来越少,导致线程池无法处理交给其的任务。例子:SocketInputStream.socketRead0引起线程池提交任务后,futureTask.get超时正确的预防方式1.处理可恢复的异常。2.设置超时等待。...

2020-05-31 23:52:34 267

原创 git reset --soft驻颜术(恢复文件之前的状态)

前言这是小明结婚生子后,老婆小红要整容的故事。了解整容方案回到过去,找到以前的样子:git reset --soft整容成之前的样子:git checkout回到未来:git reset --softps:这里 我理解成一次commit点,记录了当前索引的指向。修改后,工作目录变化。git add后将修改索引指向(新文件/内容)。再次git commit后,将当前commit点与...

2020-04-28 01:29:38 1221 1

原创 Netty中遇到的问题:ctx.writeAndFlush造成非连续的请求

目的为了保证客户端的请求是顺序发送到服务端的,ctx.writeAndFlush被包装在用synchronized修饰的send方法中,客户端统一调用sendRequest方法。有多个线程使用sendRequest方法1.eventLoop处理channelRead的结果,并调用sendRequest发送到服务端。2.业务线程(如心跳线程,http请求对应的线程)去调用ctx.writeA...

2020-02-20 20:20:36 5676

原创 Spring之启动过程obtainFreshBeanFactory()

1.refresh流程我们知道refresh是spring启动的关键方法,refresh启动过程中,先要得到beanFactory 以及 需要交给beanFactory管理的bean。在refresh时,prepareRefresh后,马上就调用了obtainFreshBeanFactory创建beanFactory以及扫描bean信息(beanDefinition),并通过BeanDefin...

2020-01-20 17:43:32 1884 3

原创 Elasticsearch进行过滤的时候使用位运算

代码1.利用scripteg:只匹配11{ "query": { "bool": { "filter": { "script": { "script": "(doc['id'].value&3)==3" } } } }}2.利用should如果一共有4位,如0000,欲匹配xx...

2020-01-14 14:56:34 3179

原创 【内存泄漏】测试ThreadLocal--gc后引发的threadLocalMap的key为null,但value不为null的情况

效果gc后key为null,但是值不为null。需要注意的是,这里threadLocal本身还是存在的。只是传入到Entry中的key被回收了。原因ThreadLocal#set后会将threadLocal实例本身作为key 放入 Thread.currentThread().threadLocalMap中,与set的value构成一对Entry。而Entry使用了threadLocal的...

2019-12-27 10:14:31 10453 14

原创 读书笔记:《大型网站系统与Java中间件实践》

文章目录大型网站演进数据库读问题写问题应用应对的挑战引入服务层框架:多机房问题序列化与反序列化问题异步调用线程池隔离服务请求合并数据访问层一致性的基础理论--CAP/BASE多机的Sequence问题消息中间件功能消息一致性避免对消息中间件的强依赖级联、嵌套topic/queue消息发送到中间件的可靠性保证(发送可靠)消息投递的可靠性保证(消费可靠)消息者重复消费避免投递线程被阻塞大型网站演进...

2019-12-15 18:58:22 303

原创 对elasticsearch持久化变更的一点理解

refresh–可搜索但还未持久化数据写到一个新的segment 实现了1s(默认)的实时搜索。fsync --持久化提交(Commiting)一个新的段到磁盘需要一个 fsync 来确保段被物理性地写入磁盘。flush --持久化所有在内存缓冲区的文档都被写入一个新的段,生成一个新的提交点。这个执行一个提交并且截断 translog 的行为在 Elasticsearch 被称作一次 f...

2019-12-14 22:05:12 559

转载 Druid 的 WallFilter 抛出 sql injection violation, comment not allow 问题的解决方法

ps: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter可以对应修改参数。 如需要执行多行语句 , 要设置multiStatementAllow为true1 现象查询某个模块数据时,抛出以下异常:Caused by: java.sql.SQLException: sql inje...

2019-12-02 17:48:44 4679

原创 Elasticsearch+Spring定时任务报错【not be the scheduler thread. Reason: [Blocking operation]】

报错java.lang.AssertionError: Expected current thread [Thread[scheduler-5,5,main]] to not be the scheduler thread. Reason: [Blocking operation] at org.elasticsearch.threadpool.ThreadPool.assertNotSche...

2019-11-26 16:44:35 305

原创 elasticsearch6.2 Boosting Query不能正常降低评分

起因看文档期间测试 boosting使用negative降级,测试发现6.2版本下不可用。排查怀疑是中文文档太旧,语法有问题。查询6.2文档Boosting Query,语法没问题。在github上找到issue:Boosting Query with negative_boost does not work as expected on 6.x。楼主描述6.x不可用,5.X可用,与出现的...

2019-11-07 11:43:18 556

原创 《Java性能优化权威指南》学习笔记

编译编译是指生成机器码 即 二进制目标文件的过程。Java最初是转换为类文件,虚拟机将其转为字节码。运行时动态的转为机器码。JIT会在运行时,将调用次数超过阈值CompileThreshold的代码编译(由方法调用计数器计数)。JVM性能监控重要的垃圾收集数据堆大小。新生代、老年代、永久代大小Minor GC /Full GC 的持续时间、频率、空间回收量打印垃圾收集信息 -X...

2019-10-25 14:47:03 412

原创 强引用、软引用、弱引用、虚引用测试

强引用/** * 除非GC Roots不可达,否则宁愿OOM也不回收引用 * 启动参数: * -Xmx16m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:NewSize=2m -XX:MaxNewSize=2m */private static void strongRefenceTest() { final int _8M ...

2019-10-24 15:35:49 782

原创 一次OOM分析-ByteArrayOutPutStream#write引起

本文产生的原因上传一个大文件文件的时候报了OOM查看代码以前的上传代码中使用了URL url = new **URL**(urlStr);conn = (HttpURLConnection) url.openConnection();....省略out = conn.getOutputStream();conn.setRequestMethod("POST");conn.con...

2019-10-23 17:20:31 5045

转载 URLConnection 使用流的问题

URLConnection 使用流的问题HttpURLConnection con = (HttpURLConnection)new URL("url").openConnection(); //若不进行下面两种设置 会使用PosterOutputStream extends ByteArrayOutputStream将所有加到内存中输出。如果传输数据过大, 会导致OutOfMemoryE...

2019-10-23 11:29:19 617

纯真ip库QQWry.dat

http://blog.csdn.net/thewindkee/article/details/70171711

2017-05-04

slf4j-nop-1.6.4.jar

免费

2016-03-16

mongo-java-driver-3.0.4.jar

mongo-java-driver-3.0.4.jar java连接mongodb的需要驱动jar包

2016-04-11

PyInstaller-3.2.zip

解压后、 切换到根目录,cmd 命令下输入:python setup.py install 安装。 安装前确认已安装pypiwin32。 如已安装pip可以使用pip pypiwin32 install安装pypiwin32 , pip install pyinstaller安装pyinstaller。 这里提供ZIP包给网络不好的同学。

2016-07-31

空空如也

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

TA关注的人

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