06 2019 档案
摘要:注:基于《Java高并发编程详解-汪文君》、《深入理解JVM高级特性与最佳实践-周志明》,以学习为目的,加上自身理解、验证。作为笔记,为加深印象,做到不复制,不粘贴。欢迎,大家一起交流学习。 上回最后部分说到类加载阶段过程中关于类接口、字段的解析流程。那么今天就接着上回的内容,从类方法、接口方法的解
阅读全文
摘要:注:基于《Java高并发编程详解-汪文君》、《深入理解JVM高级特性与最佳实践-周志明》,以学习为目的,加上自己的理解、验证,作为自己的笔记,做到不复制,不粘贴。 回顾解析 类加载连接阶段包括验证,准备,解析。验证,准备阶段之后,就可以进入到解析阶段,所谓解析,就是在常量池中寻找类,接口,字段和方法
阅读全文
摘要:策略模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分开。策略模式通常是把一系列的算法包装到一系列的策略类里面,作为一个
阅读全文
摘要:迭代器模式 提供一种方式去访问一个容器元素中的各个对象,而又不暴露该对象的内部细节。 迭代器模式的结构 1、迭代器角色 负责定义访问和遍历元素的接口 2、具体迭代器角色 实现迭代器接口,并要记录遍历中的当前位置 3、容器角色 负责提供创建具体迭代器角色的接口 4、具体容器角色 实现创建具体迭代器角色
阅读全文
摘要:前言 Java中ClassLoader负责加载class文件到JVM中,ClassLoader是一个抽象类。在给定一个class的二进制文件后,它会尝试加载并且在JVM中生成构成这个类的各个数据结构,分布在JVM相对应的内存区域中。 类的加载过程 加载阶段:查找并且加载类的二进制数据文件,即clas
阅读全文
摘要:前言 Double-Check虽然是一种巧妙的程序设计方式,但是有可能会抛出空指针的异常,这一切均是由于JVM在运行时指令重排序所导致的,而volatile关键字则可以防止这种重排序的发生。满足多线程程序下的单例、懒加载以及获取实例的高效性。可以这样实现: volatile以后研究,这里不搞了。 H
阅读全文
摘要:单例模式作为设计模式中最常用的设计模式之一,无论是第三方库,还是在我们的日常开发中,几乎都可以看到它。单例模式提供了一种在多线程情况下保证实例唯一性的解决方案。虽然其实现非常简单,但是实现的方式却多种多样。本文会从三个维度对其进行评估:线程安全、高性能、懒加载。 不过我们先不看其具体代码。我们先从它
阅读全文

浙公网安备 33010602011771号