java笔试题

    1.写一个类,当该类的实例创建时即启动一个线程,按照指定格式每隔5秒循环打印出当前的时间(提示:使用Runnable接口或内部类创建线程,格式化日期使用java.text.SimpleDateFormat),指定的日期格式为:
××××年××月××日 ××点××分××秒。
package test;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test1 extends Thread{

	public void run() {
	
	for(;;){
		Date date=new Date();
		SimpleDateFormat rs=new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒");
	System.out.println(rs.format(date));
	try {
		Thread.sleep(5000);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	}
	}
   public static void main(String[] args){
	   Test1 t1 =new Test1();
	   t1.start();
   } 
}

     2.写一个方法将一个字符串中连续出现的"Java"替换为一个"Java"。例如:字符串"JavaJavaBeaJ2eeJavaIBMJavaJavaJava"替换的结果为"JavaBeaJ2eeJavaIBMJava"。(提示:可以使用正则表达式)
package test;

public class Test2 {

	public static void main(String[] args) {
		String rs="JavaJavaBeaJ2eeJavaIBMJavaJavaJava";
		//replaceall=========正则表达式
		System.out.println(rs.replaceAll("(Java)+", "Java"));
	}

}

    3.写一个程序统计输入字符串中以","分隔的各种单词出现的次数。例如:输入的字符串为"java,java,j2ee,ibm,j2ee,ibm,j2me,java",则该程序的输出结果应该为:
java3个;j2ee2个;ibm2个;j2me1个
(提示:可以使用java.util.StringTokenizer和Map容器)
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class Test3 {

	public static void main(String[] args) throws IOException {

		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	     //输出提示语
	    System.out.println("请输入字符串 附:字符串之间用,隔开");
		//读取输入字符串
		String temp=br.readLine();
	
		Map maps = new HashMap();
		String[] templist = temp.split(",");
		
		
		for(int i = 0 ; i < templist.length;i++){
          //准备放map
			String t = templist[i];
		  //判断key
			boolean is = maps.containsKey(t);
			if(is == true){
		  //++1
				Integer vs = (Integer)maps.get(t);
				vs++;
				maps.put(t, vs);
			}else{
		 //放`1
				maps.put(t, 1);
			}
		}
		
		
		System.out.println(maps);

	}
}
             

     4.已知在文件路径"c:\temp\target.bmp",写出Java程序将该文件同名拷贝到路径"c:\bak"下。注意,由于文件较大,应考虑到程序的效率问题。
package test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test4 {

	public static void main(String[] args) {
		FileInputStream fin=null;
		FileOutputStream out=null;
		try {
			
			fin=new FileInputStream("d:\\A.java");
		    out=new FileOutputStream("e:\\A.java");
			try {
				byte bt[] = new byte[1024 * 2];
				int len;
				while((len=fin.read(bt))!=-1){ 
				out.write(bt,0,len);
				}
				out.flush();
				out.close();
				fin.close(); 
			} catch (IOException e) {
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}

}


      5.写出一段程序,从备选字符串"red"、"green"、"blue"、"black"、"white"中随机选出3个不同的字符串,并打印到控制台。
package test;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Test5 {

	public static void main(String[] args) {
		String temp[]={"red","green","blue","black","white"};
		Set sets=new HashSet();
		for(;;){
			//产生随数
			int i= new Random().nextInt(temp.length);
			sets.add(temp[i]);
			if(sets.size()>2){
				break;
			}
		}
		System.out.println(sets);
	}

}

     6.写出一个基于SOCKET服务器,与客户机程序;
   要求,客户机发送一个字符串,由服务器来读取,并输出
package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Test6ServerSocket {
	public static void main(String[] args) {
		 ServerSocket server=null;
		 Socket client =null;
	
				try {
					//创建服务吕
					server =new ServerSocket(8888);
					//侦听并接受到此套接字的连接
					client=server .accept();
					//控制台输出
					BufferedReader br = new BufferedReader(
							new InputStreamReader(client.getInputStream()));
					System.out.println("客户机发送来的字符串:"+br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
				

	}

package test;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class Test6Serverce {

	
	public static void main(String[] args) {
		Socket server=null;
		System.out.println("请输入聊天内容:");
			try {
				//连接服务器
				 server = new Socket("127.0.0.1",8888);
				 //控制台输入
				BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
				String temp=br.readLine();
				//产生输出流
				PrintWriter pw = new PrintWriter(server.getOutputStream());
	            pw.println(temp);
	            pw.flush();
			} catch (UnknownHostException e) {		
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}

	}

     7.多线程:启用两个线程,将100每隔5秒做++或--运算
package test;

public class Test7 extends Thread {
int rs = 100;

	public static void main(String[] args) {
		new Test7().s();
	}
	public void s() {
		new Thread(new A()).start();
		new Thread(new B()).start();
	}
	class A implements Runnable {
		public void run() {
			while (true) {
				rs++;
				System.out.println("A线程"+rs);
				try {
					Thread.sleep(500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}

	class B implements Runnable {
		public void run() {
			while (true) {
				rs--;
				System.out.println("B线程"+rs);
				try {
					Thread.sleep(500);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

你可能感兴趣的:(java,多线程,thread,socket,正则表达式)