2007-09-28 12:17作者:doublel出处:论坛整理责任编辑:方舟
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。
理解抽象类
abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢?
在 面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是 所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘 ......
1
、安装
jdk
(含
jre
、
plugin
)
。打开终端输入如下命令,
//
(包含
//
)是对命令的说明,不需要输入。
sudo apt-get install sun-java6-jdk
//
管理员身份从互联网下载安装安装
jdk1.6
。安装过程中需要你回答是否同意使用协议(红蓝色的提示界面)
,
此时按
tab
键至
OK
或
YES
,再按回车即可正常安装
sudo apt-get install sun-java6-plugin
//
安装
firefox
等插件
sudo update-alternatives --config java
//
配置
java
到
/etc/alternatives
。
//
如果没有网络或从
sun
下载最新的最新的进行手动安装
jdk
,安装成功后还需要设置
,
如使用
sudo update-alternatives --install /usr/bin/java java jdk
安装目录
/bin/java
或
ln -s jdk
安装目录
/bin/java -d /etc/alterna ......
(1) Jbuilder:一个可视的Java编程工具。
(2) Eclipse:一个强大的Java编程工具。
(3) HSQLDB:是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。
(4) Mckoi DataBase:是由纯Java开发的数据库。
(5) ArgoUML:使用Java编写的开源UML产品。
(6) Columba:是基于Java的E-mail客户端。
(7) FreeCol:一个Java开发的游戏,是殖民帝国的一个开源版本。它是一个类似于策略游戏《文明》需要玩家征服新的版图。
1.Runtime.getRuntime().maxMemory()
得到虚拟机可以控制的最大内存数量。
2.Runtime.getRuntime().totalMemory()
得到虚拟机当前已使用的内存数量。
(1)虚拟机可以控制的最大内存数量竟然只有63MB,也就是说,稍微不留神就会发生内存溢出。
(2)在不断地向String中追加字符的情况下,所占用的内存在不断的增长 ......
首先探讨一下为什么要使用nginx:
1、类似于apache+resin,nginx用于提供静态页面服务,比java服务器要强。虽然这些java服务器的性能都不赖,tomcat新版甚至还支持了epoll,但是用nginx来处理静态文件是一定比这些服务器更稳妥并更快速的。
2、nginx在配合java应用服务器时相比apache耦合度更低,所以它可以用相同的方式连上所有能支持http服务能力的java应用服务器,无论是tomcat、resin、weblogic、jetty、websphere……,并且可以轻易地将一个应用同时连接不相同的服务器。譬如一台跑tomcat,一台跑resin,这一点在切换或测试生产环境时非常有用。另外耦合度的降低,将使nginx和这些服务器之间的相互影响降到最低,这样两者就能各尽其责,apache一般是采用一个模块来和java应用服务器打交道,这个模块是会对apache的运行或多或少产生影响的,nginx告诉我们这些模块是多么的鸡肋,java服务器要不就往fastcgi协议支持方面发展会更好。
3、nginx的一些特性可以保住脆弱的java服务器。其中可以点名的:1是可细致定制的负载均衡策略;2是超强的故障屏蔽功能可以做到不遗漏任何一个请求;3是客户端连接的异步处理;4是比java服务器强上百倍的负荷能力。
综合这些 ......
Java代码 < width="14" height="15" src="/javascripts/syntaxhighlighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflashplayer">
//看当前使用的是哪个数据库
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
如果你还没选择任何数据库,结果是NULL。
Java代码 < width="14" height="15" src="/javascripts/syntaxhighlighter/clipboard_new.swf" pluginspage="http://www.macromedia.com/go/getflashplayer">
//查看有哪些数据库
mysql> show DATABASE;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test &nb ......
今晚试了一下Python自带的单元测试,主要是参考了Python单元测试框架
的有关资料,折腾了一个小时左右,总算在Eric 4通过的几个简单的单元测试。在这里将所得的相关知识记录下来,方便将来查询。
python自带的单元测试模块是unittest,从2.1以后为标准库的一部分
1、测试模块import unittest
2、从unittest.TestCase派生自己的测试类
3、在测试类中定义 runTest方法,在该方法中编写测试语句,并用断言判断测试是否通过。
4、使用unittest模块的main()方法可以将测试模块变成可运行的脚本,通过下列语句,可以在命令行直接运行测试模块
if __name__ == "__main__":
unittest.main()
测试结果将输出到标准输出。
5、在Eric 4中,选择‘单元测试’->‘单元测试’->选择测试模块->点'开始',运行指定的测试模块。通过的和失败的测试将分别在不同的列表中列出,同同时会用不同的颜色表示测试的结果。
......