- 博客(37)
- 资源 (7)
- 收藏
- 关注
原创 JVM笔记(一):Java内存区域
在JDK1.4中加入了NIO类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer对象作为这块内存的引用进行操作。
2023-04-02 14:29:31
392
原创 实现一个基于Redis的简单的延时队列(rbsdq-spring-boot-starter)
概述项目中常常需要延时触发一些操作,比如订单30min没有付款就取消订单、有些金融机构的支付接口退款没有退款通知,需要主动调用查询接口等等。这些场景有如下特点:吞吐量要求不大一般的消费逻辑都是查询更新或更改一条数据,对于消息重复发送/消费并不严格消息消费一次后可能还需要重新加入队列再次消费(延时退款查询状态仍为退款中,需要再次查询)基于以上几点,可以尝试用Redis的zset数据结构来实现一个延时队列(Redis Based SImple Delat queue)接口设计BaseDel
2020-08-02 18:11:40
234
原创 《Kafka技术内幕》读书笔记:Kafka入门
1. 介绍1.1 Kafka流式处理平台一个流式数据平台,最重要的是要具备如下3个特点:类似消息系统,提供事件流的发布和订阅,既具备事件注入功能。存储事件流的数据节点具有故障容错的特点,即具备数据存储功能。能够对实时的事件流进行流式地处理和分析,即具备流处理功能。作为一个流式数据平台,Kafka如何实现上面3个功能特点:1.1.1 消息系统消息系统(也叫消息队列)主要有两种消息模型:队列和发布订阅。队列模式:多个消费者读取队列,每条消息只发送给一个消费者发布-订阅模式:多个消费者订
2020-05-21 17:37:55
438
原创 MAVEN使用问题记录
1.所有仓库配置都正确,就是无法从远程现在jar包请检查当前项目的maven配置是否是offline mode,这个控制台会有提醒告诉你当前为offline mode,去掉勾选:2.远程仓配置了老是提醒远程仓配置哪一行有的TAG从网络上赋值粘贴的可能带有非法字符,会有警告单不影响使用,可以删掉重新缩进;3.配置好了仍然无法下载包,可能是本地有该包的pom缓存但不完全,jar包没下载这个...
2020-04-22 11:28:06
152
原创 ubuntu自定义命令
最近常常本地连接服务,每次输入ip和密码十分麻烦,想通过自定义命令连接服务器;## 生成可执行文件vim zr## 文件内编辑(需要先安装sshpass命令),<>替换成服务器的密码、登录用户以及ip#! /bin/shsshpass -p "<password>" ssh <user>@<ip>## 添加可执行权限chmod 777 ...
2020-04-09 17:24:38
1132
3
原创 consul使用(一)
使用两台阿里云服务器尝试搭建consul集群:1.安装wget https://releases.hashicorp.com/consul/1.7.2/consul_1.7.2_linux_amd64.zip##上面压缩包解压后是一个consul可执行文件unzip -d /usr/local/bin consul_1.7.2_linux_amd64.zip## 配置环境变量vim /...
2020-04-08 14:26:11
2429
原创 同区域阿里云ECS实例见跨账号内网互通
最近阿里云活动,跟朋友各买了一个ECS实例,希望内网打通用于分布式学习:现有A、B两个不同账号的ECS实例A账号通过VPS创建一个云企业网(A的VPS加入自己的云企业网);B在自身的VPS网络中授权给A创建的云企业网(B未授权则第3步会失败);A在云企业网中加入B的VPS网络即可(此时如果B的VPS已经加入其它云企业网也会失败)。具体如下图:注意:本例实在两个ECS实例同区域的...
2020-04-01 14:07:36
1185
1
原创 记录lucene使用问题
1.问题线上根据商品名称查询商品报错,使用如下代码错误复现: public static void main(String[] args) throws ParseException { QueryParser parser = new QueryParser("tag", new IKAnalyzer(true,false)); Query query...
2020-03-31 18:09:48
264
2
原创 java(1.8)字节码读例(匿名内部类)
源代码public class ThreadDemo { public static void main(String[] args) { for(int i = 0;i<10;i++){ final int j = i; new Thread(new Runnable() { @Ov...
2020-03-22 12:37:55
1154
4
原创 JDK(1.8)动态代理
1.代理接口,实现类和InvocationHandler/** * 代理接口 */public interface Student { /** * 学生开始上课 */ void startLesson(); /** * 学生下课 */ void endLesson();}/** * 代理接口的实现类 */...
2020-03-18 16:16:03
247
2
原创 springboot配置javaMail
简单记录一下后台使用JavaMailSender发送邮件:导入jar包spring-boot-starter-mail配置文件spring.mail.protocol=smtpspring.mail.host=smtp.mxhichina.comspring.mail.port=465spring.mail.username=spring.mail.password=spring...
2019-12-16 15:27:02
476
原创 ubuntu18.04 root用户登录耳机没有声音
1.安装pavucontrolsudo apt-get install pavucontrol2.将下列命令加入用户的启动脚本(这里用/etc/profile也可)sudo vim /etc/profile将pulseaudio --start --log-target=syslog加入到文件开头sudo source /etc/profile3.打开程序进行设置(命令行或图形界面...
2019-12-16 15:25:07
565
原创 ubuntu18.04 未发现wifi适配器问题
1.检查bios是否位于UEFI且开启了secure boot,如果开启了请关闭有一部分问题这一部分改完就可以看到Wifi列表了,如果没好请继续:先连上网,无线或是手机usb网络2.开机打开 “软件和更新” -> “ubuntu软件” -> “下载自” 选择合适的站点3.“软件和更新” -> “附加驱动” ->选择相应的网卡驱动如果还没好请继续:4.打开命令...
2019-12-16 15:24:36
2372
原创 window 安装mysql
背景由于线上项目使用的mysql版本较低,本地的mysql版本较高,在数据库同步时带来诸多不便,因此现在删除本地原有较高版本的数据库,重新安装。1.卸载原有mysql1.打开任务管理器,停掉mysql相关的服务2.删掉mysql的安装目录,以及数据存储目录(在安装目录下的.ini文件中配置的Data目录)3.删除c盘隐藏目录ProgramDate中关于MySQL的目录(没有请忽略)4...
2019-12-16 15:22:34
135
原创 解决ubuntu root用户无法打开chrome问题
系统版本 ubuntu18.04修改如下文件vim /usr/bin/google-chrome将 exec -a "$0" "$HERE/chrome" "$@" 改为exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox之前尝试修改了google-chrome的桌面文件属性,命令末尾增加了–no-sandbox,...
2019-12-12 18:32:11
1973
3
原创 springboot使用Feign用作第三方接口调用
1.步骤引入openfeign的jar包在启动类上加上**@EnableFeignClients**注解。定义FeignClient,,如下:@FeignClient(name = "feignClient",url = "${czb.support.url}",path = "/client/czb",configuration = {FeignErrorConfig.class})...
2019-10-16 14:48:05
8888
原创 hibernate配置参数表
### Query Language ######################### ## define query language constants / function names hibernate.query.substitutions yes 'Y', no 'N' ## select the classic query parser #hibernate....
2019-10-10 20:51:44
246
原创 springboot配置文件大全
# ===================================================================# COMMON SPRING BOOT PROPERTIES## This sample file is provided as a guideline. Do NOT copy it in its# entirety to your own appl...
2019-10-10 20:50:30
403
原创 springboot注解相关
@SpringBootApplication注解整合了三个注解:@ComponentScan@EnableAutoConfiguration@Configuration其中Component的扫描包括如下注解:有一些注解是用来指定bean的属性,需要在@Configuration类上配合@Enable*注解来生成bean:@ConfigurationProperties@Fe...
2019-10-10 20:48:31
262
原创 Spring Factories扩展机制、endPoint以及opfenFeign的使用(Springboot)
1:如何将引入的jar(sdk)包中定义的bean加入到当前项目的spring容器中?在sdk中通过在META-INF文件夹中,增加spring.factories文件,如下:org.springframework.boot.autoconfigure.EnableAutoConfiguration:\com.czb.config.EndPointInitProcessorConfig,\...
2019-10-10 18:25:59
949
原创 IntBlockPool问题记录(Lucene8.0)
1.概述IntBlockPool与ByteBlockPool结构基本一致,只不过数组元素由byte变为int。(size4倍关系)。主要异同如下:buffer内存占用大小一样,因此size为4倍关系。IntBlockPool的slice链表结束符从1开始,ByteBlockPool从16开始。二维数组扩容策略不同,ByteBlockPool扩容策略较复杂,IntBlockPool扩容策略...
2019-09-16 13:25:19
209
原创 Post请求和Get请求中文参数乱码问题
Tomcat8之前,其默认编码为ISO8859-1:GET请求:修改server.xml配置文件名,或自行转码POST请求:配置字符编码过滤器或手动request.setCharacterEncoding()在Tomcat8及以后,其默认编码UTF-8,也就是说如果你的工程编码为UTF-8,则不会遇到GET请求中文乱码问题,只需要配置编码过滤器解决POST请求乱码问题。当然如果你的工程编...
2019-09-06 16:31:12
190
原创 lucene源码导入IDEA
最近开始阅读Lucene源码,但其是用ant构建的,需要转成idea项目。步骤如下:下载lucene-solr源码下载ant,配置好环境变量进入命令行,切换至项目文件夹ant ivy-bootstrap 下载ivyant idea/eclipse这里下载的是lucene-solr源码包,单独的lucene不支持ant idea|eclipse...
2019-09-06 12:34:49
1836
2
原创 FSLockFactory(lucene8.0的文件锁相关)
1.概述lucene作为一个开源的搜索框架,为我们提供了一个非常好的了解全文检索的窗口。在生产中,多使用基于lucene的solr和ElasticSearch两个分布式搜索框架,原因必然与其不支持分布式和官方并未提供相关的使用文档相关,所以我们可以认将lucene 视为一个搜索框架的内核。本人在此之前,在前辈指导下尝试用lucene实现过几个简单的商品搜索接口,出于好奇尝试阅读源码,现在luce...
2019-09-05 11:43:03
444
原创 private私有属性的访问
之前习惯性的为private关键字修饰的属性增加getter、setter方法,实现在类的外部进行属性访问,还有没有其它方式?如下:public class Student { private String name; public Student(String name) { this.name = name; } public stati...
2019-08-30 10:37:55
870
原创 static关键字修饰类(内部类)
static关键字用法修饰成员变量修饰方法静态代码块修饰内部类修饰内部类时可以不需要外部类对象直接生成内部类实例。用法如下代码内部类没加static关键字,创建内部类对象需要外部类对象来完成,加上static关键字可以直接创建内部类对象。public class OuterClass { public class InnerClass{ } ...
2019-08-28 14:57:19
1513
原创 BytesRef源码阅读(Lucene8.0)
1.概述在Lucene中,有很多地方都会用的基本类型数组,如ByteBlockPool中的二维数byte数组buffers,其中的每一个元素buffer(block)就是一个一维的byte[]。如果我们需要获得block中的某一区间(一般是连续的),则需要数组的拷贝,效率十分低,要在索引过程中需要频繁的读取。BytesRef的出现极大缓解这一问题,它内部可以持有某一个block的引用,通过off...
2019-08-28 12:03:21
637
原创 Unicode字符集、UTF-8、UTF-16、UTF-32
1.Unicode字符集Unicode(统一码、万国码、单一码)包括字符集、编码方案(UTF-8、UTF-16、UTF-32),它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。(末尾附unicode编码范围表)2.UTF-8编码变长编码,其特点如下:兼容 ASCII没有字节序问题以英文和西文符号比较多的场景下(例如 HTML/XM...
2019-08-27 15:11:11
783
原创 如何判断一个整型数的二级制数中1的位数?如何将整型数对2^n求余?(位运算)
以下问题都是通过位运算的方式解决:Q1:a&(a-1)表达式有什么作用?A1:a-1会将a的最低位的1变为0,后几位全变为1,之后与a进行&位运算,可以看做将a的最低位1变为0。Q2:如何判断一个整型数的二级制数中1的位数?A2:a = a&(a-1),直到a = 0。中间记录次数。Q3:如何判断一个整型数a是2的正整数次幂?A3:参考Q2。其二级制数为1的位...
2019-08-23 17:53:01
164
转载 spring源码导入jar包缺失
将项目导入IDEA后发现spring-beans工程编译报错,找不到某些类。解决办法:配置好gradle后,终端进入项目根目录,执行如下命令导入相关jar包:gradle cglibRepackJargradle objenesisRepackJar还有其他问题参考:https://blog.csdn.net/cyxinda/article/details/79404565...
2019-07-30 19:24:01
441
原创 Spring实体Bean的别名注册之SimpleAliasRegsitry
概述SimpleAliasRegsitry实现了AliasRegistry接口,主要作用是支持实体Bean的别名注册。SimpleAliasRegustry源码属性: /**别名 -> 真实名(或别名),注意,value值不一定都是Bean对应的id */ private final Map<String, String> aliasMap = new Concurre...
2019-07-17 19:07:34
572
2
原创 哈夫曼树构造过程及最优证明
哈夫曼树一、定义哈夫曼树,又称最优树,是一类带权路径长度最短的树。首先有几个概念需要清楚:1、路径和路径长度从树中一个结点到另一个结点之间的分支构成两个结点的路径,路径上的分支数目叫做路径长度。树的路径长度是从树根到每一个结点的路径长度之和。2、带权路径长度结点的带权路径长度为从该结点到树根之间的路径长度与结点上权的乘积。树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作W...
2019-06-10 18:54:33
5397
7
原创 IK中文分词器源码分析(2012FF_u1)
1.中文分词概要1.1什么是中文分词?中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。1.2分词方法的分类?现有的分词方法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。1.2.1基于字符串匹配的分词方法基于字符串匹配的分词方法又称机械...
2019-05-16 15:19:34
747
java开发相关文档和资料.zip
2019-12-25
阿里java编程规范.zip
2019-12-25
maven完整参考及案例.zip
2019-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人