- 博客(15)
- 资源 (7)
- 收藏
- 关注
原创 关于JVM的直接内存
最近,同事定位到一个直接内存溢出的问题,即直接内存不足导致OOM。在此记录下直接内存的回收策略。首先了解下直接内存是什么?有的地方也叫堆外内存。这部分内存不归JVM管理。
2021-04-20 16:34:22
224
原创 ES的近实时性以及持久化
一、近实时性ElasticSearch的搜索是近实时性的,简单来讲,就是说如果你新增一个文档,然后马上又发送一个查询该报文的请求,有可能得到空的结果。过一会再查,才能查到该文档。可以理解成新增的索引还没那么快同步到索引中,这个同步的时间可以设置,默认是1秒。为什么ES要这么设计呢?归根到底,还是出于性能的考虑。这里先讲下ES中的一些基础概念,Shard(片)、Segment(段)、In-memory buffer(内存索引缓存区)。ES中的文档,是被组织在一个个片中的,一个索引可..
2021-02-28 13:01:36
2893
原创 正则表达式的捕获组与非捕获组
在工作中,经常会用到正则表达式,这篇文章并不是讲正则表达式的基本使用,则是侧重讲正则表达式的捕获组与非捕获组。所用语言均为Java 。一、捕获组捕获组,通过括号将正则表达式括起来,正则表达式匹配成功后,可以通过组号来获取相应的匹配内容。如,我们想获取数字中的整数部分和小数部分,可以用这样的正则表达式。 @Test public void testCaptureGroup(){ String regex = "(\\d+)\\.(\\d+)";
2020-09-20 19:25:12
2296
原创 用 Druid 解析 sql 语句
在工作中遇到一个任务,需要读取.sql文件中的sql语句,对其进行分析,比如,得到这条sql语句是对哪个表进行什么操作,该操作有没有相应的where语句等。这其实是一个对sql语句进行词法分析、语法分析的过程。如果认真研究,那会是大学所学的编译原理的内容了。在此,为了完成任务,我在网上找了一圈,发现在解析sql语法上,有两个常用的工具:1.sqlparser此工具应该是很强大的,本人...
2020-04-14 15:56:37
9786
6
原创 关于windows下读取文件头有空白字符的问题
在工作中,有一次需要读取文件的内容,于是很自然地写下这样的读取代码:BufferedReader readBuffer = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));String s; while ((s = readBuffer.readLine()) != null) { ...
2020-04-13 17:31:24
780
原创 关于@EnableBatchProcessing注解
如果用java config的方式配置spring batch中的相关bean,则可能会遇到@EnableBatchProcessing这个注解。这个注解的用法一般出现在配置文件的上方,如下所示:@Configuration@EnableBatchProcessingpublic class BatchConfig { @Autowired private J...
2019-12-02 16:55:38
6160
原创 Job Repository 数据库方式的配置
写在最前1、为方便开发,本程序所用框架为springboot+mybatis,同时mybatis还集成了 generator插件;如果对这些开发环境不熟悉,建议先查询相关资料,搭建springboot+mybatis环境,再集成spring batch。2、在配置job、step等spring batch的bean时,用的是java config方式,如想用xml方式配置,可参考之前...
2019-12-02 16:50:20
1129
原创 tasklet和chunk的区别
在spring batch 的步骤中,具体执行业务逻辑的代码放在tasklet中。spring batch 提供了两种方式:1、使用chunk实现标准的读、处理、写三种操作;2、实现 tasklet 接口,并实现其execute 方法。一、chunk先看看如何使用chunk来定义一个任务和步骤,代码如下:<!-- 定义任务和步骤 --> <...
2019-11-21 11:27:37
2977
原创 Spring Batch 入门
一、应用场景在银行、电信等一些大型的企业应用上,经常需要处理大批量的数据。比如,银行的交易流水文件的处理等。这些大批量数据的处理有一些共同点,从文件或数据库中读取数据,进行加工处理,再写入到文件或数据库中。Spring Batch 正是完成这样的功能。Spring Batch 的出现,让我们可以专注业务编程,而不去关心批量如何执行。Spring Batch 的主要功能:1、与quart...
2019-11-20 17:25:31
1242
原创 关于sql中drop、truncate、delete的探讨
SQL中有三种删除数据的方式,分别是:1. 使用truncateTRUNCATEtable [表名称]这个语句用来删除整个表的数据内容,但表本身的结构还是保存下来的,包括表的定义、索引的定义等,都还保留着。看起来,这种方式是用来清理数据库内容的。2.使用deleteDELETE FROM 表名称 WHERE 列名称=值 #用于删除特定的行DELETE FROM 表...
2019-09-26 17:10:54
257
原创 java hascode 详解
对于java对象,每个对象都可以调用方法hashCode()获取对应的hashCode值,这个值有什么作用?hashcode 专门应用于java中hash table 相关的类,比如,Hashtable、HashMap等,用于帮助对象归类到hash table 的某个桶中。 一、hashCode原生的返回值首先可以看看Object中hashCode()的定义:public n...
2019-01-24 16:15:25
515
原创 在tomcat使用log4j
在项目中使用log4j很简单。以maven项目为例。在pom.xml文件中加入log4j的依赖,如:<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version>&am
2018-08-02 21:41:28
853
原创 springmvc出现的 NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
最近用maven构建一个springmvc项目时,遇到这样一个问题:部署项目后,可以访问项目首页,控制类也可以成功初始化,但是访问@RequestMapping下的路径时,却报505异常。具体错误如下:HTTP Status 500 – Internal Server ErrorType Exception ReportMessage Handler processing fa...
2018-07-27 14:29:28
797
2
原创 用回溯法解决八皇后问题(Java实现)
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。—-以上内容引自百度百科。本程序的功能是打印八皇
2017-06-27 11:48:19
5828
3
转载 sql语句中as的用法
as 一般用在两个地方,一个是query的时候,用来重新指定返回的column 名字如:一个table 有个column叫 id, 我们的query是select id from table1. 但是如果你不想叫id了,就可以重新命名,如叫 systemID 就可以这样写select id as systemId from table1;还有一个用法就是在create table 或 p
2015-04-22 10:52:13
2875
spring 4.3 源码
2017-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人