THE THIRTY-FIRST DAY

    今天星期天,参加培训的第三十一天,与往常不同,早上起来之后开始在宿舍看书,java编程思想,看了半个小时,然后去吃早饭,到了教室,然后继续看java进阶篇,然后没有别的什么了,老师上课开始讲数据库,没有怎么听,讲了多表查询吧,子查询:当作属性,当作条件,当作表,然后还有left join inner join right join ,别的没有什么了吧,然后就是晚上的作业了。是挺难的,当然还是做完了。

    然后主要是自己学了什么:不想多说什么直接上代码了:

线程池:

package am;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ExecutorDemo {
    public static void main(String[] args) {
		ExecutorService executorService = Executors.newFixedThreadPool(3);
//		ExecutorService executorService = Executors.newCachedThreadPool();
		executorService.execute(new PrintChar('a', 100));
		executorService.execute(new PrintChar('b', 100));
		executorService.execute(new PrintNum(100));
		executorService.shutdown();
	}
    
}
class PrintChar implements Runnable{
    private char charToPirnt;
    private int times;
    public PrintChar(char c,int t) {
		// TODO Auto-generated constructor stub
	    charToPirnt = c;
	    times = t;
    }
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i = 0; i<times;i++) {
			System.out.println(charToPirnt);
		}
	}
	
}
class PrintNum implements Runnable {
    private int lastNum;
    public PrintNum(int n) {
		// TODO Auto-generated constructor stub
	    lastNum = n;
    }
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i = 0 ;i<lastNum ;i++) {
			System.out.println(""+i);
		}
	}
	
}

进度条:

package am;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingWorker;

public class ProgressBarDemo extends Applet{
    private JProgressBar jpb = new JProgressBar();
    private JTextArea jtaResult = new JTextArea(10,10);
    private JTextField jtfPrimeCount = new JTextField(8);
    private JButton jbtDisplayPrime = new JButton("Display Prime");
    public ProgressBarDemo() {
    	jpb.setStringPainted(true);
    	jpb.setValue(0);
    	jpb.setMaximum(100);
    	jtaResult.setWrapStyleWord(true);
    	jtaResult.setLineWrap(true);
    	JPanel panel = new JPanel();
    	panel.add(new JLabel("Enter the prime number count"));
    	panel.add(jtfPrimeCount);
    	panel.add(jbtDisplayPrime);
        add(jpb,BorderLayout.NORTH);
        add(new JScrollPane(jtaResult), BorderLayout.CENTER);
        add(panel, BorderLayout.SOUTH);
        jbtDisplayPrime.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				ComputePrime task = new ComputePrime(
						Integer.parseInt(jtfPrimeCount.getText()),jtaResult);
				task.addPropertyChangeListener(new PropertyChangeListener() {
					
					@Override
					public void propertyChange(PropertyChangeEvent evt) {
						// TODO Auto-generated method stub
						if("progress".equals(evt.getPropertyName())) {
							jpb.setValue((Integer)evt.getNewValue());
						}
					}
				});
				task.execute();
			}
		});
    }
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 JFrame frame = new JFrame();
         Applet applet = new ProgressBarDemo();
         frame.add(applet);
         frame.setSize(200,200);
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setLocationRelativeTo(null);
         frame.setVisible(true);
	}
    
static class ComputePrime extends SwingWorker<Integer, Integer>{
    private int count;
    private JTextArea result;
    public ComputePrime(int count,JTextArea result) {
		// TODO Auto-generated constructor stub
	    this.count = count;
	    this.result = result;
    }
	@Override
	protected Integer doInBackground() throws Exception {
		// TODO Auto-generated method stub
		publishPrimeNumbers(count);
		return 0;
	}
	protected void process(List<Integer> list) {
		for(int i = 0; i<list.size();i++) {
			result.append(list.get(i)+"");
		}
	}
	private void publishPrimeNumbers(int n) {
		int count = 0;
		int number = 2;
		while(count<=n) {
			if(isPrime(number)) {
				count++;
				setProgress(100*count/n);
				publish(number);
			}
			number++;
		}
	}
	private static boolean isPrime(int number) {
		double sum = Math.sqrt(number);
		for(int divisor = 2;divisor<=sum;divisor++) {
			if(number%divisor==0) {
				return false;
			}
		}
		return true;
	}
}	
}

安全集合:

package am;

import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SynchronizedCollections {
    public static void main(String[] args) {
		Set hashSet = Collections.synchronizedSet(new HashSet());
		synchronized (hashSet) {
		    Iterator iterator = hashSet.iterator();
		    while(iterator.hasNext()) {
		    	System.out.println(iterator.next());
		    }
		    
		}
	}
}

客户端简单聊天:server

package pm;

import java.awt.BorderLayout;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Server extends JFrame {
	private JTextField jtf = new JTextField(10);
	private JTextArea jta = new JTextArea();
    public static void main(String[] args) {
		new Server();
	}
    public Server() {
		// TODO Auto-generated constructor stub
	setLayout(new BorderLayout());
	add(jtf, BorderLayout.NORTH);
	add(new JScrollPane(jta),BorderLayout.CENTER);
	setTitle("server");
	setSize(500, 300);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setVisible(true);
	try {
		ServerSocket serverSocket1 = new ServerSocket(8000);
		ServerSocket serverSocket2 = new ServerSocket(7000);
		jta.append("sever started at "+new Date() +'\n');
		Socket socket1 = serverSocket1.accept();
		Socket socket2 = serverSocket2.accept();
		InetAddress inetAddress1 = socket1.getInetAddress();
		InetAddress inetAddress2 = socket2.getInetAddress();
		System.out.println(inetAddress1.getHostName()+inetAddress1.getHostAddress());
		System.out.println(inetAddress2.getHostName()+inetAddress2.getHostAddress());
		
		DataInputStream inputFromClient1 = new DataInputStream(socket1.getInputStream());
		DataOutputStream outputToClient1 = new DataOutputStream(socket1.getOutputStream());
		DataInputStream inputFromClient2 = new DataInputStream(socket2.getInputStream());
		DataOutputStream outputToClient2 = new DataOutputStream(socket2.getOutputStream());
		Thread client1 = new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
				  while(true) {	
				String string1 = inputFromClient1.readUTF();
				jta.append(string1);
					outputToClient2.writeUTF("from李泽安:"+'\n'+string1+'\n');
				  }
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		Thread client2 = new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					while(true) {
				  String string2 = inputFromClient2.readUTF();
		            jta.append(string2);
					outputToClient1.writeUTF("from邵化振:"+'\n'+string2+'\n');
					}
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			}
		});
			client1.start();
			client2.start();        
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		System.err.println(e);
	}
    }
}

客户端1:

package pm;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client1 extends JFrame{
    private JTextField jtf = new JTextField();
    private JTextArea jta = new JTextArea();
    private DataOutputStream toServer;
    private DataInputStream fromServer;
    public static void main(String[] args) {
		new Client1();
	}
    public Client1() {
		// TODO Auto-generated constructor stub
	    JPanel p = new JPanel();
	    p.setLayout(new BorderLayout());
	    p.add(new JLabel("Enter radius"),BorderLayout.WEST);
	    p.add(jtf,BorderLayout.CENTER);
	    jtf.setHorizontalAlignment(JTextField.RIGHT);
	    setLayout(new BorderLayout());
	    add(p,BorderLayout.NORTH);
	    add(new JScrollPane(jta), BorderLayout.CENTER);
	    jtf.addActionListener(new TextFieldListener());
	    setTitle("Client");
	    setSize(500, 300);
	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    setVisible(true);
        Socket socket;
		try {
			socket = new Socket("localhost", 8000);
//			socket = new Socket("192.168.0.103", 8000);
			fromServer = new DataInputStream(socket.getInputStream());
			toServer = new DataOutputStream(socket.getOutputStream());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			jta.append(e.toString()+'\n');
		}
		Thread thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				while(true) {
				String string2;
				try {
					string2 = fromServer.readUTF();
					jta.append(string2);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			}
		});
		thread.start();
    }
    private class TextFieldListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			String string1 = jtf.getText().trim();
			try {
				toServer.writeUTF(string1);
				toServer.flush();				
				jta.append("                                you:"+'\n'+
						"                                "+string1+'\n');				
				jtf.setText("");
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				System.err.println(e);
			}
		}
    	
    }
}
客户端2:
package pm;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client2 extends JFrame{
    private JTextField jtf = new JTextField();
    private JTextArea jta = new JTextArea();
    private DataOutputStream toServer;
    private DataInputStream fromServer;
    public static void main(String[] args) {
		new Client2();
	}
    public Client2() {
		// TODO Auto-generated constructor stub
	    JPanel p = new JPanel();
	    p.setLayout(new BorderLayout());
	    p.add(new JLabel("Enter radius"),BorderLayout.WEST);
	    p.add(jtf,BorderLayout.CENTER);
	    jtf.setHorizontalAlignment(JTextField.RIGHT);
	    setLayout(new BorderLayout());
	    add(p,BorderLayout.NORTH);
	    add(new JScrollPane(jta), BorderLayout.CENTER);
	    jtf.addActionListener(new TextFieldListener());
	    setTitle("Client");
	    setSize(500, 300);
	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    setVisible(true);
        Socket socket;
		try {
			socket = new Socket("localhost", 7000);
//			socket = new Socket("192.168.0.189", 7000);
			fromServer = new DataInputStream(socket.getInputStream());
			toServer = new DataOutputStream(socket.getOutputStream());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			jta.append(e.toString()+'\n');
		}
		Thread thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				while(true) {
				// TODO Auto-generated method stub
				String string2;
				try {
					string2 = fromServer.readUTF();
					jta.append(string2);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			}
		});
		thread.start();
    }
    private class TextFieldListener implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			String string1 = jtf.getText().trim();
			try {
				toServer.writeUTF(string1);
				toServer.flush();
				jta.append("                                you:"+'\n'+
						"                                 "+string1+'\n');
				jtf.setText("");
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				System.err.println(e);
			}
		}
    	
    }
}

    还有什么网络的传输什么的 什么tcp udp 还有国际化的什么东西,行吧,也就是这些了,多的也没有了,学了也记不住 ,很是难受,嗯,是这样的,行吧,还好了,今天就写到这里了,还要去把书上的日历写出来,行了,好的,结束。





猜你喜欢

转载自blog.csdn.net/aizaiee/article/details/79858123