摘要:
1、开闭原则(Open Close Principle) 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 任何基类可以出现... 阅读全文
posted @ 2017-12-17 23:20
老人与JAVA
阅读(1138)
评论(1)
推荐(0)
摘要:
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下: Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下: [java]view plaincopy publicinterfaceSourceable{ publi... 阅读全文
posted @ 2017-12-17 23:20
老人与JAVA
阅读(194)
评论(0)
推荐(0)
摘要:
面向接口编程 一:反射的入口Class类型 得到Class的三种方法: a1. Class clz = 类名.class; a2. Class clz = Class.forName("类的完整路径"); a3. Class clz = 对象名.getClass(); 二:得到类的对象 父接口类型 实例名 = (父接口类型)clz.newInstance... 阅读全文
posted @ 2017-12-17 23:19
老人与JAVA
阅读(157)
评论(0)
推荐(0)
摘要:
单例模式?:系统运行期间,有且仅有一个实例! 1:它必须自行创建这个实例(定义了静态的该类私有对象) 2:一个类只有一个实例(只提供私有构造器(核心)) 3:它必须自行向整个系统提供这个实例(提供一个静态的公有的方法,返回创建或者获取本身的静态私有对象) 这样的单例在高并发的时候存在线程不安全的弊端 懒汉模式实现单例 1:在类加载时不创建实例,采用延迟加载的方式,在运行时调... 阅读全文
posted @ 2017-12-17 23:18
老人与JAVA
阅读(290)
评论(0)
推荐(0)
摘要:
一、CGlib动态代理 JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的1:字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用2:方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。 字节码技术:参考:http:... 阅读全文
posted @ 2017-12-17 23:17
老人与JAVA
阅读(279)
评论(0)
推荐(0)
摘要:
dos窗口下操作jar:(JDK的命令) jar命令能够把Java应用打包成一个文件,这个文件的扩展名为.jar,称为JAR文件。JAR 文件非常类似 ZIP 文件。准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 MET 阅读全文
posted @ 2017-12-17 00:12
老人与JAVA
阅读(643)
评论(0)
推荐(0)
摘要:
堆栈常量池等内存分配原理详解 存储的方式: 寄存器 栈(stack) 堆(heap) 静态域 常量池 非RAM存储 JAVA寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 所有进程都使用寄存器,Java虚拟机使用下列寄存器管理系统堆栈: 程序记数寄存器:跟踪程序执行的准确位置 堆栈指针寄存器:指示操作栈项 框架寄存... 阅读全文
posted @ 2017-12-17 00:11
老人与JAVA
阅读(349)
评论(0)
推荐(0)
摘要:
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据; 2)链接: 验证:确保被加载类的正确性; 准备:为类的静态变量分配内存,并将其初始化为默认值; 解析:把类中的符号引用转换为直接引用; 3)初始化:为类的静态变量赋予正确的初始值; ... 阅读全文
posted @ 2017-12-17 00:10
老人与JAVA
阅读(169)
评论(0)
推荐(0)
摘要:
类路径 :CLASSPATH= .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar JDK的路径:JAVA_HOME = C:/Program Files/Java/jdk1.5.0 命令的搜索路径:PATH = %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin ---------------------------... 阅读全文
posted @ 2017-12-17 00:10
老人与JAVA
阅读(2034)
评论(0)
推荐(0)
摘要:
第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报"cant find symbol"的错误。 编译后的字节码文件格式主要分... 阅读全文
posted @ 2017-12-17 00:09
老人与JAVA
阅读(1272)
评论(0)
推荐(0)

浙公网安备 33010602011771号