12 2018 档案
摘要:Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。 Dircector:设计者类。该类的作用是指挥建造者对象动态的建造产品。 Builder:建造者类。执行真...
阅读全文
摘要:观察者模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Subject(被观察者) 被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象...
阅读全文
摘要:类型信息一个类的类型信息(class信息,静态域、静态方法和各种字面量常量)在被类加载机制加载进Java虚拟机后存储在方法区中,平常我们通过类实例化的引用对类信息进行访问,这实际上是对方法区中类型信息的间接访问。Exampleone one = new Example...
阅读全文
摘要:《Java编程思想》集合框架简化图: Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口...
阅读全文
摘要:文件过滤器接口FileFilter/** FileFilter只有一个抽象方法,* 是一个函数式接口,可以使用lambda表达式。* 该方法会过滤掉file目录中不包含we(不区分大小写)的文件和文件夹* */File[] files = file.listFile...
阅读全文
摘要:Object类的clone()方法浅克隆//浅克隆/** 1.Object类中的clone()方法为protected的* 2.需要实现克隆功能的类必须实现Cloneable接口* */class Kid{ public int age = 10;}class ...
阅读全文
摘要:管道流(多线程程序)/** 创建数据输出线程* */class ThreadOut extends Thread{ private PipedInputStream in; private PipedOutputStream out; public ...
阅读全文
摘要:Java.nio.file WatchService类图FileSystem:当前系统默认的文件系统。 WatchService:文件系统监视服务的接口类,它的具体实现由监视服务提供者负责加载(不同的操作系统实现不同的加载类,如windows的WindowsWatch...
阅读全文
摘要:重新抛出异常如果我们直接重新抛出异常,那么当我们后续捕获此异常时并不会产生重新抛出地的信息。但是当我们需要重新抛出一个异常时我们显然希望能获得重新抛出点的信息,这时我们需要使用fillInStackTrace()方法,它通过把当前异常调用栈信息填入原来的异常对象而返回...
阅读全文
摘要:适配器模式使那些原本由于接口不兼容而不能一起工作的类可以一起工作。 这里我们举一个例子说明适配器设计模式。上面的类图中,我定义了两个接口,一个BigPlants接口一个SmartPlants接口,他们都有一个浇水的方法(Watering())。编写Tree类并实现B...
阅读全文
摘要:Java中的异常类都派生自Throwable类,所以发生异常时将产生一个异常对象并将其抛出。这与其他对象的创建一样,使用new在堆上创建异常对象。然后,当前的执行路径被迫终止,并且从当前执行环境弹出异常对象的引用,这时异常处理机制开始运作,他会寻找一个恰当的地方继续执...
阅读全文
摘要:Web 程序部署在Tomcat的/webapps下面。一个webapps文件夹可以部署多个不同的Web应用。 其中的每一个文件都代表一个Web应用程序,如:fristweb,examples等。一个Web应用也被称为一个Context,路径/fristweb被称为Co...
阅读全文
摘要:Java I/O流分为输入流输出流两大部分,任何自InputStream(字节输入流)和Reader(字符输入流)派生而来的类都含有read()基本方法,用来读取单个字节或一组字节数组。任何自OutputStream(字节输出流)和Writer(字符输出流)派生而来的...
阅读全文
摘要:在Windows操作系统中,Java语言利用JDBC连接数据库有两种办法。一种是直接通过JDBC和数据库官方提供的支持驱动JAR包进行连接;还有一种则是用JDBC桥连接被广泛使用的ODBC,然后在ODBC中配置数据库相关信息进行连接。 什么是JDBC和ODBC?JDB...
阅读全文
摘要:lambda表达式对于Java语言来说是一个重大的变化,对于面向对象编程的Java语言来说它提供了一种倾向于函数式编程的方式。lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。 lambda表达式的形式有参:(参数1,参数2,...,参数n) -> ...
阅读全文
摘要:在Java中如何将一个已经定义好的类尽可能多的重复使用是提高开发效率和质量的关键。而下面我们要讲述的三种方式便是涉及到怎样去复用类让代码更优雅。一、组合定义:在新的类中产生现有类的对象。组合的例子其实随处可见,比如说我们在类中定义一个String类型的变量时就使用了组...
阅读全文
摘要:这里就作者所学及其理解对《深入理解Java虚拟机》这本书的内容发表看法,如有错误欢迎指出。 在说类加载的时候我们先来看看一个类的生命周期,如图示: 类加载在这里包括了加载、验证、准备、解析、初始化五个部分,当一个类要加载进内存时虚拟机会依次执行这五个过程(解析过程可能会发生在初始化以后)。 一、加载
阅读全文
摘要:模版方法模式就是使用一个抽象类声明一个或一组规范,并且定义一个模版方法使用这组规范所产生的结果,而这组规范会等到子类实现它时再根据不同的情况实现不同的策略。我们举一个简单直观的例子说明这个模式。/** 定义模版方法抽象类* */abstract class TemFu...
阅读全文
摘要:Java虚拟机里的内存分配了许多区域用于存储不同的内容,这里就作者所学及其理解发表看法,如有错误欢迎指出。在《深入理解Java虚拟机》这本书中对Java虚拟机内存在运行时数据区域有下面的图示。其中绿色区域是线程共享的,黄色区域是线程私有的。但是为什么要使用运行时数据区...
阅读全文
摘要:内部类可以将一个类的定义定义在另一个类的定义中,这个类就叫做内部类。让我们看下关于定义一个内部类的简单示例。public class TestOne { /* * 定义一个内部类 * */ public class InnerClass{}...
阅读全文
摘要:CSS定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。但是却能够形成丰富的表现。 一、相对定位:relative相对定位是相对于自身定位的元素进行定位的,它的参照物就是本身。还有一点,相对定...
阅读全文
摘要:一、饿汉式单例/** 单例模式* *//** 饿汉式单例模式* */class Singleton{ /* * 声明私有静态成员变量singleton。 * */ private static Singleton singleton = new...
阅读全文
摘要:一、简单工厂/** 简单工厂(静态工厂)* *//** 抽象产品类* */interface CarProduct{ /* * 抽象产品类的抽象方法show()。 * */ public void show();}/** 具体产品类* */cl...
阅读全文
摘要:一、定义装饰对象/** 定义一个装饰对象Person。* 包含一个方法feature()。* */class Person{ public void feature(){ System.out.println("I am a Person"); ...
阅读全文
摘要:/** 定义一个类A。* 类A中定义了回调函数callBack()。* */class A{ public void callBack(){ System.out.println("I am a callBack_function"); }}...
阅读全文
摘要:在这个例子中使用Java面向对象中的多态来简单介绍静态绑定和动态绑定的区别。/** 创建一个Father类。* 为了方便获取,成员变量a设置为public的。* */class Father{ public int a = 10; public void ...
阅读全文