随笔分类 - java
摘要:JVM 内存布局是怎样的 Java对象的布局是怎么样的 对象分配策略是怎么样,什么是空间分配担保机制 GC roots有哪些 ThreadLocal内存泄漏的原因 GC算法有哪些,垃圾收集器有哪些,各自特点 类的生命周期 类Class对象被回收的条件 有哪些类加载器,什么是双亲委派流程
阅读全文
摘要:背景 很多时候,在进行一个需要耗时等待的操作时,我们往往选择采用间隔一段时间进行轮询的方式。这个方式比较原始的写法如下,即循环+sleep: Guava retry 添加如下依赖: 一个简单的示例如下图,除了图中的配置,还支持.retryIfException()发生错误时重试,.withRetry
阅读全文
摘要:#Vert.X简介 Vert.X 是一个基于JVM的响应式应用/工具包(Reactive applications)。Vert.X是事件驱动,非阻塞纯异步IO : 极少线程资源处理大量并发请求,高并发系统的优选 官网上Vert.X呈现的3大特点:1. 节约资源/高并发处理优秀 2. 异步编程变得简单
阅读全文
摘要:前言 在Java的日志系统里面,有两个概念,一个叫做日志框架,如我们熟悉的Logback, Log4j, Log4j2, JDK自带的java.util.logging等;一个叫做日志门面,如Slf4j(Simple Logging Facade For Java)。 门面可以理解为一个统一的记录日
阅读全文
摘要:概念 与传统编程模型对比 传统编程模型,主要特点是同步阻塞式-Blocking; 而响应式编程(Reactive Programming) 主要特点是异步非阻塞 Non-Blocking。 同步阻塞式参考下面的图: 同步阻塞的方式很好理解,也容易实现,在大部分时候都是不错的选择。但它的问题是当并发量
阅读全文
摘要:微服务设计模式 - circuit breaker circuit breaker 熔断器,在很多不同的领域都有这个定义,例如电路里面的熔断器,股票行业里面的熔断,当然我们这里的熔断指的是在计算机编程里面的,设计模式里的“熔断”。 简单的说,这就是一个状态机,然后状态机之间的转换逻辑;这个状态机有三
阅读全文
摘要:[作者:sczyh30](https://www.sczyh30.com/archives/) [java全栈知识体系](https://pdai.tech/) [microsoft cloud design pattern](https://docs.microsoft.com/en-us/azu
阅读全文
摘要:背景 项目使用到jieba分词,分词部分结果产品不满意,想过滤一些不重要的高频词汇;我们是使用的结巴分词java版。maven引入如下: <dependency> <groupId>com.huaban</groupId> <artifactId>jieba-analysis</artifactId
阅读全文
摘要:概述 Java虚拟机(JVM)不与包括Java语言在内的任何程序语言绑定,只与“Class文件”(字节码)这种特定的二进制文件格式关联。而Java虚拟机可以运行在各种不同硬件平台和操作系统上,这也是说Java语言跨平台的原因。虚拟机与程序语言的关系如下图: Class文件结构定义 ClassFile
阅读全文
摘要:# 判断对象需要被回收的算法 ## 引用计数 引用计数,Reference Counting。主流的JVM并没有使用引用计数来管理内存。引用计数的方法即在对象中添加一个引用计数器,每当有个地方引用它的时候就加一;引用失效的时候,就减一。当计数器为0,那么该对象就应该被回收,不能再使用了。 问题: 循
阅读全文
摘要:虚拟机内存的各个部分 如上图所示,JVM运行时内存可以分为堆,栈,非堆。 栈 栈是线程私有的,里面主要包括了程序计数器(Program Counter), 虚拟机栈(VM Stack)和本地方法栈(Native Method Stack)。 程序计数器 可以看做是当前线程执行字节码的行号指示器,程序
阅读全文
摘要:工厂方法模式 模式简述 Spring中的FactoryBean Product → BeanObject Concrete Products → e.g.如mybatis中的T MapperObject Creator → FactoryBean public interface FactoryBe
阅读全文
摘要:基础问题 线程和进程的含义及区别 线程 操作系统调度的最小单元,轻量级进程 进程 操作系统资源分配的基本单位,操作系统在运行一个程序的时候,会为其创建一个进程。 一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。 每个进程都有独立的代码和数据空
阅读全文