03 2018 档案

摘要:定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 类型:行为类模式 类图: 中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的 阅读全文
posted @ 2018-03-30 16:47 十月围城小童鞋 阅读(105) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述迭代子(Iterator)模式的: 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。 聚集和JAVA聚集 多个对象聚在一起形 阅读全文
posted @ 2018-03-30 16:26 十月围城小童鞋 阅读(124) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。 解释器模式的结构 下面就以一个示意性的系统为例,讨论解 阅读全文
posted @ 2018-03-30 16:14 十月围城小童鞋 阅读(96) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求 阅读全文
posted @ 2018-03-30 15:30 十月围城小童鞋 阅读(135) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不 阅读全文
posted @ 2018-03-30 11:16 十月围城小童鞋 阅读(133) 评论(0) 推荐(0) 编辑
摘要:代理模式 代理模式的定义很简单:给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构 有些情况下,一个客户不想或者不能够直接引用一个对象,可以通过代理对象在客户端和目标对象之间起到中介作用。代理模式中的角色有: 1、抽象对象角色 声明了目标对象和代理对象的共同接口,这样一来在 阅读全文
posted @ 2018-03-30 10:34 十月围城小童鞋 阅读(88) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 Java 阅读全文
posted @ 2018-03-27 16:34 十月围城小童鞋 阅读(96) 评论(0) 推荐(0) 编辑
摘要:学习难度:★★★☆☆,使用频率:★★★☆☆】 尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软件设计中,我们 阅读全文
posted @ 2018-03-27 16:20 十月围城小童鞋 阅读(169) 评论(0) 推荐(0) 编辑
摘要:医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类 阅读全文
posted @ 2018-03-27 10:41 十月围城小童鞋 阅读(111) 评论(0) 推荐(0) 编辑
摘要:一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、适用性 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换。 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。 这时Bridge模式使你可以 阅读全文
posted @ 2018-03-27 10:27 十月围城小童鞋 阅读(160) 评论(0) 推荐(0) 编辑
摘要:java设计模式之组合模式 学习难度:★★★☆☆,使用频率:★★★★☆】 树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树 阅读全文
posted @ 2018-03-26 17:17 十月围城小童鞋 阅读(150) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极 阅读全文
posted @ 2018-03-26 14:51 十月围城小童鞋 阅读(126) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供 阅读全文
posted @ 2018-03-26 11:20 十月围城小童鞋 阅读(137) 评论(0) 推荐(0) 编辑
摘要:为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别。为什么要用xargs呢,我们知道,linux命令可以从两个地方读取要处理的内容,一个 阅读全文
posted @ 2018-03-23 17:46 十月围城小童鞋 阅读(112) 评论(0) 推荐(0) 编辑
摘要:find是个使用频率比较高的命令。常常用它在系统特定目录下,查找具有某种特征的文件。 find命令的格式:find [-path……] -options [-print -exec -ok] path:要查找的目录路径。 ~ 表示$HOME目录 . 表示当前目录 / 表示根目录 print:表示将结 阅读全文
posted @ 2018-03-23 17:08 十月围城小童鞋 阅读(181) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。 原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口 阅读全文
posted @ 2018-03-23 11:17 十月围城小童鞋 阅读(114) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 产品的内部表象 一个产品常 阅读全文
posted @ 2018-03-22 18:00 十月围城小童鞋 阅读(136) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述工厂方法模式的: 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中 阅读全文
posted @ 2018-03-22 16:53 十月围城小童鞋 阅读(108) 评论(0) 推荐(0) 编辑
摘要:场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能 阅读全文
posted @ 2018-03-22 14:46 十月围城小童鞋 阅读(133) 评论(0) 推荐(0) 编辑
摘要:第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notif 阅读全文
posted @ 2018-03-19 17:16 十月围城小童鞋 阅读(269) 评论(0) 推荐(0) 编辑
摘要:java5 以前, 有如下两种:第一种:new Thread(){}.start();这表示调用 Thread 子类对象的 run 方法, new Thread(){}表示一个Thread 的匿名子类的实例对象, 子类加上 run 方法后的代码如下: 第二种:new Thread(new Runna 阅读全文
posted @ 2018-03-19 17:07 十月围城小童鞋 阅读(126) 评论(0) 推荐(0) 编辑
摘要:throws是获取异常throw是抛出异常try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行执行的语句。 throw和throws的详细区别如下: throw是语句抛出一个异常。语法:throw (异常对象); t 阅读全文
posted @ 2018-03-19 17:03 十月围城小童鞋 阅读(145) 评论(0) 推荐(0) 编辑
摘要:异常指Java程序运行时(非编译)所发生的非正常情况或错误。 java对异常进行了分类,不同类型的异常使用了不同的java类,所有异常的根类为java.lang.Throwable.Throwable派生了2个子类:Error和Exception. Error表示程序本身无法克服和恢复的一种严重错误 阅读全文
posted @ 2018-03-19 17:00 十月围城小童鞋 阅读(123) 评论(0) 推荐(0) 编辑
摘要:Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception 。 Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示 阅读全文
posted @ 2018-03-16 16:56 十月围城小童鞋 阅读(130) 评论(0) 推荐(0) 编辑
摘要:总体区别 final 用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承。finally 是异常处理语句结构中,表示总是执行的部分。 finallize 表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。允许回收此前未回收的内存垃圾。所有obje 阅读全文
posted @ 2018-03-16 16:55 十月围城小童鞋 阅读(137) 评论(0) 推荐(0) 编辑
摘要:数组没有length()这个方法,有length的属性。String有有length()这个方法。 java中数组没有length()方法,求数组的长度可以使用数组的length属性。 String 有length()方法,用来求字符串的长度 详细代码如下: 运行结果: 510 下面这条语句一共创建 阅读全文
posted @ 2018-03-16 16:37 十月围城小童鞋 阅读(516) 评论(0) 推荐(0) 编辑
摘要:split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 stringObj.split([separator],[limit])参数:stringObj 必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。separator 可选项。字符串或 正则 阅读全文
posted @ 2018-03-16 16:08 十月围城小童鞋 阅读(427) 评论(0) 推荐(0) 编辑
摘要:运行结果: static Astatic BHelloB的主方法I am A classHelloAI am A classHelloAI am A classHelloAI am B classHelloBI am A classHelloAI am B classHelloB 相关例子:http 阅读全文
posted @ 2018-03-16 15:58 十月围城小童鞋 阅读(296) 评论(0) 推荐(0) 编辑
摘要:1.Java中哪些类是不能被继承的? 不能被继承的是那些用final关键字修饰的类。一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在java中,System,String,StringBuffer等都是不能被继承的。 2.String是基本数据类型吗? 基本数据类 阅读全文
posted @ 2018-03-16 15:53 十月围城小童鞋 阅读(183) 评论(0) 推荐(0) 编辑
摘要:在test方法中,直接调用getClass().getName()方法,返回的是Test类名。由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在test方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法, 阅读全文
posted @ 2018-03-16 15:43 十月围城小童鞋 阅读(230) 评论(0) 推荐(0) 编辑
摘要:1、什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类。 2、为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implementation)。因此,inner class不受限于outer class是否已继承自某一实现类。 阅读全文
posted @ 2018-03-16 15:30 十月围城小童鞋 阅读(211) 评论(0) 推荐(0) 编辑
摘要:完全可以。如果不是静态内部类,那没有什么限制! 如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,例如,下面的代码: class Outer staticint x; staticclass Inner voidtest() syso 阅读全文
posted @ 2018-03-16 15:23 十月围城小童鞋 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Inner Class(内部类)定义在类中的类。 (一般是JAVA的说法) Nested Class(嵌套类)是静态(static)内部类。(一般是C++的说法)静态内部类:1 创建一个static内部类的对象,不需要一个外部类对象2 不能从一个static内部类的一个对象访问一个外部类对象 Jav 阅读全文
posted @ 2018-03-16 15:21 十月围城小童鞋 阅读(147) 评论(0) 推荐(0) 编辑
摘要:1、abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现。 2、static是静态的,是一种属于类而不属于对象的方法或者属性 3、synchronized 是同步,是一种相对线程的锁。 4、native 本地方法,这种方法和抽象方法及其类似,它也只有方法声明,没 阅读全文
posted @ 2018-03-16 10:15 十月围城小童鞋 阅读(190) 评论(0) 推荐(0) 编辑
摘要:接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 区别: 1.接口里面只能对方法进行声明,不能有具体的实现,抽象类既可以对方法进行声明也可以对方法进行实现。在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方 阅读全文
posted @ 2018-03-16 09:52 十月围城小童鞋 阅读(164) 评论(0) 推荐(0) 编辑
摘要:在使用Eclipse作为开发工具的时候,建议使用英文版本的(直接百度从官网下就行,这里不详细描述,如果有问题,咱们私聊)。虽然中文版本的对于和我一样对英文是小白的看起来特别爽,但是公司大多是英文版本的,所以清醒些,该怎么办? 但是用英文版的,那些英文单词怎么办,连建立个java类,都不知道从何下手, 阅读全文
posted @ 2018-03-15 14:58 十月围城小童鞋 阅读(422) 评论(0) 推荐(0) 编辑
摘要:在前面一篇名为条件阻塞Condition的应用的博客中提到了一个拔高的例子:利用Condition来实现阻塞队列。其实在java中,有个叫ArrayBlockingQueue<E>的类提供了阻塞队列的功能,所以我们如果需要使用阻塞队列,完全没有必要自己去写。 ArrayBlockingQueue<E 阅读全文
posted @ 2018-03-15 10:12 十月围城小童鞋 阅读(165) 评论(0) 推荐(0) 编辑
摘要:面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。 1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。 阅读全文
posted @ 2018-03-14 17:24 十月围城小童鞋 阅读(216) 评论(0) 推荐(0) 编辑
摘要:构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。 Constructor不能被继承,所以Constructor也就不能被override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父 阅读全文
posted @ 2018-03-14 17:11 十月围城小童鞋 阅读(168) 评论(0) 推荐(0) 编辑
摘要:1.一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。 if( username!=null && username.equals(“zxx”){} 阅读全文
posted @ 2018-03-14 17:03 十月围城小童鞋 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。今天我们就通过实例来学习一下Exchanger的用法。 Exchanger的简单实例 Exchanger是在两个任务之间交换对象的栅栏,当这些任务进入栅栏时,它们各自拥有一个对象。当他们离开时,它们都拥有之 阅读全文
posted @ 2018-03-14 16:32 十月围城小童鞋 阅读(236) 评论(0) 推荐(0) 编辑
摘要:最近在看pthread方面的书,看到条件变量一节的时候,回忆了下java中条件变量的使用方式。 java中条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和 阅读全文
posted @ 2018-03-14 11:20 十月围城小童鞋 阅读(431) 评论(0) 推荐(0) 编辑
摘要:本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Fut 阅读全文
posted @ 2018-03-13 14:39 十月围城小童鞋 阅读(117) 评论(0) 推荐(0) 编辑
摘要:如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一 阅读全文
posted @ 2018-03-13 10:31 十月围城小童鞋 阅读(206) 评论(0) 推荐(0) 编辑
摘要:今天在用到switch的时候,这种设计到最基本的内容,可能忘记它的一些基本语法,出现了一些错误,所以即兴从各种资料查询总结了下面的内容,希望可以帮助那些正在困扰switch错误和各种细节问题的朋友! 1.switch-case注意事项: switch(A),括号中A的取值只能是整型或者可以转换为整型 阅读全文
posted @ 2018-03-13 10:05 十月围城小童鞋 阅读(194) 评论(0) 推荐(0) 编辑
摘要:/* * 问题:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 * 答: * 使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。 */ public class Test10 {// final修饰基本类型的变量 public 阅读全文
posted @ 2018-03-13 09:58 十月围城小童鞋 阅读(138) 评论(0) 推荐(0) 编辑
摘要:==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。 如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet o 阅读全文
posted @ 2018-03-12 11:29 十月围城小童鞋 阅读(92) 评论(0) 推荐(0) 编辑
摘要:在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象, 阅读全文
posted @ 2018-03-12 11:22 十月围城小童鞋 阅读(152) 评论(0) 推荐(0) 编辑
摘要:TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息。 1.第一次握手:建立连接。客户端发送连接请求报文段,将 阅读全文
posted @ 2018-03-12 11:15 十月围城小童鞋 阅读(191) 评论(0) 推荐(0) 编辑
摘要:上一篇文章中,我们顺利的搭建了cas的服务端与客户端,但是登录账号cas只提供了一个默认的用户,若是自己想在实际项目中运用,这是肯定不行的,所以,我们最好的解决方式就是配置数据库的验证。话不多说,接下来就开始配置cas服务端。 首先,我们要配置的是服务端的配置文件,所以,先进入部署了cas服务端的t 阅读全文
posted @ 2018-03-07 18:03 十月围城小童鞋 阅读(185) 评论(0) 推荐(0) 编辑
摘要:单点登录:英文名称(Single Sign On),简称sso,是目前比较流行的服务于企业业务整合的解决方案之一,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 然后,引用段话介绍一下cas特性(详见http://www.360doc.com/content/15 阅读全文
posted @ 2018-03-07 17:07 十月围城小童鞋 阅读(570) 评论(0) 推荐(0) 编辑
摘要:1、背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。 从结构上看,CAS包含两个部分:CAS 阅读全文
posted @ 2018-03-07 16:46 十月围城小童鞋 阅读(174) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示