技术杂谈
文章平均质量分 68
CoderLi_
微信搜一搜:CoderLi
展开
-
火焰图解释
on-cpu 花费在 CPU 上的时间off-cpu 花费在等待 I/O、锁等的时间on-cpu 火焰图采样原理对系统中运行的代码堆栈做多次的统计。每次统计的时候、找到这个时刻还在执行的堆栈锦雄计数、类似有一个监视器、每隔一段时间、就来看下系统中的堆栈、如果看到了就对堆栈计数加一。这样一直在 CPU 上运行的堆栈占比就会很大、通过这样的方式来计算、而不是计算这个方法执行了多久。Off-cpu 火焰图采样原理监听失去 CPU 和获取 CPU 的两个事件、通过这两个事件的差值计算出 off-cpu 的原创 2022-10-21 23:27:04 · 182 阅读 · 0 评论 -
Java getResource
最近在工作中有用到资源加载、发现 和 都可以加载 下的文件对比一下他们之间的异同通过日志分析我们得知 如果传入的参数以 开头的话则获取到的是当前 的绝对路径。如果不是的话、则是获取到当前 所在的路径 则默认获取到的就是 下的路径、如果传入的参数以 开头则返回 双亲委派机制、先给父类加载器中尝试加载、然后再到自己的。最终还是调用 这个关键在于对 的解释如果是以 开头、则直接去掉 然后返回如果不是则获取当前 的全路径、然后替换 然后返回...原创 2022-07-02 09:10:41 · 244 阅读 · 0 评论 -
关于 Git rebase 简谈
关于 rebase 、最常用的可能是使用 idea pull 代码的时候勾选的选项吧对于本地分支 pull 对应远程分支实际上是建议使用 rebase 的、因为这些变更只在本地、并不会产生任何坏的影响。这样子对于分支来说、会相对比较好看、并且对于公共开发、使用的是同一个分支、这样子就不会产生额外的分叉、当然要整个团队成员都是 rebase 、当 pull 远程分支到本地的时候。至于远程分支之间的合并、那就是另说了。至于压缩本地 commit 这个功能相对来说还是用得比较少。...原创 2022-06-30 22:47:40 · 313 阅读 · 0 评论 -
静态方法杂谈
何时使用静态方法一个 stackoverflow 上面的问题、一个高赞的回答也是比较认可的答案调用此方法是否有意义,即使尚未构造任何对象假设 Car 类中有如下方法public class Car { double convertMpgToKpl(double mpg){ ........ }}那么这个方法将是静态的、因为将 Mpg 转换为 Kpl 我们不需要创建 Carvoid setMileage(double mpg)但是该方法不能是静态的、因为该方法的功能是为原创 2022-05-16 12:00:00 · 91 阅读 · 0 评论 -
一次日志框架问题的解决
先介绍一个项目背景、框架使用的是公司在 Spring Boot 、Zookeeper等框架上自己封装的一个自研框架。第一次启动这个项目的时候、就报了如下的错误比较令人意外的是、只有我启动时出现了这个错误。而其他开发同事并没有出现这个问题。其实当时解决这个问题还是花费了不少的时间、第一个对这个项目不熟悉、第二个对公司自研的框架不熟悉、第三个当时没有准确地认识到问题的根本(其实是对日志框架的不熟悉)。其实第三个是最直接的原因。Java 中日志常用有LogbackLog4jLog4j2comm.原创 2021-12-04 09:55:37 · 538 阅读 · 0 评论 -
关于 Junit
单元测试所谓的单元测试是测试应用程序的功能是否能够按需要正常运行,单元测试是一个对单一实体(类或方法)的测试。JUnitJUnit是一个Java编程语言的单元测试框架,始源于一个统称为 xUnit的单元测试框架。JUnit 促进了 “先测试后编码” 的理念,强调建立测试数据的一段代码,可以先测试,然后再应用。测试一点、编码一点,测试一点,编码一点。单元测试用例一个正式编写好的单元测试用例的特点是,已知输入和预期输出。每一项需求至少需要两个单元测试用例,一个正检验,一个负检验。JUnit 基本原创 2021-12-04 09:54:22 · 191 阅读 · 0 评论 -
OGNL 表达式引擎
OGNL (Object Graph Navigation Language) 是一个开源的表达式引擎。通过使用OGNL,我们能够通过表达式存取Java对象树中的任意属性和调用Java对象树的方法等。也就是说,如果我们把表达式看成是一个带有语义的字符串,那么OGNL就是这个语义字符串与Java对象之间沟通的催化剂,通过OGNL,我们可以轻松解决在数据流转的过程中所碰到的各种问题。/** * 通过传入的OGNL表达式,在给定的上下文环境中,从root对象里取值 */ public static原创 2021-12-03 21:38:07 · 588 阅读 · 0 评论 -
Gerrit & GitLab & Hooks
第一次在公司见到 Gerrit、一面懵逼。什么xx玩意…Gerrit,一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件开发者,可以相互审阅彼此修改后的代码,决定是否能够提交,回退或是继续修改。它使用版本控制系统Git作为底层。它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。-----来自 wiki然后公司同时.原创 2020-12-18 22:00:00 · 933 阅读 · 2 评论 -
Git 系统学习笔记
公众号内发送Git获取Git官方PDF教程版本控制版本控制是一种记录一个或若干个文件内容变化、以便将来查阅特定版本修订情况的系统。本地版本控制系统很久以前就开发了许多本地版本控制系统、大多都是采用某种简单的数据库来记录文件的历次更新差异。其中最流行的一种叫做 RCS、现今许多计算机系统上都还看得到他的踪影。RCS 的工作原理是在硬盘上保存补丁集、通过应用所有的补丁、可以重新计算出各个版本的文件内容。集中化版本控制系统让不同系统上的开发者协同工作、集中化版本控制系统应运而生。有一个单一的集中管原创 2020-10-19 20:49:05 · 341 阅读 · 0 评论 -
我的工具箱
命令行工具 – cmder支持右键新建一个新的命令行窗口、这不香 ? 这么好看的界面、不香?各种提示、不香?Kafka Tool可以看到集群中的所有 broker , topic , consumer , 可以看到堆积情况、消息的 key、value 。支持多个平台(这个很重要)Jetbrains 全家桶之 – IntelliJ IDEAIntelliJ IDEA 2019.3.4 (Ultimate Edition)Build #IU-193.6911.18, built on Marc原创 2020-06-06 17:44:18 · 921 阅读 · 0 评论