![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 79
小明同学的开发日常
努力成为优秀的工程师!!!!
展开
-
02. flume-ng 核心源码解析【小明同学】
文章目录flume-ng 核心代码解析org.apache.flume.node.Application#main 解析PollingPropertiesFileConfigurationProvider 构造函数Application 构造函数eventBus.register(application)然后我们继续看下 application.start() 方法,不用想,我们的核心入口就在这个 start 方法里了。接下来我们就看下 org.apache.flume.lifecycle.Lifecycl原创 2021-04-06 15:34:17 · 613 阅读 · 0 评论 -
01. apache flume 启动入口【小明同学】
Flume NG代码地址,我们把代码clone下来以后就会发现,工程里集成了很多的模块,那该如何下手?阅读官网的手册官方手册 这里不再翻译,我们来看重点start手册步骤中第五步:Configure and Run Flume NGAfter you’ve configured Flume NG (see below), you can run it with the bin/flume-ng executable. This script has a number of arg原创 2021-04-06 15:32:56 · 384 阅读 · 0 评论 -
spring-framework源码构建【spring源码阅读01】
spring-framework源码构建源码搭建原因源码搭建步骤clone 代码(5.2.0.BUILD-SNAPSHOT)配置环境新建 module开展源码扣读源码搭建原因为了更好的阅读 spring-framework 源码,我们需要把 spring-framework 的源码工程 clone 下来,这样我们就可以 修改源码,添加注释,查看源码 以及 debug 。源码搭建步骤cl...原创 2020-03-31 19:34:46 · 165 阅读 · 0 评论 -
java aqs源码分析
AQS是什么?AQS其实是juc包里设计并发实现工具类的抽象类:AbstractQueuedSynchronizer那些类继承了AQS?juc包里有很多类继承了AQS,比如我们经常使用的重入锁:ReentrantLock.NonfairSync 和 ReentrantLock.FairSync,也就是我们经常说的非公平锁和公平锁;CountDownLatch.Sync ; Reentr...原创 2020-03-17 00:35:33 · 194 阅读 · 0 评论 -
java enum关键字
Written with StackEdit.为什么思考enum关键字在思考enum之前,同事问了我关于enum的两个问题:enum 类可以继承吗?vo里使用了enum,怎么改造呢?回答这两个问题enum 类是不能继承的,我记得enum 类是final语义的vo里最好不要存在enum,或者说接口层面不要有enum的直接序列化和反序列化,这个会涉及到扩展问题,如果是vo的话,...原创 2019-12-06 19:36:25 · 1020 阅读 · 0 评论 -
关于长链转短链的方案和思考
Written with StackEdit.背景前些天,和同学交流,他说要做一个生成短链的系统,然后我们就针对这个进行了研究和讨论讨论方案我们首先讨论了下该系统的功能模块,既然是要把长链转成短链,必然需要一个生成短链的接口;既然生成了短链,那我们必然需要有短链转长链的功能。所有确定了系统提供的功能:a. 由长链生成短链b. 由短链还原长链确定了功能,就开始设计方案,...原创 2019-07-17 20:44:16 · 2506 阅读 · 1 评论 -
基于消息体系的redis数据更新解决方案
Written with StackEdit.背景我们系统需要第三方接口提供的数据,而这份数据并不希望放到各个服务器的内存,希望放到redis里面基于消息体系的设计让第三方提供消息,在需要更新数据的时候,通知到我们服务集群使用消息的轮询机制,当一台消息消费成功,其他机器将不再给发送接收消息的服务器需要同步接口数据,同步redis数据,在ack,通知到消息平台消费成功如果服务...原创 2019-07-17 10:12:43 · 214 阅读 · 0 评论 -
java8 stream close问题
Written with StackEdit.问题场景一天晚上我在查个问题,日常debug代码,某段代码使用了java8 的stream filter,我就手动运行了下这个结果,然后让代码正常运行这句的时候,抛出了异常,异常栈如下:Exception in thread "main" java.lang.IllegalStateException: stream has alread...原创 2019-07-09 14:45:38 · 4554 阅读 · 0 评论 -
Guava Range引起的一次故障
Written with StackEdit.一次线上故障的爆发正当我去人大吃饭的时候,突然收到了atp报警电话,马上进群去看什么情况,然后有人爆出说是dubbo反序列化对象失败问题排查群里反馈说是因为没有构造函数反序列化的代码如下:/** * @author yanming */@Getter@Setterpublic class Promotion imp...原创 2019-05-10 22:32:08 · 489 阅读 · 0 评论 -
spring+mvc+mybatis+logback配置(缺少mybatis和logback配置,持续更新ing)
简介spring作为轻量级java框架备受各个开发者喜爱,但经典的spring框架有很多约定,今天我们先从spring的配置开始着手Web.xml配置文件web.xml 文件是java web的入口,在web容器启动的时候(tomcat等),会读取web.xml文件来加载配置 context、listener、filter、servlet,我们在web.xm里面配置的也是这些内容。...原创 2019-04-23 10:30:20 · 473 阅读 · 0 评论 -
我的代码风格(持续更新ing)
我的代码风格(持续更新ing)通用的 utils 方法代替直接使用对象的方法,比如:String str = "hello world";String match = "hello";// 不建议的方式null == str;// 建议使用这样的方式Objects.isNull(str);个人的理解:直接使用对象进行判断没有utils方法更贴切想表达的意思,虽然 Obje...原创 2019-04-17 22:04:35 · 236 阅读 · 0 评论 -
java lombok遇到的问题
lombok 遇到的问题@Data 注解的理解@Data 注解其实是多个注解的集合,他完成了多个注解的功能,分别是:@Getter@Setter@RequiredArgsConstructor@ToString@EqualsAndHashCode有时候我们为了方便getter和setter方法的简单化,直接使用了@Data注解代替,很可能会产生意想不到的问题,特别是@Equal...原创 2019-04-11 11:53:16 · 1642 阅读 · 0 评论 -
二叉树镜像
题目二叉树镜像方案描述其实就是从头到尾遍历左右孩子进行替换位置代码实现TreeNode类:/** * * @author xxx * @date 2018/6/21 */public class TreeNode { private int data; private TreeNode leftTreeNode; privat...原创 2018-07-04 21:41:33 · 151 阅读 · 1 评论 -
两个有交叉的单链表,求交叉点
题目两个有交叉的单链表,求交叉点方案描述求出两个链表的长度先遍历长链表到和短链表长度相同的位置同时遍历两个链表,知道有相同的节点位置代码实现MyLIst类:/** * 定义链表类 * @author xxx * @date 2018/7/4 */public class MyList { private int length = 0;...原创 2018-07-04 21:34:37 · 2221 阅读 · 1 评论 -
有一个随机数 n 的方法,根据这个方法生成一个随机数 n+1 的算法
题目有一个随机数 n 的方法,根据这个方法生成一个随机数 n+1 的算法生成随机数 【0-n】方法: private static final int n = 5; /** * 生成随机数 【0-n】方法 * @param n * @return */ public static int randomInN(int n){...原创 2018-07-04 19:53:59 · 890 阅读 · 2 评论 -
linux搭建c++动态链接库
linux搭建动态链接库本文章为解决java调用c++或c代码问题背景在有些情况下,我们需要使用java调用c或者c++的代码,比如和外部公司合作的时候加解密算法等。如何在linux上搭建动态链接库其实说是搭建动态链接库,更浅显易懂的描述是搭建动态链接,生成动态链接文件。文件准备java调用c++程序的接口定义public class Hello { ...原创 2018-06-08 15:17:06 · 646 阅读 · 0 评论 -
Spring 四种注入方式
Spring 的四种注入方式转载 2016-08-09 23:10:13 · 470 阅读 · 0 评论 -
内部类作用
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2016-08-07 17:26:29 · 211 阅读 · 5 评论