Java蜘蛛人 欢迎大家

欢迎大家 来到我的blog , 如果我身边的朋友 有什么不懂可以直接来问我 我会细心的帮助你的. 如果网络上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
posts - 54, comments - 192, trackbacks - 0, articles - 1
简单的概括下多线程的用法
 

多线程

 

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;
    }

}


只有注册用户登录后才能发表评论。


网站导航: