- 浏览: 3738 次
- 性别:
最新评论
文章列表
Java设计模式学习笔记上
- 博客分类:
- 设计模式
一:设计原则
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化得代码混在一起。
针对接口编程,而非针对实现编程。
多用组合,少用继承。 'has a' is better than 'is a'
为交互对象之间的松耦合设计而努力
开放关闭原则:类应该对扩展开放,对修改关闭(在不修改代码的情况下,对功能进行扩展)
要依赖抽象,不要依赖具体类
二:策略模式(strategy)
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
示例图:
FlyBehavior 和 QuackBehavior分别是 ...
以前经常对IO的概念及其中大量的类理解不清,这里先简单整理一下
一 IO
首先流的概念 使用inputStream对file进行读取,使用outputStream对文件进行写入
流的分类
字节流(8 位)
字节输入流:InputStream,是所有字节输入流的祖先
字节输出流:OutputStream,是所有字节输出流的祖先
字符流(16 位Unicode)
字符输入流:Reader ,是所有字符输入流的祖先
字符输出流:Writer,是所有字符输出流的祖先
IO字节流整体分类单看,InputStream一块,FileInputStream和Buf ...
设计模式之Iterator
- 博客分类:
- 设计模式
迭代器模式:目前该模式已被整入到Java的Collection。
适用于:
访问一个聚合对象的内容而不暴露它的内部表示
支持聚合对象的多种遍历
为遍历不同的聚合结构提供统一的接口
下边用代码模拟Java的Iterator:
定义Iterator接口,定义迭代接口方法
/*
* imitate the JDK Iterator
*/
public interface Iterator<E> {
public E next();
public boolean hasNext();
}
定义Collection接口,及集合的通用方法如 ...
原题:
农场一头小母牛每年生头小母牛母牛四岁产母牛二十年上多少牛
首先定义两个对象,母牛和农场
public class Cow {
public static final int new_age = 4;//Till this age,the cow can birth new cow
private int age;
public Cow(int age){
this.age = age;
}
/*
* birth the new cow
*/
public Cow birth(){
if(age >= ...
Chain of responsibility.是一种比较简单的设计模式。个人理解,Servlet的filter和struts中的Interceptor都会采用这种模式。
以filter为例,filterChain将filter的各个过滤步骤封装成了黑盒子,用户只需将request和response放进去,利用filterChain逐步进行过滤,拿到最终结果。
以下是是一个例子,模拟Filter的执行步骤:其中request依次经过SpecialCharacterFilter和SensitiveWordsFilter的过滤,返回的response依次经过Sensit ...
常见Java面试题(一)
- 博客分类:
- 面试问题
前段时间准备面试时,遇到的一些常问问题总结
1.Switch 语句能否作用于byte,long,String?
byte可以,long,String不可以,因为switch 的判断条件可以接受int,byte,char,short,不接受其他类型
2.给出输出结果
int testNum = 1;
switch(testNum ){
case 1:
System.out.println('A');
case 2:
System.out.println('B');
case 3:
System.out.println('C ...
HTTPS和HTTP的区别:
HTTPS协议需要到CA申请证书
HTTP为超文本传输协议,信息为铭文传输;HTTPS则是具有安全性的SSL加密传输协议
端口不同,HTTP:80 HTTPS:443
HTTP的连接简单,无状态
HTTPS是有SSL+HTTP协议建构的,可进行加密传输、身份认证的网络协议,比HTTP安全
HTTPS解决问题:
信任主机问题:https的server到CA申请一个用于证明服务器用途类型的证书,该证书只有用于对应的server的时候,客户才信任次主机,常用于银行系统网站
通讯过程中的数据的泄漏和被篡改