常用设计原则和设计模式
1. 常用的设计原则(记住)1.1 软件开发的流程
需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级
1.2 常用的设计原则
开闭原则(Open Close Principle) 对扩展开放对修改关闭,为了使程序的扩展性好,易于维护和升级。
里氏代换原则(Liskov Substitution Principle) 任何基类可以出现的地方,子类一定可以出现,多使用多态的方式。
依赖倒转原则(Dependence Inversion Principle) 尽量多依赖于抽象类或接口而不是具体实现类,对子类具有强制性和规范性
接口隔离原则(Interface Segregation Principle) 尽量多使用小接口而不是大接口,避免接口的污染,降低类之间耦合度。
迪米特法则(最少知道原则)(Demeter Principle) 一个实体应当尽量少与其他实体之间发生相互作用,使系统功能模块相对独立。 高内聚,低耦合。
合成复用原则(Composite Reuse Principle) 尽量多使用合成/聚合的方式,而不是继承的方式。
2. ...
集合类库(下)
1. 泛型机制(熟悉)1.1 基本概念
通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此 从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换, 而强制类型转换可能会引发类型转换异常。
为了避免上述错误的发生,从Java5开始增加泛型机制,也就是在集合名称的右侧使用<数据类型> 的方式来明确要求该集合中可以存放的元素类型,若放入其它类型的元素则编译报错。
泛型只在编译时期有效,在运行时期不区分是什么类型。
1.2 底层原理
泛型的本质就是参数化类型,也就是让数据类型作为参数传递,其中E相当于形式参数负责占位, 而使用集合时<>中的数据类型相当于实际参数,用于给形式参数E进行初始化,从而使得集合中所 有的E被实际参数替换,由于实际参数可以传递各种各样广泛的数据类型,因此得名为泛型。
如:
12345678910111213141516171819//其中i叫做形式参数,负责占位//int i = 10;//int i = 20;public static void show ...
集合类库(上)
1. 集合的概述(重点)1.1 集合的由来
当需要在Java程序中记录单个数据内容时,则声明一个变量。
当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组。
当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象。
当需要在Java程序中记录多个类型相同的对象数据时,创建一个对象数组。 当需要在Java程序中记录多个类型不同的对象数据时,则准备一个集合。
1.2 集合的框架结构
Java中集合框架顶层框架是:java.util.Collection集合 和 java.util.Map集合。
其中Collection集合中存取元素的基本单位是:单个元素。
其中Map集合中存取元素的基本单位是:单对元素。
2. Collection集合(重点)2.1 基本概念
java.util.Collection接口是List接口、Queue 接口以及Set接口的父接口,因此该接口里定义的方法 既可用于操作List集合,也可用于操作Queue集合和Set集合。
2.2 常用的方法(练熟、记住)
方法声明
功能介绍
boolean add(E e ...
常用类的概述和使用
1. 常用的包(熟悉)1.1 包的名称和功能
java.lang包 : 该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。如:System类、String类、…
java.util包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类等。 如:Scanner类、Random类、List集合、…
java.io包 - 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类等。 如:FileInputStream类、FileOutputStream类、…
java.net包 - 该包是Java语言中的网络包,里面提供了大量网络编程相关的类等。 如:ServerSocket类、Socket类、…
java.sql 包 - 该包是Java语言中的数据包,里面提供了大量操作数据库的类和接口等。 如:DriverManager类、Connection接口、… … …
Java程序员在编程时可以使用大量类库,因此Java编程时需要记的很多,对编程能力本身要求不是 特别的高。
2. Object类的概述(重点)2.1 基本概念
java.lang ...
String类的概述和使用
1 String类的概念(重点)
java.lang.String类用于描述字符串,Java程序中所有的字符串字面值都可以使用该类的对象加以描 述,如:”abc”。
该类由final关键字修饰,表示该类不能被继承。 从jdk1.9开始该类的底层不使用char[]来存储数据,而是改成 byte[]加上编码标记,从而节约了一 些空间。
该类描述的字符串内容是个常量不可更改,因此可以被共享使用。
如:
String str1 = “abc”; - 其中”abc”这个字符串是个常量不可改变
str1 = “123”; - 将“123”字符串的地址赋值给变量str1。
改变str1的指向并没有改变指向的内容
2 常量池的概念(原理) 由于String类型描述的字符串内容是常量不可改变,因此Java虚拟机将首次出现的字符串放入常量 池中,若后续代码中出现了相同字符串内容则直接使用池中已有的字符串对象而无需申请内存及创建对 象,从而提高了性能。
3 常用的构造方法(练熟、记住)
方法声明
功能介绍
String()
使用 ...
可变字符串类和日期相关类
1. 可变字符串类(重点)1.1 基本概念
由于String类描述的字符串内容是个常量不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。
为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:”ab”。
StringBuffer类是从jdk1.0开始存在,属于线程安全的类,因此效率比较低。
StringBuilder类是从jdk1.5开始存在,属于非线程安全的类,效率比较高。
1.2 StringBuilder类常用的构造方法
方法声明
功能介绍
StringBuilder()
使用无参方式构造对象,容量为16
StringBuilder(int capacity)
根据参数指定的容量来构造对象,容量为参数指定大小
StringBuilder(String str)
根据参数指定的字符串来构造对象,容量为:16+字符串长度
1.3 StringBuilder类常用的成员方法
方法声明
功能介绍
in ...
HTML详解
1. HTML介绍&规范1.1 介绍HTML 指的是超文本标记/标签语言 (Hyper Text Markup Language)专门制作网页的计算机语言
普通的文本就是英文单词,英文字母一样的存在。超文本的意思是有一些单词或字母,在网页浏览器的世界中被赋予了特殊的权利。
比如:我们都是普通人,但是有些人经过国家的选拔,穿上警服之后,他就被赋予了执法的特殊权利,普通人是没有执法权的。字母img只是普通的字母,没什么特殊的含义。而被加上尖括号后,在网页的世界中,就具备了显示图片的作用。
1.2 使用记事本开发第一个网页在计算机任意的位置,创建一个空白的记事本
重点:文件的后缀名必须是 “htm” 或 “html”
鼠标右键文件,选择打开方式为”记事本”,输入下面代码
123456<html> <head> <title>Jasper</title> </head> <body>木瓜煲鸡脚</body> </html>
保存文件,双击文件会 ...

