Developing Games in Java(部分)
原文来自于《Developing Games in Java》,作者:David Brackeen, Bret Barker, Laurence Vanhelsuwé
Java在设计时充分考虑了线程,因此在Java中线程的操作比其他语言要简单。只需生成一个Thread类的实例便可创建一个线程,然后调用start()方法线程就启动了。
Thread myThread=new Thread();
myThread.start();
当然,这段代码没有任何实际意义,因为该线程中没有包含任何任务。Java虚拟机创建一个新的系统线程后,便启动该线程,然后Thread对象的run()方法被调用。默认情况下,run()方法不做任何工作,因此,线程便随即停止。
如果想让线程完成某项任务,在run()方法中添加相应代码即可。有三种基本的方法可以实现这一操作:
1,继承扩展Thread类
2,实现Runnable接口
3,使用匿名内部类
继承扩展Thread类
给线程分配任务的一个快捷的方法是继承扩展Thread类,并重写run()方法:
public class MyThread extends Thread {
public void run() {
System.out.println("Do something cool here.");
}
}
然后创建和启动线程:
Thread myThread = new MyThread();
myThread.start();
现在有两个线程正在运行:main主线程和你刚才启动的那个线程。
实现Runnable接口
继承扩展Thread线程固然简单,但大多数情况下你可能只是想启动一个线程而并非重新编写类。例如:有一个类已经继承扩展了其他类,但你仍希望将它作为一个线程。在这种情况下只有实现Runnable接口:
public class MyClass extends SomeOtherClass implements Runnable {
public MyClass() {
Thread thread = new Thread(this);
thread.start();
}
public void run() {
&n
相关文档:
请参见上一篇文章,登录MSN协议
具体Java实现:
命令序列:<<代表发送,>>代表结果
1.连接DS(Dispatcher Server),得到NS(Notification Server)
<<VER 1 MSNP18 CVR0
>>VER 1 MSNP18
<<CVR 2 0x0804 winnt 5.1 i386 MSNMSGR 14.0.8089.0726 msmsgs yourAccount
>>CVR 2 14.0.8089 ......
在java编程思想中对synchronized的一点解释:
1、synchronized关键字的作用域有二种:
1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个 ......
最近看到一个有意思的树形结构,为每个节点添加了lft
和
rgt
两个属性。这样查找该节点的子节点、
查找该节点所有父节点,就不用去递归查询,只需要用
between
、
and
语句就可以实现。下面以创建一个栏目树为例,以下是我的理解。
一般来讲,我们创建栏目树的时候,大多只需要一个外键parentid
来区分该节点 ......
1.将Int,Float,Double,Long转换为String
String s = ""+i;
String s = String.valueOf(i);
String s = Integer.toString(i);
第一种方法:s = ""+i; //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象
第三种方法:效率最高?
2.将String转换为In ......