java

与 Java 相关的内容,jdk 下载请转到:https://jdk.java.net/archive/

Guice Review 绑定

Guice 中的绑定(bindings)是 Guice Key 和 value 实例的一个对应关系,即

Guice Review 实例作用范围

Guice 允许自定义一个实例的作用范围(一个实例作用于整个应用期间,一段会话期间,还是一次请求期间)。 内置的作用范围 * 单例(兼容 javax.inejct.

Guice Review 基本模型(Map)

Guice 是 Google 开源的一个用于 Java 的轻量级依赖注入框架(elasticsearch 在最初使用的依赖注入框架也是 Guice)。 抽象地回顾

构建工具 gradle (Java)

gradle 的学习不推荐看书 参考 Groovy 的语法可以直接参考官方文档。 The Apache Groovy programming language

类加载器双亲委派

Java 虚拟机设计团队有意把类加载阶段中的"通过一个类的全限定名来获取描述该类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。 对于任意一个类,

jvm 基本的垃圾收集器

Serial 收集器 单线程的垃圾收集,它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。 新生代标记复制,老年代标记整理。 ParNew 收集器

HotSpot 垃圾收集部分细节

根节点枚举 固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如 栈帧中的本地变量表)中,但是在应用和 jvm

Java 虚拟线程对比

首先需要明白虚拟线程解决了什么问题: 减少内核线程切换的开销 示例代码: import java.io.File; import java.io.

Jvm 自动垃圾回收

整理自以下内容 深入理解 Java 虚拟机:JVM高级特性与最佳实践(第3版)周志明 (8条消息) Java中的垃圾收集器如何设置 — JVM系列(

volatile 关键字

线程,工作内存与主内存 Java 不同现场的工作内存无法直接相互访问,线程间的变量的传递需要通过主内存进行。 Jvm 定义了下面 8 中内存操作: * lock(

Java 异常体系

其中 Error 和 RuntimeException 是非检查异常(Unchecked Exception)不要求在代码中存在相应的处理逻辑,与之相反的则是检查异常(Checked

中断线程和守护线程

中断线程 中断线程是一个动作,并不是一种线程。它代表一个线程向另外一个发出一个终止的信号,具体如何处理这个终止信号,由受到的线程自行决定。(与计算机中通常的中断不同,线程的中断没有传递额外数据的能力)。 线程阻塞 如果线程被阻塞,

Java 线程池梳理

线程池的作用 减少创建线程的开销(时间开销)。 构造一个新的线程开销有些大,因为这涉及与操作系统的交互。如果你的程序中创建了大量的生命期很短的线程,那么不应该把每个任务映射到一个单独的线程,而应该使用线程池(thread pool)

线程安全集合

Collections.synchronized** 除了直接使用 java 内置的线程安全集合之外,Collections 也提供了方法将一个普通的集合转换为一个线程安全的集合,在项目多线程改造的时候可以提供一些便利,如果对性能的要求比较苛刻,那么还是应该自己实现线程间的同步。

类文件(.class)结构

* 类和接口并不一定由类文件定义,也可以动态生成(可以参考 Java运行时动态生成class的方法 - 廖雪峰的官方网站 (liaoxuefeng.com)),直接送入类加载器中 * Class

HotSpot 对 Java 对象的处理

创建对象 当遇到一个 new 操作符后,HotSpot 创建一个指定的对象,过程大致如下: 1. 获取类型信息 检查指定的类是否能在运行时常量池中找到相应的符号引用,