- 浏览: 22603 次
- 性别:
- 来自: 西安
最新评论
文章列表
设计模式---装饰者模式
- 博客分类:
- 设计模式
读书笔记-----------------------
装饰者模式:动态地将责任加到对象身上。如果要扩展功能,装饰者模式提供了比继承更有弹性的替代方案。
利用组合和委托可以在运行时实现继承行为的效果,动态地给对象加上新的行为。
...
设计模式---观察者模式
- 博客分类:
- 设计模式
读书笔记-----------------------
观察者模式:定义了对象之间的一对多依赖关系,当一个对象(主题对象)的状态改变时,它的所有依赖者(观察者对象)都会收到通知并自动更新。
观察者模式实现了主题对象与观察者对象之间的松耦合,当有新的观察者时,无需修改主题对象的代码,只需要新的观察者对象实现接口。在程序运行的过程中,可以随时注册和删除观察者而不影响主体对象。
软件设计原则1:努力在交互对象之间实现松耦合,使它们之间的互相依赖降到最低,从而提高可复用性。
Java内置了对观察者模式的支持:java.util.Observable类和java.util ...
设计模式---策略模式
- 博客分类:
- 设计模式
读书笔记-----------------------
策略模式:定义一组算法族,分别封装起来,让各个算法之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
面向对象(OO)的四个基本概念是:抽象、封装、继承、多态。
继承的好处是实现了代码的复用。
软件设计原则1:多用组合,少用继承。使用组合的方式可以实现代码的分割,使代码有更大的弹性,更好地提高了复用性。
软件设计原则2:封装变化--把软件中那些在将来可能产生变化的地方独立出来,与其他部分分割以减少变化时对它们的影响。这样的设计可以使系统变得有弹性,更好地应对变化。
软件设计原则3:针对接口 ...
1 java.util.concurrent.locks.Lock 5.0
boolean tryLock()尝试获得锁而没有发生阻塞;若成功返回真。
2 若是很多线程从一个数据结构读取数据而很少线程修改其中数据的话,读写锁是很有用的。它允许读者线程共享访问,当然写线程依然必须互斥访问。
下面是一个读写锁的必要步骤:
构造一个ReentrantReadWriteLock对象:
private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
抽取读锁和写锁:
private Lock readLock = ...
1 线程与进程的本质区别:每个进程拥有自己的一整套变量,而线程共享数据。这使得线程间通信更有效,容易。
2 java.lang.Thread 1.0
static void sleep(long millis) 休眠给定的毫秒数
3 Runnable接口中只有一个方法:run()
4 实现线程有两种方式;实现Runnable接口或是继承Thread(此方式目前已不推荐)。
5 线程简单示例:
class MyRunnable implements Runnable{
public void run(){
task code
}
}
MyRunnabl ...
java数据库编程
- 博客分类:
- postgreSQL
1 下载安装postgreSQL
地址:http://www.postgresql.org/download/
在postgreSQL上可以通过可视化工具生成及处理数据;也可以通过sql语句来实现。
2 生成porperties文件,若是不用这个文件,就需要将信息写在代码中。但是有这个文件会更好,将配置的信息写在此,有更好的可读性。
database.properties:
jdbc.drivers=org.postgresql.Driverjdbc.url=jdbc:postgresql://127.0.0.1:5432/postgresjdb ...
以最简单的dom方式为例:
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RESULT>
<VALUE>
<NO>5015</NO>
<NAME>洋仔</NAME>
</VALUE>
<VALUE>
<NO>5016</NO>
...
DOM是Document Object Model文档对象模型的缩写。
DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。
DOM是以层次结构组织的节点或信息片断的集合。
对于特别大的文档,解析和加载整个文档可 ...
什么是 WSDL?
WSDL 指网络服务描述语言。
WSDL 使用 XML 编写。
WSDL 用于描述网络服务。
WSDL 也可用于定位网络服务。
WSDL 还不是 W3C 标准。
WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。
WSDL文档仅仅是一个简单的 XML 文档。
WSDL包含一系列描述某个 web service 的定义。
WSDL 文档是利用这些主要的元素来描述某个 web service 的:
XML 指可扩展标记语言(EXtensible Markup Language。
XML 是一种标记语言,很类似 HTML。
XML 的设计宗旨是传输数据,而非显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐 ...
简要概述:每一个元素是其上面和左上的元素之和。
形如:
1
1 1
1 2 1
1 3 3 1
.....
代码实现:
import java.util.Scanner;
public class Test {
// 方式1:使用二维数组
public static void printYang1(int n) {
int[][] a = new int[n][n];
a[0][0] = 1;
System.out.println(a[0][0]);
for (int r = 1; r < n; r++) {
...
简要概述:
根据递推策略设计辗转相除法:a,b的最大公约数,也是a%b的约数。以此方法递推,直到余数为0
代码实现:
import java.util.Scanner;
public class Test{
//最大公约数
public static int yue(int n,int m){
if(n==0||m==0)
return 0;
if(n<m){
int temp = n;
n = m;
m = temp;
}
int r = n%m;
while(r!=0){
...
简要描述:
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)
代码实现:
import java.util.Scanner;
public class Test{
public static int Fibo1(int n){
//使用数组
int[] a = new int[n];
a[0]=a[1]=1;
for(int t = 2;t<n;t++)
a[t ...
简要描述:
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。
时间复杂度为O(n^2)。因此插入排序不适用于数据量比较大时候的排序。
代码实现:
import java.util.Arrays;
public class Test {
//原地插入排序,由小到大。
public static void insertSort(int[] a){
int index=0;
for(int i = 1;i<a.length;i++){
if(a[i] < a[i-1]){//1
for(int t ...
SOAP
关键词:
简单对象访问协议,XML,HTTP,简单,可扩展,平台无关,编程语言无关,厂商无关。
可在w3school上学习,有专门的章节。http://www.w3school.com.cn/soap/
-------------------------------简单介绍------------------------------------------------
简单对象访问协议(Simple Object Access Protocol,SOAP)。
一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构 ...