摘要: 前言: 本次博客主要是对Tomcat与OSGi的类加载器架构,所以就需要对tomcat、OSGi以及类加载机制有所了解 类加载可以在http://www.cnblogs.com/ghoster/p/7594224.html中简单了解 一、Tomcat:正统的类加载架构 1.主流的Java Web服务 阅读全文
posted @ 2017-09-27 15:53 Ghostor 阅读(1930) 评论(0) 推荐(0) 编辑
摘要: 目录: 1.类加载的时机 2.类加载的过程 3.类加载器 一、类加载的时机 类从被加载到虚拟机内存中开始,到卸载除内存为止,他的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initializatio 阅读全文
posted @ 2017-09-26 21:22 Ghostor 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 前言: 首先思考垃圾收集(Garbage Collection,GC)需要完成的三件事情 1)哪些内存需要回收? 2)什么时候回收? 3)如何回收? 再上一个博客中提到了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域会随着线程而生,随线程而灭;栈中的栈帧随着方法的进行 阅读全文
posted @ 2017-09-24 20:03 Ghostor 阅读(6464) 评论(1) 推荐(2) 编辑
摘要: 目录: 1.运行时数据区域 2.对象的创建 3.对象的内存布局 4.对象的访问定位 一、运行时数据区域 基本的java虚拟机运行时数据区如下图: 下面我们就来逐个认识这几个运行时的数据区域 1.程序计数器(Program Counter Register) 它是一块比较小的内存,可以看做是当前线程执 阅读全文
posted @ 2017-09-22 16:40 Ghostor 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 一、Executor执行器 1.Executor接口,java线程池框架中的顶层接口,提供一个execute方法来执行任务 import java.util.concurrent.Executor; public class T01_MyExecutor implements Executor { 阅读全文
posted @ 2017-09-06 18:39 Ghostor 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 目录: 1.线程安全单例模式的几种实现方式 2.同步容器 3.并发容器 一、线程安全单例模式的几种实现方式 1.饿汉式(不使用同步锁,典型的用空间换时间) public class Singleton1 { private static Singleton1 mySingleton = new Si 阅读全文
posted @ 2017-09-06 15:00 Ghostor 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 一、高并发编程的几个部分 synchronized同步器、jdk提供的同步容器、ThreadPool线程池、executor执行器 二、重入锁 1.reentrantlock关键字(相较于synchronized更加灵活) 2.reentrantlock用于替代synchronized,在使用此锁时 阅读全文
posted @ 2017-09-05 15:22 Ghostor 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 一、同步锁 1.synchronized关键字(互斥锁) 对某个对象加锁,任何线程要执行锁后面的代码,必须要先拿到对象的锁 2.synchronized的使用方法 1)synchronized(this),任何线程要执行锁后的代码,必须要先拿到this的锁 2)在方法上加上synchronized关 阅读全文
posted @ 2017-09-04 19:27 Ghostor 阅读(432) 评论(0) 推荐(0) 编辑