Guice Review 实例作用范围 Guice 允许自定义一个实例的作用范围(一个实例作用于整个应用期间,一段会话期间,还是一次请求期间)。 内置的作用范围 * 单例(兼容 javax.inejct. Kicey Mar 18, 2023 1 min read
Guice Review 基本模型(Map) Guice 是 Google 开源的一个用于 Java 的轻量级依赖注入框架(elasticsearch 在最初使用的依赖注入框架也是 Guice)。 抽象地回顾 Kicey Mar 18, 2023 4 min read
构建工具 gradle (Java) gradle 的学习不推荐看书 参考 Groovy 的语法可以直接参考官方文档。 The Apache Groovy programming language Kicey Nov 19, 2022 4 min read
String.intern() 方法 String::new 和 String 常量 常量的 String 在编译阶段已经被确定了,那么 JVM Kicey Oct 15, 2022 2 min read
类加载器双亲委派 Java 虚拟机设计团队有意把类加载阶段中的"通过一个类的全限定名来获取描述该类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 对于任意一个类, Kicey Oct 7, 2022 7 min read
jvm 基本的垃圾收集器 Serial 收集器 单线程的垃圾收集,它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。 新生代标记复制,老年代标记整理。 ParNew 收集器 Kicey Oct 3, 2022 10 min read
HotSpot 垃圾收集部分细节 根节点枚举 固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如 栈帧中的本地变量表)中,但是在应用和 jvm Kicey Oct 3, 2022 8 min read
Java 虚拟线程对比 首先需要明白虚拟线程解决了什么问题: 减少内核线程切换的开销 示例代码: import java.io.File; import java.io. Kicey Sep 29, 2022 1 min read
Jvm 自动垃圾回收 整理自以下内容 深入理解 Java 虚拟机:JVM高级特性与最佳实践(第3版)周志明 (8条消息) Java中的垃圾收集器如何设置 — JVM系列( Kicey Sep 24, 2022 8 min read
volatile 关键字 线程,工作内存与主内存 Java 不同现场的工作内存无法直接相互访问,线程间的变量的传递需要通过主内存进行。 Jvm 定义了下面 8 中内存操作: * lock( Kicey Sep 24, 2022 2 min read
Java 异常体系 其中 Error 和 RuntimeException 是非检查异常(Unchecked Exception)不要求在代码中存在相应的处理逻辑,与之相反的则是检查异常(Checked Kicey Sep 22, 2022 1 min read
中断线程和守护线程 中断线程 中断线程是一个动作,并不是一种线程。它代表一个线程向另外一个发出一个终止的信号,具体如何处理这个终止信号,由受到的线程自行决定。(与计算机中通常的中断不同,线程的中断没有传递额外数据的能力)。 线程阻塞 如果线程被阻塞, Kicey Sep 17, 2022 1 min read
Java 线程池梳理 线程池的作用 减少创建线程的开销(时间开销)。 构造一个新的线程开销有些大,因为这涉及与操作系统的交互。如果你的程序中创建了大量的生命期很短的线程,那么不应该把每个任务映射到一个单独的线程,而应该使用线程池(thread pool) Kicey Sep 17, 2022 7 min read
线程安全集合 Collections.synchronized** 除了直接使用 java 内置的线程安全集合之外,Collections 也提供了方法将一个普通的集合转换为一个线程安全的集合,在项目多线程改造的时候可以提供一些便利,如果对性能的要求比较苛刻,那么还是应该自己实现线程间的同步。 Kicey Sep 10, 2022 2 min read
类文件(.class)结构 * 类和接口并不一定由类文件定义,也可以动态生成(可以参考 Java运行时动态生成class的方法 - 廖雪峰的官方网站 (liaoxuefeng.com)),直接送入类加载器中 * Class Kicey Sep 8, 2022 8 min read
HotSpot 对 Java 对象的处理 创建对象 当遇到一个 new 操作符后,HotSpot 创建一个指定的对象,过程大致如下: 1. 获取类型信息 检查指定的类是否能在运行时常量池中找到相应的符号引用, Kicey Aug 25, 2022 3 min read