|
Posted on 2007-10-09 00:25 Java蜘蛛人 --郑成桥 阅读(380) 评论(0) 编辑 收藏
简单的概括下多线程的用法
多线程
class NewThread implements Runnable
{
Thread t;
NewThread()
{
t=new Thread(this);
System.out.println ("NewTread 启动了啊");
t.setPriority(3);
t.start();
}
public void run()
{
try
{
for(int i=5;i>0;i--)
System.out.println ("NewThread:"+i);
Thread.sleep(500);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class Test2 extends Thread
{
Thread t;
Test2()
{
t=new Thread(this);
System.out.println ("Test启动了");
t.setPriority(4);
t.start();
}
public void run()
{
try
{
for(int i=5;i>0;i--)
System.out.println ("Test2::"+i);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public class ThreadDemo implements Runnable
{
Thread a;
ThreadDemo()
{
a=new Thread(this);
System.out.println ("执行到main外");
a.setPriority(5);
a.start();
}
static int aa=0;
public void run()
{
try
{
System.out.println ("main::开始了啊");
for(int i=5;i>0;i--)
System.out.println ("main:"+i);
if(aa++==2)
a.yield();a.sleep(1000);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main (String[] args)
{
new NewThread();
new Test2();
new ThreadDemo();
}
}
对象流的存储。。。
import java.util.*;
import java.io.*;
public class ObjectFileTest
{
public static void main (String[] args)
{
Manager boss=new Manager("xiaoqiao",80000,2008,05,06);
boss.setBoss(5000);
System.out.println (boss);
Employee [] staff=new Employee[3];
staff[0]=boss;
staff[1]=new Employee("xiongdi",8,2007,05,06);
staff[2]=new Employee("asd",1000,2004,05,06);
try
{
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("zcq.doc"));
out.writeObject(staff);
out.close();
ObjectInputStream in=new ObjectInputStream(new FileInputStream("zcq.doc"));
Employee[] newStaff=(Employee[])in.readObject();
in.close();
for(Employee e:newStaff)
System.out.println (e);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class Employee implements Serializable
{
private String name;
private double salary;
private Date hireDay;
public Employee()
{
}
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public String toString()
{
return "name:"+name
+" salary:"+salary
+" 时间是:"+hireDay;
}
}
class Manager extends Employee
{
private double bouss;
public Manager(String n,double s,int year,int month,int day)
{
super(n,s,year,month,day);
}
public double getSalary()
{
double aa=super.getSalary();
return aa+bouss;
}
public void setBoss(double b)
{
bouss=b;
}
public String toString()
{
return super.toString()+"boss:"+bouss;
}
}
保存对象引用问题
一个经理共享一个秘书和一个雇员
。
import java.util.*;
import java.io.*;
public class ObjectRefTest
{
public static void main (String[] args)
{
Employee harry=new Employee("harry asd",5000,1989,10,1);
Manager boss=new Manager("Carl Cracker",8000,1987,12,12);
boss.setSecretary(harry);
Employee[] staff=new Employee[3];
staff[0]=boss;
staff[1]=harry;
staff[2]=new Employee("zcq123",8000,1990,3,15);
try
{
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("zcq.doc"));
out.writeObject(staff);
out.close();
ObjectInputStream in=new ObjectInputStream(new FileInputStream("zcq.doc"));
Employee[] newStaff=(Employee[])in.readObject();
in.close();
newStaff[1].ticheng(10);
for(Employee e:newStaff)
{
System.out.println (e);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class Employee implements Serializable
{
private String name;
private double salary;
private Date hireDay;
public Employee(){}
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar= new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void ticheng(double aa)
{
double bb=salary*aa/100;
salary=salary+bb;
}
public String toString()
{
return getClass().getName()+" name:"
+name+" salary:"+salary
+" hireday"+hireDay;
}
}
class Manager extends Employee
{
public Manager(String n,double s ,int year,int month,int day)
{
super(n,s,year,month,day);
secretary=null;
}
public void setSecretary(Employee s)
{
secretary=s;
}
public String toString()
{
return super.toString()+" secretary"+secretary;
}
public Employee secretary;
}
适合初学者看的克隆 一看就懂
public class Test
{
public static void main (String[] args)
{
Test1 aa=new Test1();
try
{
Test1 bb=aa.clone();
}
catch(CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}
class Test1 implements Cloneable
{
public Test1 clone() throws CloneNotSupportedException //抛出这个异常 ..
{
Test1 aa=(Test1)super.clone();
return aa;
}
}
|