Java周边
文章平均质量分 75
铁锚
系统架构师,Java性能调优专家。热爱程序开发和设计; 积极应对各种情境和挑战;
喜欢钻研新技术, 闲暇时喜欢翻译和分析英文文档/技术博客。
展开
-
通过SDKMAN安装各种版本JDK
通过SDKMAN安装各种版本JDK。原创 2024-03-04 16:09:12 · 1056 阅读 · 0 评论 -
业务指标采集影响系统性能问题排查
系统吞吐量不足问题排查与优化原创 2022-07-04 13:53:04 · 1173 阅读 · 0 评论 -
SpringBoot连接超时导致的502错误案例
1.问题描述内部系统之间通过Nginx来实现路由转发。但最近发现有一个系统,经常报502错误,每天达到上百次,完全无法忍受。2. 原因排查于是进行排查, 发现配置人员把连接超时时间(server.tomcat.connection-timeout)的单位,理解为秒,实际上是毫秒。SpringBoot的部分配置如下:# Tomcatserver: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threa原创 2020-09-02 10:15:16 · 9208 阅读 · 1 评论 -
Java进阶知识 - 多线程与线程间通信
CountdownLatch, CyclicBarrier 分别适合什么场景呢?大部分情况下, 子线程只需要关心自身执行的任务. 但在某些复杂的情况下, 需要使用多个线程来协同完成某个任务, 这就涉及到线程间通信(inter-thread communication)的问题了.主要涉及的内容有:thread.join() 方法object.wait() 方法object.notif...翻译 2019-03-12 19:21:31 · 3218 阅读 · 0 评论 -
配置catalina.out的日志格式
启动 Tomcat 时, catalina.out 中输出的日志格式可能不太理想。看看某些版本默认的格式:四月 24, 2018 6:49:32 下午 org.apache.catalina.startup.Catalina start信息: Server startup in 9772 ms有点别扭, 想要调整成下面的格式:24-Apr-2018 18:52:16.13...原创 2018-05-07 19:27:33 · 9962 阅读 · 0 评论 -
没有立场的专业人士最容易背锅
今天在tweet上看到一幅有趣的漫画: http://theoatmeal.com/comics/design_hell。说的是上级领导怎样坑死一个专业的设计师。 漫画很有趣, 而且在实际工作中也经常发生这种悲剧。到底是谁的锅 ?普通员工和专业人士的不同, 在于普通员工需要别人指挥着干活, 而专业人士能够为BOSS提供各种决策建议。招聘普通员工的关注点主要是执行能力, 要听指挥, 还能出活...翻译 2018-03-07 20:08:25 · 2471 阅读 · 2 评论 -
采用 jstatd 监控服务器
本文介绍如何配置支持远程监控的 jstatd 以及 jmx 监听。客户端可以使用 visualvm原创 2016-11-16 15:34:00 · 3760 阅读 · 0 评论 -
Word-docx文件图片信息格式分析
本文为笔记、仅作参考。 前文为: 用FreeMarker生成Word文档。现在新需求来了,导出的Word文档中、需要包含图片。大致的处理流程为:解析导出信息、将 <img ... src="xxx" ...> 抽取出来。 替换为 [img[xxxIdInt]];替换 HTML 标签;将 [img[xxxIdInt]] 格式的字符串、使用XML标签替换回去。原创 2017-08-22 16:20:38 · 6928 阅读 · 0 评论 -
IntelliJ IDEA 设置代码提示或自动补全的快捷键
本文介绍如何设置快捷键、 如何设置代码自动提示、自动补全的快捷键,以及如何使用全局替换、如何设置相关的快捷键。原创 2015-04-30 11:43:35 · 323986 阅读 · 26 评论 -
Server JRE 简介
Server JRE 适用于哪些情况呢? 从一个服务器端程序的角度看, JRE缺少了所需的监控工具,以及 javac 编译器. 而 JDK 呢, 功能又太多了, 特别是生产环境下并不需要的功能, 比如浏览器插件,自动更新, javadoc 工具等等。翻译 2017-07-31 14:20:49 · 7772 阅读 · 0 评论 -
Tomcat 启动速度优化
本文简单介绍如何让 Tomcat 更快启动, 同时提供一些建议。我们碰到过JVM被卡了200多秒的情况, 所以才翻译了这篇文章, 【MAVEN的某些插件也可能依赖 `SecureRandom`】。在新买的Linux服务器上部署了多个 Tomcat 实例时, 结果启动耗时超过了200秒,经检查就是默认使用阻塞式熵源的原因。原创 2017-04-27 20:36:19 · 8788 阅读 · 0 评论 -
class文件魔数CAFEBABE的由来
当时, 这个魔数并没有什么特别的意义, 也看不出来有什么重要的, 或许很快就会消失在历史中。所以 CAFEBABE 成为 class 文件的魔数, CAFEDEAD 成为持久对象的魔数. 但没多久持久化对象(persistent object)技术真的消失了, 就如同魔数 CAFEDEAD 所蕴含的一样 —— 后来用的是RMI技术。原创 2017-04-09 22:38:01 · 19420 阅读 · 0 评论 -
使用 JDWP 进行远程调试
对于调试Java程序来说,Java Debug Wire Protocol (JDWP, Java调试线协议)是不可多得的好东西。使用JDWP调试应用程序的步骤如下:1. 打开命令行,并将 jdk 安装路径下的 bin 目录添加到 PATH 环境变量。2. 通过以下命令来启动想要调试的程序(本例中假设为Test):在Windows上:java -Xdebug -Xrunjdwp:transport翻译 2016-10-08 14:49:56 · 17117 阅读 · 0 评论 -
使用异步servlet提升性能
本文针对当今 webapp 中一种常碰到的问题,介绍相应的性能优化解决方案。如今的WEB程序不再只是被动地等待浏览器的请求, 他们之间也会互相进行通信。 典型的场景包括 在线聊天, 实时拍卖等 —— 后台程序大部分时间与浏览器的连接处于空闲状态,翻译 2016-12-08 00:03:42 · 7292 阅读 · 2 评论 -
用FreeMarker生成Word文档
顾名思义, Word文档, document 有文档的意思, archive 也有文档的意思。`.doc`, `.docx`, `.xls`, `.xlsx` 等文件全部都是ZIP格式的,将文件重命名为 `xxx.zip` 之后,就可以看到压缩文件的结构了。本文简要介绍如何使用FreeMarker技术以及模板来生成Word文档原创 2016-11-22 10:52:47 · 8292 阅读 · 4 评论 -
我为什么讨厌slf4j
虽然在填坑方面 slf4j 有很多用处。 但我还是讨厌他。原因如下原创 2016-06-23 13:15:04 · 3094 阅读 · 1 评论 -
JDK将新增局部变量类型推断功能
OpenJDK 提出一个新的计划, 准备为 Java 增加局部变量类型推断功能(local-variable type inference capability), 这让代码编写更简单, 同时也保证原有的静态类型安全特性。该计划于3月8号提出,文档地址为: JEP-286(JDK Enhancement Proposal,JDK增强方案)。 目前没有指定具体在哪个JDK版本中实现。提案中说:翻译 2016-03-18 00:14:57 · 4264 阅读 · 2 评论 -
Oracle即将删除 Applet 插件
Oracle宣称将要终结浏览器中的Applet插件。该举动比预期要来得迟一些, 最近这些年,浏览器的Applet插件已成为黑客和恶意软件作者的最佳目标。思科在2014年的一份安全报告中指出,高达91%的攻击都是针对Java的翻译 2016-01-29 23:26:15 · 4793 阅读 · 1 评论