易截截图软件、单文件、免安装、纯绿色、仅160KB

一个简单的Java仿真程序

这是一个简单的仿真程序:
在这个仿真程序中,花园委员会都希望了解每天通过大门进入公园的总人数.每个大门都有一个十字
转门或某种其他形式的计数器,并且任何一个十字转门的计数器递增时,就表示公园中的总人数的共享
计数值也会递增
package OrnamentalGarden;
import java.util.Random;
/**
* 这里使用单个的Count对象来跟踪花园的参观者的计算值,并且将其当做是Entrance类中的一个静态域进行访问
* @author 泉
*
*/
public class Count {
private int count = 0;
private Random rand = new Random(47);

public synchronized int increment() {
int temp = count;
if(rand.nextBoolean()) //这里使用了Random的对象,目的是把从count读取到temp中,到递增,temp并把
Thread.yield(); //其存储回count的这段时间里,有大约一半的时间产生让步.
return (count = ++ temp);
}

public synchronized int value() {
return count++;
}

}
----------------------------------------------------------
package OrnamentalGarden;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class Entrance implements Runnable {
private static Count count = new Count();
private static List<Entrance> entrances = new ArrayList<Entrance>();
private int number = 0;
private final int id;
private static volatile boolean canceled = false;

public Entrance(int id) {
this.id = id;
entrances.add(this);
}

public static void cancel() {
canceled = true;
}

public void run() {

while(!canceled) {
//同步控制块
synchronized (this) {
++ number;
}
System.out.println(this + "Total: "+count.increment());
try {
TimeUnit.MICROSECONDS.sleep(100);
}catch(InterruptedException e) {
System.out.println("sleep interrupted !! ");
}
}
System.out.println("Stopping "+this);
}

public synchronized int getValue() {

return number;
}

public static int getTotalCount() {

return count.value();
}

public static int sumEntrances() {

int sum = 0;
for(En


相关文档:

Java NIO API详解

 
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......

初学Java 瞎写一道 一切都是浮云


import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Test {
 /**
  * @作者QQ:351828554 2009/12/01 星期二
     version:1.0
  */
 public static void main(String[] args) {
        new encry ......

Java打包成可执行文件步骤详解

核心思想:把含main方法的入口类添加到MANIFEST.MF文件中。
步骤:
假设有两个类文件要打包,它们分别属于不同的package。
package com.test.jar;   
import java.awt.*;   
import javax.swing.*;   
public class Jar extends JFrame   
{  ......

JAVA中防止SQL注入攻击类的源代码

JAVA-字符串过滤类
package cn.com.hbivt.util;
/**
* Title:
*
* Description:
*
* Copyright: Copyright (c) 2005
*
* Company:
*
* @author not attributable
* @version 1.0
*/
public class StringUtils {
   ......

JAVA读取Properties文件的六种方法

 
使用J2SEAPI读取Properties文件的六种方法
  1。使用java.util.Properties类的load()方法示例:InputStream in=lnew BufferedInputStream(new FileInputStream(name));
properties p=newProperties(); p.load(in);
  2。使用java.util.ResourceBundle类的getBundle()方法示例:ResourceBundle rb=ResourceBu ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号