摘要:一、HTTP 请求流程 最初,HTTP 协议的出现主要是为了解决文本传输的难题,由于协议本身非常简单,于是在此基础上设想了很多应用方法并投入了实际使用。现在 HTTP 协议已经超出了 Web 这个框架的局限,被运用到了各种场景里。 目前主流的 HTTP 版本还是 HTTP/1.1。 HTTP 协议基 阅读全文
posted @ 2020-05-20 11:13 JMCui 阅读(50) 评论(0) 推荐(0) 编辑
摘要:一、jacoco 简介 jacoco 是一个开源的覆盖率工具,它针对的开发语言是 java。其使用方法很灵活,可以嵌入到 ant、maven 中;可以作为 Eclipse 插件;可以作为 javaAgent 探针监控 java 程序等等。 很多第三方的工具提供了对 jacoco 的集成,如 sona 阅读全文
posted @ 2020-05-07 15:09 JMCui 阅读(205) 评论(0) 推荐(0) 编辑
摘要:一、前言 相信做过开发的同学,都多多少少写过下面的代码,很长一段时间我一直以为这就是单元测试... 但这是单元测试嘛?unitService 中可能还依赖了 Dao 的操作;如果是微服务,可能还要起注册中心。那么这个“单元”也太大了吧!如果把它称为集成测试,可能更恰当一点,那么有没有可能最小粒度进行 阅读全文
posted @ 2020-04-29 14:41 JMCui 阅读(306) 评论(0) 推荐(2) 编辑
摘要:一、git hook 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。有两组这样的钩子:客户端钩子和服务器钩子。客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即 阅读全文
posted @ 2020-04-27 11:30 JMCui 阅读(102) 评论(0) 推荐(0) 编辑
摘要:在高性能硬件上部署程序,目前主要有两种方式: 1. 通过64位JDK来使用大内存。 2. 通过若干个32位虚拟机建立逻辑集群来利用硬件资源。 32位的虚拟机和64位的虚拟机部署应用有什么区别? 1. 在32位的 Windows 平台中每个进程只能使用 2GB 内存,考虑到堆以外的内存开销,堆一般最多 阅读全文
posted @ 2020-04-20 14:46 JMCui 阅读(80) 评论(0) 推荐(0) 编辑
摘要:栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。每一个栈帧都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息。在编译程序代码的时候,栈帧中需要多大的局部变量表、多深的操作数栈都已经完全确定了,并且写入到 阅读全文
posted @ 2020-04-20 14:45 JMCui 阅读(42) 评论(0) 推荐(0) 编辑
摘要:一、类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。 类的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析( 阅读全文
posted @ 2020-04-15 10:11 JMCui 阅读(44) 评论(0) 推荐(0) 编辑
摘要:一、Class 文件结构 JDK 的版本号已经到 14 了,相对于语言、API 以及 Java 技术体系中其他方面的变化,Class 文件结构一直处于比较稳定的状态,Class 文件的主体结构、字节码指令的语义和数量几乎没有出现过变动。 Class 文件是一组以8位字节为基础单位的二进制流,各个数据 阅读全文
posted @ 2020-04-11 15:55 JMCui 阅读(79) 评论(0) 推荐(0) 编辑
摘要:BTrace 是什么? BTrace 是一个动态安全的 Java 追踪工具,它通过向运行中的 Java 程序植入字节码文件,来对运行中的 Java 程序热更新,方便的获取程序运行时的数据信息,并且,保证自己的消耗特别小,大部分情况下不会影响 Java 程序的性能。 BTrace 能干什么? 相信每一 阅读全文
posted @ 2020-04-11 15:54 JMCui 阅读(188) 评论(0) 推荐(1) 编辑
摘要:一、协程 一个进程可以产生许多线程,每个线程有自己的上下文,当我们在使用多线程的时候,如果存在长时间的 I/O 操作,线程会一直处于阻塞状态,这个时候会存在很多线程处于空闲状态,会造成线程资源的浪费。这就是协程适用的场景。 协程,其实就是在一个线程中,有一个总调度器,对于多个任务,同时只有一个任务在 阅读全文
posted @ 2020-03-25 17:12 JMCui 阅读(348) 评论(0) 推荐(0) 编辑