Java
文章平均质量分 92
hugeo-coala
做人呢,最重要的就是开心啦
展开
-
[译]深入理解JVM Understanding JVM Internals
英文原版地址:http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/翻不了墙的可以看这个英文版:https://www.it610.com/article/1391298.htm我找了个翻译版看,但是图片刷不出来:https://segmentfault.com/a/1190000004206269国内英文版那...翻译 2019-12-21 12:02:41 · 323 阅读 · 1 评论 -
IO 同步,异步,阻塞,非阻塞
参考文章:https://blog.csdn.net/historyasamirror/article/details/5778378唉最近真是高产似母猪,刚进新公司工作量暂时不饱和,只能每天学学学学学学查漏补缺啦,学习使我快乐哈哈哈哈哈哈哈哈标题里的词汇相信都经常看到,但是能说清楚的估计20个人里面能有1个就不错了,网上的资料也是五花八门,大部分描述差不多,很多时候估计作者本身也...原创 2018-08-17 16:34:56 · 278 阅读 · 0 评论 -
Spring Bean的生命周期
参考了:https://www.zhihu.com/question/38597960BeanFactory:延迟加载Bean ApplicationContext:实现了BeanFactory接口,并在初始化的时候就加载Bean1. NEW (只是简单实例化,没有注入依赖)BeanFactory:当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一...原创 2018-08-17 11:10:06 · 434 阅读 · 0 评论 -
依赖注入-控制反转(IOC)的好处是什么?
之前只是知道Spring的精髓是依赖注入,控制反转,也只是知道这些名词而已,没有理解到精髓,今天看了知乎的一篇文章茅塞顿开,建议跟我一样迷茫的都看下: https://www.zhihu.com/question/23277575这篇是读后感,对自己的理解再做个总结吧正依赖依赖反转,从字面理解就是把依赖倒过来了呗,那原来依赖正着的时候是啥样的呢?正着的时候是上层建筑依赖下...原创 2018-08-17 10:27:00 · 12440 阅读 · 0 评论 -
大话设计模式 笔记2
笔记1备忘录模式这是一个有着明确使用场景的模式,要保存,恢复一个类的状态时使用,例如游戏存档,编辑器undo,redo等等。 涉及到三个类: Originator 原发器:主类,需要保存并恢复其状态的类 Memento 备忘录:用于记录发起者某一时刻的状态 Caretaker 管理者:用于保存备忘录发起者里面会有保存方法,返回一个Memento,还有一个恢复方法,根据参数Mem...原创 2018-08-12 21:42:43 · 217 阅读 · 0 评论 -
Docker部署Tomcat 时区不对 java获得的时间早了8小时
首先上服务器执行date 发现是CST没问题突然想起来用的是docker 进docker执行date 嗯果然是UTC删除容器重新启动镜像并加上参数 -v /etc/localtime:/etc/localtime,再进去时区已经和本机一致是CST了可是java获取的时区却还是UTC的继续找资料。。。。jre是通过配置文件读取本地时间的:/etc/timezone 所以把...原创 2018-08-06 15:41:56 · 7230 阅读 · 3 评论 -
大话设计模式 笔记1
面向对象:封装 继承 多态UML类图第一行:类名(斜体表示抽象类,<< interface >>表示接口) 第二行:字段或属性 第三行:方法 +表示public -表示private #表示protected原创 2018-08-09 21:45:19 · 470 阅读 · 0 评论 -
《深入理解JAVA虚拟机》第二版 阅读笔记4 垃圾收集与内存分配(2)
上一篇说到的垃圾收集算法是方法论,具体垃圾收集时如何利用这些算法就要看各个JVM的具体实现了,我们肯定主要讨论HotSpot JVM的实现,首先HotSpot JVM使用了分代收集的思想,并实现了多种收集器,有的收集器适用于新生代,有的适用于老年代,但是它们并不能随便组合使用,如下表,第一行是新生代收集器,第一列是老年代收集器 . Serial ParNew Paralle...原创 2018-08-05 12:05:36 · 199 阅读 · 0 评论 -
springboot2.0.3 redis一会不操作会自动断开连接 队列channel监听器失效
在springboot项目里使用redis做队列的,教程网上很多不赘述了,使用过程中会遇到短时间不操作(五分钟左右),redis连接就断开了,再使用redis时会报连接超时,此次操作会失败,然后几秒内会重连,重新连上之后又可以正常往redis写东西了,但是注册的监听器失效了,也就是说往队列写的消息无法消费了 监听器的配置:@Configurationpublic class Subscri...原创 2018-08-09 13:51:56 · 9531 阅读 · 10 评论 -
正则表达式回溯导致CPU飙高,贪婪、勉强、独占模式
11111原创 2018-08-20 16:32:03 · 2278 阅读 · 0 评论 -
Win10 家庭版 专业版 安装Docker docker-maven-plugin生成镜像到本地Docker仓库
你是Win10家庭版吗?昨天我也是。。。。今天已经是专业版了,找万能TB,十多块钱儿+10分钟时间,家庭版完美升级专业版,直接安装Docker for Windows1.打开Hyper-Vwin+x 选择最上面的“程序和功能” 右侧滚动条到最下面 点击确定,重启2. 下载安装包:https://store.docker.com/editions/community...原创 2018-08-21 12:35:18 · 1588 阅读 · 0 评论 -
SpringBoot 远程发布 远程调试
提前说下,WebFlux玩不起来,或者说没找到方法远程发布加上依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>tru...原创 2019-02-11 15:04:33 · 4363 阅读 · 2 评论 -
idea多线程调试 以及 java线程无法中断!原因竟然是.....
微信谣言体标题23333333新手垃圾问题预警!大神请绕道!不要鄙视我!说来惭愧这个问题找了挺久,作为一个并发编程渣渣,甚至都不知道怎么用idea进行多线程调试,这次虽然找问题找了半天,但也算有点收获场景是我要开一个线程去定期用各种参数请求一个接口,来缓存这个接口的结果,用于兜底服务,并且服务本身提供了一个接口用于停止线程并重新创建一个线程从头来。我的做法是搞了一个单线程池,下面分别是停止...原创 2018-11-24 17:17:06 · 5198 阅读 · 0 评论 -
携程阿波罗配置中心apollo源码阅读杂记
biubiubiu随便说说基本介绍ScheduledExecutorService简易版配置中心队列+批处理随便说说好久没写博客了,惭愧惭愧,最近公司在用携程的apollo配置中心,还是挺好用的,但是一开始以为只能在portal修改配置,所以产生的自研配置中心的念头,我觉得apollo还是挺完善稳定的并且开源了,java开发,使用SpringCloud框架,完全可以基于它做二次开发,就开始看源...原创 2018-11-24 16:23:11 · 2494 阅读 · 1 评论 -
SpringBoot自定义prometheus监控
放干货之前容许我说一些废话(其实觉得也是干货)从数据层面,可以把prometheus理解成一个简单的数据库,每个metrices可以配置不同的标签,对应着一系列数值,但是如果给这些数值赋予各种业务的,资源的,服务性能的意义,并结合AlertManager,prometheus简直是个神器啊网上文章很多,入门比较容易,但是我本人学习的时候有个地方理解了比较久,在promethues的graph页...原创 2018-10-16 17:25:09 · 14494 阅读 · 1 评论 -
AKKA官方文档阅读笔记(3)JAVA版2.5.16
以下内容来自官方文档:https://doc.akka.io/docs/akka/2.5/guide/tutorial_5.html可能遇到的场景到目前为止,例子中Actor之间的对话模式都是比较简单的,这个文档里会有个稍微复杂点儿的例子接着上个文档的例子,现在有DeviceManager,DeviceGroup,Device三种Actor,我们的目标是查询一个group中所有devic...原创 2018-09-25 14:56:07 · 248 阅读 · 0 评论 -
@validated 验证 List 参数
写了个接口:@GetMapping(&amp;quot;/do&amp;quot;)public int doSth(@RequestBody @Validated(MyGroup.class) List&amp;amp;lt;Bean&amp;amp;gt; myBean)发现@validate完全没用,再stackOverflow上找到了解决方案:https://stackoverflow.com/questions/281504原创 2018-09-19 18:03:06 · 34882 阅读 · 12 评论 -
大话设计模式 最终章 访问者模式
有时我们会遇到这样的需求,随便举个例子哦 公司的网站有两种语言,英文和中文 现在有个队列存放着对网站的处理操作,比如: - 导航增加一个Item - 增加一篇文章 - 推荐位增加一个商品 - …每个操作都会告诉你是针对英文站还是中文站的,因为即使是相同的操作,针对不同站的做法都是不一样的 如果要设计消息消费者,要怎么设计呢?如果不懂模式,我应该会这么做:网站接口:包含...原创 2018-09-13 16:04:50 · 192 阅读 · 0 评论 -
大话设计模式 笔记3 解释器模式
emmm一个比较复杂的模式,一般用来做表达式的解析,估计做DSL的时候都会用到?假如现在有个算数表达式要解析出结果:a - ( ( 4 - 5 + 6 ) - b ) 里面有常量也有变量Context 存放变量的值,a=3,b=10Expression接口 表达式的基本元素,例如:a,4,5,-,+,具体还要其他的类继承此接口实现 包含 interpret(Context co...原创 2018-09-05 17:46:57 · 166 阅读 · 0 评论 -
《深入理解JAVA虚拟机》第二版 阅读笔记3 垃圾收集与内存分配(1)
垃圾收集的第一步是识别哪些对象已死,两种方法:判断对象已死1:引用计数法当一个对象被引用时,使它的引用计数器加1,当引用失效,计数器减1,当对象的引用为0,说明对象已死。这个方法理解起来非常简单,但是JAVA虚拟机没有采用这种方式,因为它有一个大BUG:A a = new A();// A实例引用+1B b = new B();// B实例引用+1a.field = b;// B实...原创 2018-08-04 15:43:38 · 160 阅读 · 0 评论 -
JAVA面试准备小记
面试之前做的一些准备工作,每次面试前都要准备一些这类知识,当做一次学习的机会,更重要的是平时工作中也要注意积累,从我个人来说,以前没有重视这一块,觉得平时开发用不上,其实只是我们开发的时候没有去注意细节,没有精益求精,产品或者项目要求不够高罢了基本类型byte short int float double long boolean charCollection和Map的继承结构...原创 2018-08-04 08:01:41 · 191 阅读 · 0 评论 -
《深入理解JAVA虚拟机》第二版 阅读笔记2
第一步:分配内存现在知道new出来的对象是在java堆里的了,那是具体是怎么在java堆里找到一块合适的空地儿的呢指针碰撞 假如堆里的空间是规整的,用过的内存放一边,没用过的放在另一边,两者中间有个明确的分界点,那就只需要把分界点往空的那一边挪一定距离就可以了。空闲列表 与上面那种方式相对应的,就是堆里的内存是零散的,空闲的内存和用过的内存穿插着,那只能由虚拟机维护一个列表,记录从哪儿...原创 2018-07-29 21:37:22 · 622 阅读 · 0 评论 -
ajax 跨域请求
两种解决方式:1.如果个别请求允许跨域就在后端controller方法或者servlet方法中增加response.setHeader("Access-Control-Allow-Origin", "*");,如果所有请求都允许跨域就在filter类里增加就行,不用所有处理类都加,比较方便。 此方法亲测有效。2.此方法只是能理解,没有真正尝试过js文件里增加一个方法,比如 fu原创 2017-04-21 16:11:19 · 230 阅读 · 0 评论 -
eclipse创建Hibernate Demo中需要注意的地方
我用的是反向工程 大致步骤是1. 在 Data Source Emplorer中新建数据库的Database Connction2. 在Hibernate Configration中Add Configration,选择第一步创建的DB Connection3. Window → Customize Perspective → Commond Groups Availablity原创 2017-03-15 08:30:46 · 614 阅读 · 0 评论 -
使用wkhtmltopdf将html转为pdf
2018年4月26日追加:有个朋友反馈了vue页面转pdf过程中卡住的问题,像这样:最后她自己解决问题,是因为开发者模式,文件太大了她执行的是 npm run dev (开发者模式)应该是 npm run build 然后 npm run start===========================================================================...原创 2017-01-19 16:30:48 · 23158 阅读 · 18 评论 -
合并DOCX文档
找了好久好久的方法,结果无意间发现了,感激上苍啊只能合并DOCX噢,不能合并DOC,强制修改文件名后缀也是不可以的哟,所以又花了好久找上一篇文章的方法。废话不多说,上代码,很简洁,用DOC4J。用到的jar包有docx4j-3.3.1.jar和commons-io-2.2.jarpublic static void main(String[] args) { try {转载 2016-12-15 10:56:28 · 3411 阅读 · 1 评论 -
JAVA通过模板生成DOC文档
将word文档另存为xml文件接下来,上面写的拼音就起到作用了.打开xml文件.搜索 要替换的内容.改为 ${内容}改完后,把文件的后缀名直接改成ftl。代码:package com.hentor.apps.bestsign.util;import java.io.BufferedWriter;import java.io.File;impo转载 2016-12-02 16:54:52 · 2310 阅读 · 0 评论 -
RabbitMQ基础概念详细介绍
引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ转载 2016-11-09 16:43:41 · 174 阅读 · 0 评论 -
读[Collection接口和Map接口的主要实现类]小结
Collection 接口List 接口LinkedList [异步]链表存储,引数据慢插入数据快 实现同步:List list = Collections.synchronizedList(new LinkedList(...));ArrayList [异步]类似数组存储,连续存储,引数据快插入数据慢 在插入前可以调用ensureCapacity方法来增加ArrayL原创 2016-09-24 14:27:27 · 1067 阅读 · 0 评论 -
Collection接口和Map接口的主要实现类
Collection接口和Map接口的主要实现类Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collec转载 2016-09-24 13:58:59 · 527 阅读 · 0 评论 -
ELK搭建记录(第二弹)
上一篇日志是跟着别人写的文章一步一步走的,并没有自己深刻的理解今天又研究了一天又有一些新的收获,赶紧记下来。只列出做了修改的部分。1.不再需要filebeat了,logstash直接就可以读取日志文件2.logstash配置文件修改这里推荐一个很棒的网站,学logstash一定要看:LogStash最佳实践解释一下吧:logstash配置文件不可或缺的三个部分:in原创 2017-06-23 18:47:40 · 284 阅读 · 0 评论 -
ELK环境搭建记录
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的原创 2017-06-22 16:14:49 · 297 阅读 · 0 评论 -
理解java调试的工作目录 working directory
原文链接 使用idea或者eclipse进行调试的时候会有Working directory配置: 我们创建工程,IDE会自动创建一个工程目录,假设工程名称为:TestProject,那么在会创建一个目录名为 TestProject,同时我们选择src作为源码文件夹,bin作为输出路径,这样就构成了一个基本的java application工程: +TestProject ...转载 2018-03-22 13:01:57 · 12314 阅读 · 3 评论 -
IDEA jdk版本配置
以下几个位置的jdk版本要保持一致:原创 2017-07-27 15:25:26 · 911 阅读 · 0 评论 -
@JoinColumn 详解
原文链接:@JoinColumn详解 原文标的也是转载,但是没有注明原文链接,看起来乱乱的,所以整理一下转载过来,顺便细看一下1. 一对一现假设有Person表和Address表,是一对一的关系,在Person中有一个指向Address表主键的字段addressID,所以主控方一定是Person,所谓主控方就是能改变关联关系的一方,Person只要改变addressID就改变了关联关系,转载 2017-08-04 13:00:26 · 75995 阅读 · 8 评论 -
java通过itext生成PDF,设置单元格cell的最大高度 以及 itext7初尝
网上百度java生成pdf都是很老的代码,使用的是itext5,找遍了大江南北都找不到设置表格或单元格最大高度,或者绝对定位表格的实现,最后对table和cell的方法一个一个找,找到了满足要求的方法:cell.setMaxLines(int numberOfLines)由于字体确定,每行字体的高度已确定,设定最大行数也就设定了最大高度,且避免了设置的高度不是每行高度的整数倍的麻烦,i原创 2017-07-19 16:58:42 · 24146 阅读 · 0 评论 -
Jmeter初次使用记录-入门
前段时间项目要做接口的压测,使用Jmeter完成了任务,两天时间配好,说实话入门还是有些难度,下面对Jmeter中这个测试案例每一个配置做下说明。这个是测试计划的总体结构:建议把很多接口都会用到的常量值设置为全局变量,比如API的地址,我一开始配的时候不知道这个,每个接口的地址都是写死的,后来领导突然说要换地址,呵呵。。。右下方的Libraries忘记标红了,也很重要,这边允许你自己写原创 2017-06-13 16:21:30 · 3589 阅读 · 0 评论 -
使用Docx4j向docx文档中指定书签位置插入图片
import org.apache.commons.io.IOUtils;import org.docx4j.TraversalUtil;import org.docx4j.dml.wordprocessingDrawing.Inline;import org.docx4j.finders.RangeFinder;import org.docx4j.openpackaging.packag原创 2017-06-12 15:55:37 · 3726 阅读 · 1 评论 -
JAVA通过模板生成DOCX文档(2)
第一篇链接看第一篇文章会对原理更理解一些,但是比较繁琐,所以写了这一篇,怎么获取和修改xml在上一篇都有,不赘述了import freemarker.template.Configuration;import freemarker.template.Template;import java.io.*;import java.util.Enumeration;import java原创 2017-06-12 14:47:32 · 4384 阅读 · 2 评论 -
JAVA通过模板生成DOCX文档
大致流程:1.创建模板docx并取出document.xml新建一个docx文档,放在D盘命名test_template.docx2.用winrar打开test_template.docx,取出word/document.xml把xml文件格式化一下看起来更清晰,并且把要替换的内容用freemarker的指令代替,最后将文件重命名为test.xml放在D盘下面转载 2016-12-15 10:30:30 · 12207 阅读 · 15 评论