![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 57
反正CPU闲着也是闲着
这个作者很懒,什么都没留下…
展开
-
《RocketMQ 5.0: 存储计算分离新思路》笔记
rocketmq官微发布了一篇RocketMQ 5.0: 存储计算分离新思路的文章,讲述了5.0以及后续版本的改造方向,核心就是存储计算分离,使得存储模块和计算模块互不干扰,能各自进行扩缩容。更加云原生 😃文中对现有问题和新架构能解决哪些问题都做了解释,感觉受益匪浅,于是做下笔记,加深理解。...原创 2022-06-13 00:00:32 · 228 阅读 · 0 评论 -
Java中String字符串的长度与生成的txt文件大小之间的关系
起因一个文件存储系统中有一个“快速文本”的功能,流程为用户在前端的textarea中添加文本内容,后台接收改字符串后生成一个临时的txt文件,使用完毕后会删掉该临时文件,为了防止用户上传超大字符串等恶意攻击,应该对字符串长度进行判断,如果太长就不会生成txt文件,并返回错误信息。这里就涉及到了Java中String字符串的长度与生成的txt文件大小之间的关系。分析这里用自己写的生...原创 2018-06-14 12:31:41 · 4848 阅读 · 0 评论 -
ThreadLocal源码学习笔记
参考文章:并发容器之ThreadLocal概述线程安全问题的核心在于多个线程会对同一个临界区共享资源进行操作,如果每个线程都使用自己的“共享资源”,各自使用各自的,又互相不影响到彼此即让多个线程间达到隔离的状态,这样就不会出现线程安全的问题。这就是一种“空间换时间”的方案,每个线程都会都拥有自己的“共享资源”无疑内存会大很多,但是由于不需要同步也就减少了线程可能存在的阻塞等待的...原创 2018-09-10 17:20:33 · 138 阅读 · 0 评论 -
基于netty+Spring+Zookeeper的分布式RPC框架
文章目录开发笔记参考文章启动示意图对示意图中出现的单词意义解释providerconsumerZookeeperzk节点结构step1~6是启动顺序实现细节对于“当server的状态没有还没有同步到consumer的服务器列表里”这种情况该如何获取连接思考第一阶段思考第二阶段思考第三阶段PS:增加一个补救措施存在的问题以下是知识笔记Netty关于addListener方法关于sync方法关于awa...原创 2019-03-03 20:02:19 · 843 阅读 · 1 评论 -
redis+结巴分词做倒排索引
起源之前爬取过一百万的歌曲,包括歌手名,歌词等,最近了解到倒排索引,像es,solr这种太大,配置要求太高,对于一百万的数据量有些小题大做,所以想到了redis做一个倒排索引。我的配置这里说一下我的配置,后面用的到:cpu:i7 8750HQ (六核十二线程)内存:8G ddr4硬盘:ssd(.m2接口)思路简单来说就是把MySQL中的数据取出来,分词(包括去除停用词),将分词后...原创 2019-03-14 21:15:23 · 3048 阅读 · 0 评论 -
FastDFS大量请求时报ClientAbortException问题解决记录
FastDFS大量请求时异常解决记录起因最近做毕业设计,图片文件的保存用到了FastDFS,普通地用发现并没有什么问题,但是当大量的图片请求涌向FastDFS时,会报ClientAbortException,具体如下:org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建...原创 2019-05-13 13:07:23 · 1018 阅读 · 0 评论 -
Java线程内存模型,volatile实现原理相关学习笔记
minor gc:轻GC,对应用影响很小full gc:针对老年区的清理,jvm优化主要针对full gcJVM调优:主要是减少full gc的次数,与一次full gc需要的时间通过gc日志。多核并发缓存架构JAVA线程内存模型Java线程内存模型与cpu的缓存类似,也是先将主内存中的变量拷贝一份副本到自己的工作内存区域中,线程主要是跟自己的工作内存打交道的。因为拷贝一份副...原创 2019-09-02 22:19:02 · 224 阅读 · 0 评论 -
读《重构》的读书笔记
第一章重构的目的让你以更少的工作量的对程序添加新特性。重构的技巧构建可靠的、可以自我检验的测试环境,因为对比测试结果会浪费大量时间注意返回值范围与是否需要浮点数的问题,比如返回int还是double,返回int还是long分解长代码代码块越小,它的处理和移动越轻松好的代码应该清楚地表达自己的功能,而变量是实现这一点的关键如果某段代码只用到了一个类中的数据,那应该...原创 2019-09-08 17:59:01 · 179 阅读 · 0 评论 -
并发对ArrayList读写
并发对ArrayList读写代码示例class Demo{ private List<String> testStrList; void methodA() { //... //在使用的时候copy一份 ArrayList<String> realStrList = new ArrayList<>(testStrList);...原创 2019-09-23 15:14:31 · 1139 阅读 · 0 评论 -
Java线程中start()和run()的区别
run():不管是通过实现Runnable接口还是继承Thread类(其实Thread中的run方法也是调用了Runnable接口的run方法),调用run()方法仅仅是相当于调用了一个方法,没有启用新的线程。start():会启动一个新线程,运行重写的run()代码。例子:public class MyThread { public static void main(String[] ...原创 2018-03-24 11:05:30 · 1541 阅读 · 1 评论 -
Spring 多线程bean的问题(Spring+Javaweb中任务调度)
在写一个文件暂存系统的时候,有这样的一个需求:一个定时任务,每隔t分钟,做一些扫描操作。实现思路是继承ContextLoaderListener,实现自己的Listener,在这个Listener中,开启定时任务。一开始直接使用@Componet注解+@Autowired注解,结果导致注入失败。由于一开始没意识到是线程的原因,所以在上网搜的原因及解决方案都是无效的,但也有一些有用的知识:1.一般@...原创 2018-03-04 15:42:30 · 257 阅读 · 0 评论 -
关于“耦合”在Java中具体指什么的问题
以前一直不知道“耦合”在Java中具体指的是什么,最近在看《图解设计模式》中Factory Method的时候发现了一段关于“耦合”的解释,觉得很有道理,故摘抄下来便于分享和自己日后查阅。原文: 请回忆一下,在framework包中我们并没有引入idcard包(注:frameword包是abstract类组成的框架包,idcard包是concrete类的包)。在Product类和Factory类(原创 2018-01-19 17:23:00 · 2092 阅读 · 0 评论 -
《Java编程思想》——并发读书笔记
《Java编程思想》——并发读书笔记 自食其力,多疑而自信。 速度的提高是以多核处理器的形式而不是更快的芯片的形式出现的。为了使程序运行的更快,你必须学习如何利用这些额外的处理器,而这正是并发赋予你的能力。强有力的多处理器web服务器的常见情况就是在这些处理器之间之间分布多个任务,从而可以极大地提高吞吐量。在为每个请求分配一个线程的程序中,它可以将大量的用户请求分布到多个CPU上。但原创 2017-09-29 17:21:16 · 791 阅读 · 0 评论 -
关于final的一点思考
Java中final关键字,作用就是描述其为不变的,这个“其”可以是类、方法或变量或其他的(还有吗?)。被修饰的就是不能变的! 下面阐述几个例子:final class Test1 {public String string; Test1(String string) { this.string = string; }} public Tes原创 2017-10-29 21:23:07 · 199 阅读 · 0 评论 -
对java super 学习理解
转载自http://blog.csdn.net/hedyy/article/details/43373851java super 深入理解 如果子类中定义的成员变量和父类中的成员变量同名时,则父类中的成员变量不能被继承,此时称子类的成员变量隐藏了父类的成员变量(如下图)。当子类中定义了一个方法,并且这个方法的名字,返回类型,用参数个数和类型和父类的某个方法完全相同时,父类的这个转载 2017-10-30 21:48:26 · 289 阅读 · 0 评论 -
171012_学习Jeebase笔记
Jeebase是GitHub上一个比较棒的工程,里面许多东西值得我去学习,这只是其中我很想借鉴的几个点。 - 可以借鉴的工程结构: BaseDao.javapublic interface BaseDao<T> { /*** * 获取单条数据 * @param id * @return 实体对象 */ T get(String原创 2017-10-13 16:03:22 · 1027 阅读 · 0 评论 -
ArrayList源码阅读笔记
初始化/** * Default initial capacity.一个默认的初始化容量 10 */ private static final int DEFAULT_CAPACITY = 10; /** * The size of the ArrayList (the number of e原创 2017-11-09 16:59:36 · 176 阅读 · 0 评论 -
LinkedList源码阅读笔记
LinkedList源码阅读笔记初始化无参的public LinkedList() { }初始化的同时添加一个Collectionpublic LinkedList(Collection<? extends E> c) { this(); addAll(c); }addAll(c)方法待会在add的时候会讲。成员变量们transient int原创 2017-11-10 11:09:10 · 195 阅读 · 0 评论 -
Java VisualVM(Java性能分析工具)插件安装及JDK版本对应插件中心地址
参考文章: VisualVM(3) 插件安装与更新路径配置Java VisualVM插件地址安装jvisualvm的时候,发现插件可用为0,错误提示“连接插件中心超时”。上网查看资料得知,是插件中心的地址不对,需要 点击“工具”-“插件”-“设置”-“选定xxx插件中心”-“编辑”-“修改对应地址”。注意:这里的不同JDK版本(包括子版本)对应的插件中心是不同的。原创 2017-11-22 14:28:55 · 1274 阅读 · 0 评论 -
JAVA中JVM的重排序详细介绍(写得很明白)
刚刚在研究volatile变量的时候,涉及到重排序的概念,于是发现了这篇很好的文章,写得很简短很明白。所以转载一下。原文地址:JAVA中JVM的重排序详细介绍原文贴出来:重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。在并发程序中,程序员会特别关注不同进程或线转载 2018-01-05 15:22:48 · 3039 阅读 · 0 评论 -
Java实现分段视频合并
转载自 http://blog.csdn.net/chenyun19890626/article/details/54631817原理很简单就是把多个视频文件的内容按顺序写到一个视频文件中代码如下:public static void union(String dirPath, String toFilePath) { File dir = new File(dir转载 2017-09-15 16:32:39 · 2658 阅读 · 0 评论