摘要:
一直以来对shell都不是很熟悉,只停留在基本的linux上操作上,这周因为定位问题接触到了生产环境上的脚本,因此作为引子学习一下。很多命令只是点到,等真正需要独立完成的时候再去学习。 1 #!/bin/sh 2 3 #set -x 打印出调试信息 4 MYNAME=rawload 5 ... 阅读全文
摘要:
意图: 中介者模式也属于行为模式的一种,它的意图是使用一个中介对象来封装一系列的对象交互。中介者使得对象不需要显示的相互引用,从而使其耦合松散,而且可以独立改变它们之间的交互。 动机: 面向对象的设计鼓励将行为分布到各个对象中去,这种分布可能导致对象间有许多的连接,在最坏的情况下,每一个对... 阅读全文
摘要:
策略模式也是行为模式的一种。 意图:定义一系列的算法,把它们一个一个封装起来,并使它们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。 场景:使用GOF中的场景来说明,许多算法可以对一个正文流换行,将这些算法硬编码到使用它的类中是不可取的,原因如下: 1. 需要换行的客户程序如... 阅读全文
摘要:
状态行为模式属于设计模式中的行为模式的分类,行为模式一般指会涉及到算法以及对象间的职责分配。行为模式不但描述对象或类的模式,还描述其中的通信模式。 行为模式通常使用对象间的复合而不是继承来完成对象功能的增强。 下面为了引入状态模式(state),首先设想一种场景: 还是拿领导说事,下属观察领... 阅读全文
摘要:
说深入理解其实是有些过了,只能算是肤浅的理解,这技术叫代理,似乎跟设计模式扯上点关系,因此显得有些NB,还是动态的,这逼格就更高了。对于逼格高的东西,我一向喜欢扒一扒。 从使用场景开始说起吧,万事需要有引子,技术需要有实践,先说应用,再说实践: 场景: 开发一个项目,直接调用的jdbc... 阅读全文
摘要:
引子: 类加载器(classloader)是独立于虚拟机之外,可以独立实现的代码模块。 OSGi使用了类加载器的这一特点实现其热插拔的特性 Java同C++等语言不通,其连接操作不是在编译期间进行的,而是在程序运行期间进行的,这也就为java的动态扩展的语言特性提供了基础。首先介绍下虚拟机的类加... 阅读全文
摘要:
1. 垃圾收集算法 JVM的垃圾收集算法在不同的JVM实现中有所不同,且在平时工作中一般不会深入到收集算法,因此只对算法做较为简单的介绍。 1.1 标记-清除算法 这种算法是非常直观的,也是最为基础的收集算法(Mark-Sweep)算法,这种算法将回收分为两个阶段:首先标记所有需要回收的对象,... 阅读全文
摘要:
首先需要澄清的是,垃圾收集(GC)的历史远比Java要久远,当我们意识到手动管理内存所带来的麻烦时,懒惰的天性推动先驱们寻找更为简单、易用、关键是傻瓜式的内存管理技术。GC技术起源于1960年诞生于MIT的Lisp语言,由此可见越聪明的人越懒惰。 最近有一种想法:程序开发,程序设计从本质上... 阅读全文
摘要:
在内存管理方面,Java相对于C和C++的区别在于Java具有内存动态分配以及垃圾收集技术,但平时我们很少去关注JVM的内存结构以及GC,在出现内存泄露或溢出方面的问题,排查工作将变得异常艰难。 1. 运行时数据区域 Java虚拟机在执行Java程序时会将其管理的内存按照用于划分为... 阅读全文
摘要:
使用JAVA已经快三年了,但说来惭愧,一直以来认为Java就是Java语言本身,最多再包括一个JVM,对于整个Java的体系结构还是不甚明了,现在有时间把《深入理解Java虚拟机》这本书读了一下,也算解答了自己很多的疑惑。 JAVA不仅仅是一门语言,而是由一系列软件和规范形成的技术体系,我们... 阅读全文