读书笔记
KiroScarlet
这个作者很懒,什么都没留下…
展开
-
《深入理解JVM》学习笔记(一)
书名:《深入理解Java虚拟机:JVM高级特性与最佳实践》 第一章 走进Java JDK:Java程序设计语言+Java虚拟机+JavaAPI类库,支持Java开发的最小环境 JRE:JavaSE API子集+Java虚拟机,支持Java程序运行的标准环境 Java发展史 1991年4月,java语言的前身:Oak语言 1995年,Java 1996,JDK1.0 1998年...原创 2019-03-22 20:45:24 · 369 阅读 · 0 评论 -
《实战Java高并发程序设计》读书笔记(三):线程池
3.2 线程复用:线程池 1、什么是线程池 为了避免系统频繁地创建和销毁线程,我们可以让创建的线程复用。在使用线程池后,创建线程变成了从线程池中获得空闲线程,关闭线程变成了向线程池中归还线程(类似数据库连接池)。 2、JDK对线程池的支持 Executor框架提供了各种类型的线程池,主要有以下工厂方法: public static ExecutorService newFixedThre...原创 2019-03-26 16:34:00 · 273 阅读 · 0 评论 -
《实战Java高并发程序设计》读书笔记(二):JDK并发包
第三章 JDK并发包 3.1 多线程的团队协作:同步控制 同步控制是并发程序必不可少的重要手段。 1、关键字synchronized的功能扩展:重入锁 重入锁可以完全替代关键字synchronized。重入锁使用java.util.concurrent.locks.ReentrantLock类来实现。 public class ReenterLock implements Runnab...原创 2019-03-25 16:10:47 · 378 阅读 · 0 评论 -
《实战Java高并发程序设计》读书笔记(一):线程
第一章 走入并行世界 几个概念 1、同步(Synchronous)和异步(Asynchronous) 通常用来形容一次方法调用。同步方法调用一旦开始,必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像是一个消息传递,一旦开始,方法调用就会立即返回,调用者可以继续后续的操作,异步方法通常会在另外一个线程中“真实”的执行。 2、并发(Concurrency)和并行(Paralleli...原创 2019-03-24 23:19:55 · 312 阅读 · 0 评论 -
《深入理解JVM》学习笔记(二):垃圾收集与内存分配
第三章 垃圾收集器与内存分配策略 3.1概述 程序计数器、虚拟机栈、本地方法栈随着进程的产生而产生,随其消亡而消亡,可认为其在编译期就是可知的。 垃圾收集(Garbage Collection,GC)关注的主要内存:Java堆和方法区 3.2如何判断对象是否存活? 1、引用计数算法 给对象添加一个引用计数器,没有一个地方引用就+1,引用失效就-1,计数器为0就不可能使用。 优点是实现...原创 2019-03-23 12:23:30 · 208 阅读 · 0 评论 -
《实战Java高并发程序设计》读书笔记(四):锁的优化与注意事项
第四章 锁的优化及注意事项 4.1 有助于提高锁性能的几点建议 1、减少锁持有时间 即只在必要的时候进行同步。 2、减小锁粒度 如ConcurrentHashMap中并不是对整个HashMap进行加锁,而是对其分段,每段分别加锁。 注:JDK1.8以后ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMa...原创 2019-04-02 13:42:07 · 233 阅读 · 0 评论 -
Spring中的动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,使用了两种代理机制:一种是基于JDK的动态代理;另一种是基于CGLib的动态代理。 (1)带有横切逻辑的实例 一个论坛管理的业务类,业务代码前后都是重复性能监控功能的代码。 import org.testng.annotations.Test; public class ForumServiceImpl implements F...原创 2019-04-16 19:44:19 · 160 阅读 · 0 评论