有人反映看不到源码,发现是CSDN的代码控件有问题。希望CSDN好好改进一下。
暂时先以文本方式发布出来,格式会变样。
import java.util.LinkedList;
public class ProducerConsumer
{
/**
* @param args
*/
public static void main(String[] args)
{
Queue queue = new Queue();
Producer producer1 = new Producer(queue, "producer1");
Producer producer2 = new Producer(queue, "producer2");
Consumer consumer1 = new Consumer(queue, "consumer1");
Consumer consumer2 = new Consumer(queue, "consumer2");
Consumer consumer3 = new Consumer(queue, "consumer3");
producer1.start();
producer2.start();
consumer1.start();
consumer2.start();
consumer3.start();
}
}
class Message
{
public static int sno = 0;
public int id = 0;
public String content = null;
......
转自 http://blog.csdn.net/foamflower/archive/2009/10/29/4744862.aspx
像移动网关一样,iisforward这个ISAPI过滤器也会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()
是无法取到真正的客户IP的。
实际的iisforward附加头如下:
WL-Proxy-Client-IP=211.161.1.239
Proxy-Client-IP=211.161.1.239
X-Forwarded-For=211.161.1.239
WL-Proxy-Client-Keysize=
WL-Proxy-Client-Secretkeysize=
X-WebLogic-Request-ClusterInfo=true
X-WebLogic-KeepAliveSecs=30
X-WebLogic-Force-JVMID=-327089098
WL-Proxy-SSL=false
综上,正确作法如下:
private String getIpAddr() {
String ipAddress = null;
//ipAddress = this.getRequest().getRemoteAddr();
ipAddress = this.getRequest().getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = this.getRequ ......
String 与 StringBuffer区别:
String字符串对象是不可变的;StringBuffer是变长和可写的动态字符序列,可以自动地增加空间。
Integer var = new Integer();//有语法错误
Integer var = new Integer(2);//是对的
java的Vector成员是要用elementAt(i)成员函数来获得的,不能用ve[i]得到。
Vector::public Enumeration<E> elements() 返回此向量的组件的枚举。
Vector v = new Vector();
v.add("aaaaaaaa");
v.add("bbbbbbbbbbbb");
for (Enumeration e = v.elements(); e.hasMoreElements();)
{
System.out.println(e.nextElement());
}
//输出
//aaaaaaaa
//bbbbbbbbbbbb
byte类型是有带符号的,即有正负的,是一个字节的,char是两个字节,无正负的,char c = 'a'; ......
import java.io.*;
class FileTest
{
public static void main(String[] args) throws Exception
{
//File f=new File("1.txt");
//f.createNewFile();
//f.mkdir();
//File f=new File("E:\\JavaLesson\\Lesson7\\1.txt");//在Windows系统下,用绝对路径下创建文件,用\\,\+字母是用于
转义字符
//f.createNewFile();
//线程睡眠三秒钟
File fDir=new File(File.separator);
String strFile="JavaLesson"+File.separator+"Lesson6";
File f=new File(fDir,strFile);
String[] names=f.list(new FilenameFilter()//得到以上文件夹下所有的文件名和目录名,存储在names数组中
//接口还可以这样实现
{
public boolean accept(File dir,String name)
{
return name.indexOf(".java")!=-1;
}
});
for(int i=0;i<names.length;i++)
{
& ......
String 与 StringBuffer区别:
String字符串对象是不可变的;StringBuffer是变长和可写的动态字符序列,可以自动地增加空间。
Integer var = new Integer();//有语法错误
Integer var = new Integer(2);//是对的
java的Vector成员是要用elementAt(i)成员函数来获得的,不能用ve[i]得到。
Vector::public Enumeration<E> elements() 返回此向量的组件的枚举。
Vector v = new Vector();
v.add("aaaaaaaa");
v.add("bbbbbbbbbbbb");
for (Enumeration e = v.elements(); e.hasMoreElements();)
{
System.out.println(e.nextElement());
}
//输出
//aaaaaaaa
//bbbbbbbbbbbb
接口的实现:FilenameFilter是接口
String[] names=f.list(new FilenameFilter()//得到以上文件夹下所有的文件名和目录名,存储在names数组中
{
public boolean accept(File dir,String name)
{
return name.indexOf(".java")!=-1;
}
});
getClass().getName();
java中,子 ......
本文分两部分:FLASH编程 和 Java编程,此文记录的仅仅是我在探索中的一些收获,其中用了很多个人化的描述语言,并不是业界标准的用语。 :)
探索笔记:
目前国内Flash应用大部分还是在制作精美的动画方面,但据我了解早在Flash4 的时代,国外一些人就已经开始将flash技术运用于开发动态网站(和php、asp、jsp结合)和开发应用程序(象网络游戏、远程管理等应用软件)的项目中了。而直到今日,这方面在国内发展还是比较缓慢(有一部分原因是少数人掌握了关键技术,但不愿意共享出来)。因此,我将致力于推动国内flash技术在开发动态网站和开发应用程序方面的发展,并将自己亲手写的代码公布到网络中,以便于大家共享、交流。
涉及到的知识范畴:
1. socket概念
2. java编程语言
3. Flash MX ActionScript中的XMLSocket
实时网络游戏也属于大型应用程序范畴,一个关键环节就是建立实时主动通信环境(相对的,有个称为被动通。信的方式,最好的例子就是你正在用IE浏览器浏览一个网站,此时浏览器和服务器之间就是被动通信方式:如果你不点击一个连接,发送一个WEB页面请求到WEB服务器,WEB服务器是不会主动向你的浏览器发送任何页面的)。在此S ......