上一页 1 ··· 6 7 8 9 10 11 12 13 下一页
摘要: 前言 上篇博客介绍了简单工厂模式和工厂方法模式,这次介绍抽象工厂模式,抽象工厂模式和工厂方法模式的区别在于需要创建对象的复杂程度上。 抽象工厂模式 抽象工厂模式是围绕着一个超级工厂创建其他工厂。这个超级工厂被称为其他工厂的工厂,主要是为了解决接口选择问题。 举例说明: 还是继续上篇用户使用手的例子, 阅读全文
posted @ 2018-06-23 21:54 纪莫 阅读(553) 评论(4) 推荐(0)
摘要: 前言 之前介绍了设计模式的原则和分类等概述。今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍。 简单工厂模式 做法:创建一个工厂(方法或类)用来制造对象。 当一个人想要用手机的时候,需要自己创建手机然后来使用。 如下: 这种实现方式,客户 阅读全文
posted @ 2018-06-22 08:43 纪莫 阅读(1418) 评论(0) 推荐(0)
摘要: 前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。 解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循 阅读全文
posted @ 2018-06-15 01:16 纪莫 阅读(30781) 评论(21) 推荐(29)
摘要: 前言 最近要开始学习设计模式了,以前是偶尔会看看设计模式的书或是在网上翻到了某种设计模式,就顺便看看,也没有仔细的学习过。前段时间看完了JVM的知识,然后就想着JVM那么费劲的东西都看完了,说明自己学习耐力还是有的,所以就打算仔细的研究研究设计模式,然后也将设计模式的学习过程记录下来。 GoF的设计 阅读全文
posted @ 2018-06-10 16:42 纪莫 阅读(1828) 评论(0) 推荐(1)
摘要: 前言 高效并发是程序员们写代码时一直所追求的,HotSpot虚拟机开发团队也为此付出了很多努力,为了在线程之间更高效地共享数据,以及解决竞争问题,HotSpot开发团队做出了各种锁的优化技术常见的有:自适应自旋锁(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗 阅读全文
posted @ 2018-06-04 23:00 纪莫 阅读(673) 评论(0) 推荐(2)
摘要: 前言 线程:程序流执行的最小单元。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。 Java语言定义了5中线程状态,在任意一个时间点,一个线程只能有且只有其中的 阅读全文
posted @ 2018-06-02 19:50 纪莫 阅读(794) 评论(0) 推荐(0)
摘要: 对于volatile型变量的特殊规则 关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制。 在处理多线程数据竞争问题时,不仅仅是可以使用synchronized关键字来实现,使用volatile也可以实现。 Java内存模型对volatitle专门定义了一些特殊的访问规则,当一个变 阅读全文
posted @ 2018-05-31 01:10 纪莫 阅读(797) 评论(2) 推荐(0)
摘要: 前言 Java虚拟机规范中定义了一种Java的内存模型,即Java Memoory Model(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果。JVM是整个虚拟机,JMM模型属于JVM的一部分。 定义Java内存模型并不是一件容易的事情,即要足够严谨,又要足够宽松。初始的 阅读全文
posted @ 2018-05-30 01:16 纪莫 阅读(690) 评论(0) 推荐(2)
摘要: 前言 JVM设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外面去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类与类加载器 类加载器虽然只用户实现类的加载动作,但它在Java程序中起到的作用却远远不 阅读全文
posted @ 2018-05-28 23:38 纪莫 阅读(738) 评论(0) 推荐(1)
摘要: 类的整个生命周期的7个阶段是:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。 类加载的全过程主要包括:加载、验证、准备、解析、初始化这5个 阅读全文
posted @ 2018-05-27 19:09 纪莫 阅读(1483) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 下一页