使用策略模式,注意以下三个设计原则: 

1,找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
2,针对接口编程,而不是针对实现编程。
3,多用组合,少用继承。

定义:
【策略模式】定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

用正则表达式,主要看这个字符串是否为以下三种关键字组成:
负数符号,数字,小数点。
而且负数符号和小点数不允许出现多个。
满足上述条件按,则为数字,不满足,为判断为不是数字。

if (!(((val.matches("[0-9]+\\.[0-9]+") || val.matches("\\-[0-9]+\\.[0-9]+"))) || val.matches("[0-9]+") || val.matches("-[0-9]+"))) {
System.out.println("不是数字");
}else {
System.out.println("是数字");
}

根据原材料和制作方法,清酒可分为普通酒和特定名称酒两种。特定名称酒又可分为吟酿酒、纯米酒、本酿造酒三种:

  • 本酿造酒—加入少量酿造酒精来调节香气和味道。适合加热后饮用。
  • 纯米酒—单用米与米曲制造的酒,完全不添加酿造酒精。饮用时冷、热皆宜。
  • 吟酿酒—使用特别酵母,进行长期低温发酵的酒,有独特的香气与味道。一般不加热饮用。

如果再细分,共可分为八种:

特定名称使用原料精米含量要件
吟酿酒纯米大吟酿酒米、米曲50%以下吟酿制作;特有的香味、色泽极为良好。
大吟酿酒米、米曲、酿造酒精50%以下吟酿制作;特有的香味、色泽极为良好。
纯米吟酿酒米、米曲60%以下吟酿制作;特有的香味、色泽极为良好。
吟酿酒米、米曲、酿造酒精60%以下吟酿制作;特有的香味、色泽极为良好。
纯米酒特别纯米酒米、米曲60%以下香味、色泽极为良好。
纯米酒米、米曲70%以下香味、色泽极为良好。
本酿造酒特别本酿造酒米、米曲、酿造酒精60%以下香味、色泽极为良好。
本酿造酒米、米曲、酿造酒精70%以下香味、色泽极为良好。

/**
* Cobol to java Convertion FrameWork test Programe
* @version $Revision: 1.0 2009/11/14
* @author nec gaoyu
*
* 変更履歴
* NO   日付      担当者         対応種類          対応内容
* 01  2009/11/14 高 禹 仕様変更         IR-AA-T2-0052
*/

下面,我向大家推荐Cygwin。首先我简单介绍一下这个软件。


我个人及工作常用的操作系统是windows。有些时候,需要用到unix的一些命令和功能。以往,我通常的做法是安装一个虚拟机,在虚拟机上安装Unix或者Linux。但是那样往往很花时间。现在有了Cygwin了。这个只是很小的Unix的内核。可以很简单的安装在Windows上。可以使用Unix的命令。

常用命令比较好用。但是还是有一些命令还是不能很好的执行。比如上周我在测试一个JAVA程序的性能,用TIME的命令和循环方法反复调用看用了多少平均时间和咱用多少CPU的时间。程序的经过时间很好的测试出来了,但是CPU的使用时间却测试不出来。

我的猜测是在WINDOWS平台下,一些功能还是没很好的模拟出来。希望Cygwin改进的越来越好。当然,这只是在较小范围的使用中可以让你不用安装Unix而已。

浮点数值不适用于禁止出现舍入误差的金融计算中。例如,命令System.out.println(2.0-1.1)将打印出0.89999999999999,而不是人们希望的0.9。


出现这种问题的主要原因在于浮点数值是采用二进制系统表示的,而在二进制系统中无法精确的表示分数1/10。这就好像十进制无法精确的表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。

另一个问题:请尝试用Google检索599,999,999,999,999-599,999,999,999,998。

得到上面错误计算结果的原因与浮点运算有关。由于计算机的工作是采用二进制形式,它只能以近似的方法表达某个十进制实数,这个实数由一个整数或定点数(即尾数)乘以2的整数次幂得到。以双精度浮点运算为例,64位存储空间能表达的实数范围为-2^63+1到+2^63-1。64位中52位代表尾数(实际的数),11位代表指数(有多少个零)。Google的错误显示它的计算器实际使用的尾数比正常的52位尾数要少。

TechRadar举了一个例子来说明简单的计算,误差的累积如何演变成生死攸关的灾难。 1991年2月25日,海湾战争结束前三天,伊拉克发射了飞毛腿导弹袭击美国在沙特阿拉伯的飞机场。为了计算导弹将飞往何处,美军的爱国者导弹防御系统需要知道系统时间。在启动之后,系统是以0.1秒间隔储存数据。但不幸的是,0.1秒不能精确的表示成二进制数。因此在爱国者导弹系统使用的24位寄存器中它会溢出一个小数。在导弹攻击时,系统已运行了100小时,或3,600,000嘀嗒,微小的错误逐渐累积成0.3433秒的误差,这段时间内飞毛腿导弹可以飞行687米。爱国者的雷达指向了错误的方向,没有发现目标,因此没有发射导弹拦截,导致28人付出了生命。

1,$ java -verbose:gc <クラス名>


可以查看JAVA运行时是否发生了垃圾回收。
「GC」 : Scavenge GC
「Full GC」 : Full GC

2,-Xms<> -Xmx<>
可以指定JVM的堆栈大小。、
-Xms512m : 堆栈最小为512M。
Xmx512m : 堆栈最大为512M。

订阅: 博文 (Atom)