JVM 调优指南
从桌面上的小 applet 到大型服务器上的 Web 服务,各种各样的应用程序都使用 Java。为了支持这种多样化的部署场景,Java HotSpot VM 提供了多个垃圾收集器,每个...
从桌面上的小 applet 到大型服务器上的 Web 服务,各种各样的应用程序都使用 Java。为了支持这种多样化的部署场景,Java HotSpot VM 提供了多个垃圾收集器,每个...
概述 Spring Boot Starters 是一系列为我们提供方便的依赖项描述符,通过在应用中加入这些依赖项描述符,我们就可以很方便的集齐所有需要的依赖和相关技术,不用再为解...
部分项目可能需要同时适配多种不同的数据库,比如常见的 Mysql、Oracle、Mssql 这几种数据库。首先我们准备测试数据库环境。 测试数据库...
字符集、校对规则和 Unicode 字符集 (Character Sets) 是指一种从二进制编码到某类字符符号的映射,可以参考如何使用一个字节来表示英文字母。 “校对” (Collations) 是指一组用于某个字...
关于 JMS 和 AMQP 在消息和代理上的一些说明。 如今,AMQP 越来越受欢迎。因此,我认为这是一个很好的机会,以了解它如何与旧的 JMS 匹配。 JMS 包括 Java RMI 在内的远...
概述 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects)为数据库中的记录。 MyBatis 作为一款持久层框架,它趋向于以数据库为中心,因此主要的关注点会落在 SQL 定义、结果映射上,相对来说比较轻量,也更容易入手,对于 SQL 优化也比较容易,但也正是由于偏重 SQL,将会和使用的数据库强关联。 对比 ORM 框架 同时使用面向对象的软件和关系数据库既麻烦又费时。由于对象和关系数据库中的数据表示方式之间存在范式不匹配,因此开发成本要高得多。 相比 ORM 框架,ORM 框架更多的将关注点放在面向对象的域模型和业务逻辑层,ORM 框架一般会遵循 JPA 标准,比如最常见的实现 Hibernate。 ORM 框架的主要目的之一是降低与特定数据库的耦合性,它抽象了数据库系统,因此在不同数据库切换、移植时会更加容易,抽象的代价是与之而来的复杂性的增加,但也提供了更多丰富的功能特性:数据变更追踪、审计、一/二级缓存、并发版本控制、数据懒加载、级联操作,以及丰富的查询方式:SQL、HQL、JPQL、Criteria API、Query DSL 等; ...
线程安全性 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变(Mutable)的状态的访问。 对象...
历史 在早些的文献中,共识(consensus)也叫做协商(agreement)。 本文按照最有意义的顺序进行讨论,而不是按照发表的顺序。 我所知...
索引是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影...
1. 引言 Java 的核心优势之一是借助 JVM 内置的垃圾收集器(或简称 GC)的自动内存管理。GC 隐式地负责分配和释放内存,因此能够处理大多数内存泄漏问题。 尽...