- 浏览: 99676 次
- 性别:
- 来自: 济南
最新评论
-
wenxiang_tune:
很好 谢谢LZ 正在找这个demo
不错的java图表制作插件ChartDirector -
huangpengxiao:
...
学习JPetStore(未完待续) -
liangwenzheng:
多谢分享
日期控件 -
wangfengxia:
帮了很大的忙谢谢
在eclipse中使用weblogic服务器的配置方法 -
longxiutmm:
<div class='quote_title'> ...
eclipse中改变特定类型文件的编码格式
文章列表
插入排序算法J#
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插 ...
- 2012-10-25 16:29
- 浏览 643
- 评论(0)
package sort;import java.util.Random;
public class SortTest {/*** 随即生成数组的方法 Random** @param args*/public int[] createArray() {Random random = new Random();int[] array = new int[1000];for (int i = 0; i < 1000; i++) {array[i] = random.nextInt(100) - random.nextInt(100);// 生成两个随机数相减,保证生成的数中有负数}Syste ...
- 2012-10-25 15:51
- 浏览 686
- 评论(0)
另一种经典的交换排序是快速排序,快速排序的效率很高,但是空间复杂度较大,因为快速排序使用了递归,而递归的实现需要一个栈。快速排序的算法思想是:(假设数据存放在数组a[n]中)
1.如果待比较的数组长度为0或者1,则不用比较,直接返回。
2.如果待比较的数组长度大于1,则随机的选择一个中枢值(centrum),然后分别从数组的两端开始遍历,并且把从左边遍历找到的大于centrum的元素和从右边遍历找到的小于centrum的元素进行交换,直到数组遍历完毕(即:左边遍历指针指向的索引大于或等于右边遍历指针指向的索引)。
3.交换中枢元素和右边遍历指针指向的元素,这样原来的数组以中枢元 ...
- 2012-10-24 10:50
- 浏览 342
- 评论(0)
开放封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
对于扩展是开放的
对于修改是封闭的无论模块是多么的封闭,都会存在一些无法与之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。
等到发生变化时立即采取行动。
在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。
面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
我们希望的是在开发工作展开不久就知道可能发生的变化。查明可能发生的变化所等待的时间越 ...
- 2012-10-23 18:02
- 浏览 650
- 评论(0)
单一职责原则SRP
就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离ASD
如果你能够想到多余一个的动机去改变一个类,那么这个类就具有多余一个的职责,就应该考虑类的职责分离。
- 2012-10-23 17:44
- 浏览 637
- 评论(0)
面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。
收费对象生成工厂
策略模式strategy:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。
商场收银时如何促销,用打折还是返利,其实都是一些算法,用工厂来生成算法对象,这没有错,但是算法本身只是一种策略,最重要的是这些算法是随时都可能互相替换的,这就是变化点,二封装变化点是我们面向对象的一种很重要的思维方式。
策略模式解析
策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现 ...
- 2012-10-23 15:09
- 浏览 735
- 评论(0)
通过封装、继承、多态把程序的耦合度降低
用设计模式使得程序更加的灵活,容易修改,并且易于复用如果去实例化对象的问题,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。
简单工厂:将实例化具体的对象的过程由客户端转移到工厂类中完成。
UML图、
继承类用空心三角形+实现表示
实现接口用空心三角形+虚线表示
当一个类知道另一个类时,可以用关联association,关联关系用实线箭头来表示。
聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+实线箭头来表示。
组合composition是一种强的拥有关系,体现了严格的 ...
- 2012-10-23 14:02
- 浏览 630
- 评论(0)
/**
*
* 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子
* 假如兔子都不死,问每个月的兔子总数为多少?
* 斐波那契数列,没一个值都等于前两个值之和
* @author gKF46762
*
*/
public class Rabbit
{public static void main(String[] args){ //getRabbit(24);
//method1for(int i=1;i<=24;i++)
//method2 推荐使用第二种方法{System.out.println(" ...
- 2012-10-23 10:02
- 浏览 996
- 评论(0)
题目:判断101-200 之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数
public class Sushu {
public static void main(String[] args) {isSu(101,200);}public static void isSu(int begin, int end) {for (int i = begin; i <= end; i++) {boolean b = false;for (int j = 2; j < i; j++) ...
- 2012-10-23 09:41
- 浏览 778
- 评论(0)
public class KuoHao {public static void main(String[] args) {System.out.println(isCorrect("a+((d+d)"));System.out.println(isCorrect("a*6-(c+d)"));}public static boolean isCorrect(String reg) {byte[] bytes = reg.getBytes();int left = 0;int right = 0;for (int i = 0; i < bytes.len ...
- 2012-10-22 17:36
- 浏览 774
- 评论(0)
public class Duichengshu {public static void main(String[] args){Boolean isOK1 = isDCNumber(3);Boolean isOK2 = isDCNumber(2332);Boolean isOK3 = isDCNumber(34143);Boolean isOK4 = isDCNumber(341243);}public static boolean isDCNumber(int number){String numStr = String.valueOf(number);if(numStr.length()= ...
- 2012-10-22 17:26
- 浏览 913
- 评论(0)
请编写程序打印下列图案: *********
*******
*****
***
*
public class PrintStart {
public static void main(String[] args)
{
int column = 9;
for(int i=0;i<column for k=& ...
请编写程序打印下列图案: *********
******* *****
***
*
public class PrintStart {public static void main(String[] args){
int column = 9;for(int i=0;i<column;i++){for(int k=0;k<i;k ...
- 2012-10-22 16:45
- 浏览 1011
- 评论(0)