JAVA线程之一:实现一个线程的两种方法
Java通过java.lang.Thread类完成多线程。我们通过同一个例子,看线程的两种创建方法,以及运行方法:
(1)一种是声明 Thread 的子类,重载 Thread 类的方法 run(Extend java.lang.Thread and override the run method)
public class MyThread extends Thread
{
public void run()
{//因为缺省的run()方法什么都不做,你必须重载run()以完成有用的工作。
for (int count = 1, row = 1; row < 20; row++, count++)
{
for (int i = 0; i < count; i++)
System.out.print('*');
System.out.print('\n');
}
}
}
public static void main(String[] args)
{
MyThread mt = new MyThread();//A方法执行
mt.start();//A
Thread myThread = new Thread(new MyThread());//B方法执行
myThread.start();//B
for (int i = 0; i < 500; i++)
{
System.out.println(i);
}
}
(2)另一种途径是声明一个类,该类实现 Runnable 接口。然后再实现方法 run。
(Implement java.lang.Runnable and implement the run method)
public class MyThread implements Runnable
{
public void run()
{
for (int count = 1, ro
相关文档:
JNI工作原理
在JNI中,本地函数是通过一个独立的.c或.cpp文件来实现的(C++为JNI提供的界面会更简洁一些)。当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:
JNIEXPORT void JNICALL Java_ClassName_MethodName
(JNIEnv *env, jobjectobj)
{
......
1.局部变量在使用的时候必须已经被初始化
2.byte b=2,e=3
byte c=b+c; 会编译不通过,应为b+c会自动 类型提升位int 如果想得到 byte c 必须强制转型 byte c=(byte)b+c;
3.f ......
客户端:
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.awt.*;
public class ClientPoint extends JFrame implements ActionListener,KeyListener{
static int SERVERPORT=8088;
sta ......
Java Arrays中提供了对所有类型的排序。其中主要分为primitive和Object两大类,分别使用了快速排序与合并排序。本章以int[] 的排序,讲解Java对primitive排序。
首先大家要了解什么是快速排序,它有什么优点,这些我就不累述了,给出地址。http://zh.wikipedia.org/zh/%E5%BF%AB%E9 ......