安装完Ubuntu8.1之后,如果想要开发或运行Java程序,就需要安装JDK或JRE。下面就介绍一种最为简便的在Ubuntu中安装JDK
的方法。
众所周知,Sun公司对于Linux下的的JDK安装控制是相当严格:(1)预编译成二进制的JDK包是需要取得Sun公司授权的;(2)Sun公
司有自己的Unix操作系统。或许是因为这两点原因,目前在Linux或Unix系统中安装JDK要比Windows中安装JDK复杂许多。通常许多安装
方法都是需要先去Sun公司的Java页面上下载JDK包,再编译安装。
在Ubuntu中,安装JDK也有很多方法。下面介绍一种比较简单的方法:
(1)使用apt-get命令安装:
sudo apt-get install sun-java6-jdk
如果能够很顺利安装完成。那么恭喜你,运气不错。但是,你很有可能会遇到如下错误:“E: Couldn't find
package sun-java6-jdk
”。那么你需要首先更新apt-get的源,换句话说,就是更新软件的版本信息。在更新之
前,最好修改一下/etc/apt/sources.list,因为如果是在国内上网的Ubuntu,总是去连接国外的服务器,会比较慢。可以先备份原来
的sources.list:
sudo cp /etc/apt/sources.list
/etc/apt/sources.list.bak
然后修改sources.list:
sudo gedit /etc/apt/sou ......
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。
实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。
对于此模型,应该明确一下几点:
1、生产者仅仅在仓储未满时候生产,仓满则停止生产。
2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。
3、当消费者发现仓储没产品可消费时候会通知生产者生产。
4、生产者在生产出可消费产品时候,应该通知等待的消费者去消费。
此模型将要结合java.lang.Object的wait与notify、notifyAll方法来实现以上的需求。这是非常重要的。
/**
* Java线程:并发协作-生产者消费者模型
*/
public class Test {
public static void main(String[] args) {
Godown godown = new Godown(30);
Consumer c1 = new Consumer(50, godown);
Consumer c2 = new Consumer(20, godown);
Consumer c3 = new Consumer(30, godown);
Producer p1 = new Producer(10, godown);
......
红色字体为主要代码
jsp页面中
<script language="javascript">
function updateDB(operate){
var objDom=new ActiveXObject("msxml.DomDocument");
var objRoot=objDom.createElement("All");
objDom.appendChild(objRoot);
var k=document.getElementsByName("check"); //选择框
for(var i=0;i<k.length;i++){
if(k[i].checked){ //将选择的数据组合成xml格式的数据
var currentRow=k[i].parentNode.parentNode;
var obj=objDom.createElement("Good");
objRoot.appendChild(obj);
var objNode=objDom.createElement("xl_id");
&nb ......
红色字体为主要代码
jsp页面中
<script language="javascript">
function updateDB(operate){
var objDom=new ActiveXObject("msxml.DomDocument");
var objRoot=objDom.createElement("All");
objDom.appendChild(objRoot);
var k=document.getElementsByName("check"); //选择框
for(var i=0;i<k.length;i++){
if(k[i].checked){ //将选择的数据组合成xml格式的数据
var currentRow=k[i].parentNode.parentNode;
var obj=objDom.createElement("Good");
objRoot.appendChild(obj);
var objNode=objDom.createElement("xl_id");
&nb ......
红色字体为主要代码
jsp页面中
<script language="javascript">
function updateDB(operate){
var objDom=new ActiveXObject("msxml.DomDocument");
var objRoot=objDom.createElement("All");
objDom.appendChild(objRoot);
var k=document.getElementsByName("check"); //选择框
for(var i=0;i<k.length;i++){
if(k[i].checked){ //将选择的数据组合成xml格式的数据
var currentRow=k[i].parentNode.parentNode;
var obj=objDom.createElement("Good");
objRoot.appendChild(obj);
var objNode=objDom.createElement("xl_id");
&nb ......
产品下载http://www.fastunit.com/download/download.html 格式
大小(bytes)
发布日期 FastUnit 2.9 普及版*
zip
16,707,279 / 15.9M
2010-05-18
点击下载 《FastUnit开发手册》
pdf
1,716,405 / 1.63M
2010-05-13
点击下载 《FastUnit管理手册》
pdf
300,118 / 293K
2010-05-13
点击下载 《API参考》(javadoc)
html
440,752 / 430K
2010-05-13
点击下载 FastUnit 2.9 普及版*:
1、普及版下载包中附带了开发许可证,使用期限为2011-12-31,参见许可证说明;
2、简单安装方式:解压,fastunit和fastunithome目录置于D盘,将fastunit路径部署为应用根路径即可。详细安装及应用定制参见《FastUnit开发手册》。 FastUnit 2.9 新增部分特性: 工作流系统 增加计划、多语言等组件 全面采用W3C标准:XHTML 1.0 Frameset 增加$Q表达式、格式器、虚拟字段、固定布局等功能 。。。
FastUnit 2.7.2 新增部分特性: 增加元素“联动下拉”、“进度条” 组件管理中,表和单元增加若干功能和属性 导出接口增加定制方法 增加Session自动清除机制 单元、 ......
Java5中提供了新的注释(Annotation),能够为类提供额外信息,本文介绍了如何定义注释、如何使用注释和如何解析注释。
1、定义注释
package ch5;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 注释什么时候起作用包括两种:RetentionPolicy.RUNTIME(编译并且在运行的时候可以找到),
// RetentionPolicy.SOURCE(编译的时候将被忽略)
@Retention(RetentionPolicy.RUNTIME)
// Target指出注释使用的地方:类或者接口上(ElementType.TYPE),
// 方法上(ElementType.METHOD),
// 属性上(ElementType.FIELD)
@Target({ElementType.TYPE})
public @interface Table {
String name();
}
2、使用注释
package ch5;
@Table(name = "user")
public class UserBean {
private String id;
private String name;
}
3、解析注释
package ch5;
import java.lang.annotation.Annotation;
public class UserManger {
private UserBean user;
public static void main(String[] args) {
&nb ......
Java中提供了Class类,可以通过Class类获取类的定义信息,包括包名、类名、类上的注释(Annotation)、类的修饰符、父类、继承的接口、构造方法、成员变量和成员方法。这些信息分别使用java.lang.annotation.Annotation、 java.lang.reflect.Constructor、java.lang.reflect.Field、java.lang.reflect.Method、java.lang.reflect.Modifier来表示。可以动态调用方法和属性。下面的例子展示了基本用法。
package ch5;
import static java.lang.System.out;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class ClassInfo {
public static void main(String args[]){
Class c=String.class;
// 1、得到所有方法
Method[] methods = c.getMethods();
// 2、得到某个方法
try{
// 第一个参数是方法的名字,后面的参数是参数的类型
Method find = c.getMethod("index ......