springboot系列文章之spring-boot-devtools实现热部署

前言

实际开发过程中,修改应用的业务逻辑时常常需要重启应用,这显得非常繁琐,降低了开发效率,所以热部署对于开发来说显得十分必要了

Read More

Bagikan Komentar

JVM 系列文章之 Full GC 和 Minor GC

Full GC

Full GC 就是收集整个堆,包括新生代,老年代,永久代(在JDK 1.8及以后,永久代会被移除,换为metaspace)等收集所有部分的模式

RednaxelaFX大Major GC和Full GC的区别是什么?触发条件呢?- 知乎这个问题有关于 GC分类的回答:

Read More

Bagikan Komentar

JVM 系列文章之 GC 算法浅析

Java的堆结构

再介绍垃圾回收算法之前,先来看看 Java中的堆,Java里的堆指的是用于存放 Java 对象的内存区域。JVM的堆被同一个JVM实例中所有的Java线程共享,它通常由某种自动管理机制所管理,这种机制通常叫做”垃圾回收”

Read More

Bagikan Komentar

JVM 系列文章之 对象存活分析 - 引用计数 and 可达性分析

前言

在垃圾回收器回收对象时,我们如何判断哪些对象是”活”的,哪些是”死”的,关于判断对象存活的方法主要分为两类: 引用计数法 和 可达性分析算法

Read More

Bagikan Komentar

JVM 系列文章之 Java 的内存区域

前言

下面关于 Java 的内存区域介绍大部分参考深入理解Java虚拟机,也参考了网上很多资料,以下图片均摘自网络

运行时数据区域

Java虚拟机在执行 Java 程序的过程中会把它管理的内存划分为若干个不同的数据区域。根据《Java 虚拟机规范》将 Java虚拟机所管理的内存分为以下几个运行时数据区域:

  • 程序计数器
  • Java虚拟机栈
  • 本地方法栈
  • Java堆
  • 方法区

Read More

Bagikan Komentar

JDK自带的反编译工具 javap

前言

以前经常看一些文章使用 javap 反编译 class文件,然后生成一堆字节码,再一顿骚操作分析字节码,可谓是非常炫酷。这里有时间刚好也来玩玩JDK的 javap

javap 介绍

javap是 JDK自带的一个工具,可以将 class文件反编译成字节码,它并没有将class文件反编译成 java文件,但是依然反编译成程序员能读的格式。

Read More

Bagikan Komentar

Java NIO 系列文章 (一) Buffer,Channel,Selector入门

前言

下面部分内容参考 Java NIO 系列教程-并发编程网

NIO类库简介

NIO 库是在JDK 1.4中引入的,NIO 弥补了原来同步阻塞 I/O 的不足,它在标准Java代码中提供了高速的,面向块的I/O。NIO的核心部分主要有:

  • 通道 Channel
  • 缓冲区 Buffer
  • 多路复用器 Selector

下面一一介绍着三大核心部分。

Read More

Bagikan Komentar

Java NIO.2系列文章之异步通道API入门

NIO.2概览

NIO.2也就是人们常说的 AIO,在Java 7中引入了NIO的改进版NIO 2,它是异步非阻塞的IO方式。

AIO的核心概念就是发起非阻塞方式的I/O操作,立即响应,却不立即返回结果,当I/O操作完成时通知。

这篇文章主要介绍NIO 2的异步通道API的一些内容,后续文章再分析NIO.2的其他特性

Read More

Bagikan Komentar

springboot系列文章之整合mybatis

mybatis简介

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的
Java对象)映射成数据库中的记录。

关于SpringBoot与Mybatis的整合,我将使用通用 MapperMybatis分页插件这两个插件,这两个插件能够帮助我们更加方便与高效的使用Mybatis。

Read More

Bagikan Komentar

springboot系列文章之整合Spring Data JPA

JPA简介

首先来介绍一下JPA,JPA是 Java Persistence API的简称,中文名称为 Java持久层API,是官方(Sun)在JDK5.0后提出的Java 持久化规范,其目的是为了简化Java EE和Java SE的应用开发工作。可以通过注解或者XML描述之间的映射关系,将实体对象持久化到数据库中。

JPA仅仅是一种规范,它仅仅定义了一些接口,而接口是需要实现才能工作,所以底层需要某种实现,而Hibernate 就是实现了 JPA 接口的ORM框架

Read More

Bagikan Komentar