今天星期天,参加培训的第三十一天,与往常不同,早上起来之后开始在宿舍看书,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 还有国际化的什么东西,行吧,也就是这些了,多的也没有了,学了也记不住 ,很是难受,嗯,是这样的,行吧,还好了,今天就写到这里了,还要去把书上的日历写出来,行了,好的,结束。