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();
}
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值