Java语言考题试题,请大家帮我做做。高分160分!主要用到多线程 字符串拆分 IO流,这个题目我没有做出来

  主体由两个类来完成,一个服务器类,监听连接,并将来自客户端的连接加到一个队列中

  另一个是处理线程类,从队列中获取到连接,并从连接中读取数据写文件,然后响应客户端


  服务器类

 

package tt;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class SimpleHttpServer {

//监听的服务器
private ServerSocket soc;

//监听的端口
private int port;

//待处理队列

private BlockingQueue<Socket> queue;

//创建服务器
public SimpleHttpServer(int port){

this.port = port;

this.queue = new ArrayBlockingQueue<Socket>(200);

}

//启动服务器
public void startServer() throws Exception{

this.soc = new ServerSocket(port);
System.out.println("服务器启动,监听" + this.port + "端口");

//启动处理线程
DealThread thread = new DealThread(this.queue);
thread.start();


//开始获取来自客户端的连接,将接收到的连接加入到队列中,供处理线程处理
while(true){
//接受到新的连接
Socket clientSocket = this.soc.accept();
//加入到队列中
queue.put(clientSocket);
}
}

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

SimpleHttpServer sh = new SimpleHttpServer(80);
sh.startServer();

}

}


 处理线程类

 

package tt;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.BlockingQueue;

public class DealThread extends Thread{

private BlockingQueue<Socket> queue;

public DealThread(BlockingQueue<Socket> queue){

super();
this.queue = queue;
}

public void run(){

while(true){
Socket clientSocket = null;
BufferedReader br = null;
Map<String,String> paramMap = new HashMap<String,String>(); //用来保存上传参数的map,键名为参数名,键值为参数值,例如user=Clientl1,将保存为user键名,Clientl1为键值
try{

//从队列中获取到新的连接
clientSocket = queue.take();

//从连接中读取数据
br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String input = br.readLine(); //读取客户端的输入,按题目要求,应为: GET/ ?user=Clientl1&name=xxx&pwd=xxx HTTP/1.1
String[] inputArray = input.split(" "); //使用空格将字符串转为数组,第一项为GET/ 第二项为?user=Clientl1&name=xxx&pwd=xxx,第三项为HTTP/1.1

String str = inputArray[1]; //str即为  ?user=Clientl1&name=xxx&pwd=xxx

//去掉问号,即去掉首字母
str = str.substring(1);

//用“&”分隔符,再次将字符串转为数组,转化的结果为   user=Clientl1,name=xxx,pwd=xxx
String[] strArray = str.split("&");

for(String s : strArray){
//等号前面的部份作为键名,等号后面的部份作为键值 如user=Clientl1则user为键名,Clientl1为键值
paramMap.put(s.substring(0,s.indexOf("=")), s.substring(s.indexOf("=") + 1));
}

String user = paramMap.get("user");
String name = paramMap.get("name");
String pwd = paramMap.get("pwd");

//user或name或pwd任一项为空,则响应“报文格式不正确”给客户端
if(user == null || name == null || pwd ==null){
//响应客户端
clientSocket.getOutputStream().write("报文格式不正确".getBytes());
clientSocket.getOutputStream().flush();
}
else
{
//写perperties文件
Properties prop = new  Properties();
prop.setProperty("name", name);
prop.setProperty("pwd", pwd);
//创建文件
File file = new File("D:\\" + user + ".perperties");
prop.store(new FileOutputStream(file), null);

//响应客户端
clientSocket.getOutputStream().write("处理成功".getBytes());
clientSocket.getOutputStream().flush();
}


}catch(Exception e)
{
e.printStackTrace();
}finally{
//关闭资源
try{
if(br != null)
br.close();
if(clientSocket != null)
clientSocket.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

}

}



package com.lonwin.fcos;


import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Properties;


public class Test {


/**

* @param args

* @throws IOException 

*/

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

// TODO Auto-generated method stub

String s = " GET/ ?user=Clientl1&name=xxx&pwd=xxx HTTP/1.1";


String fileName = s.split("&")[0].split("user=")[1];


String name = s.split("&")[1].split("name=")[1];

String pwd = s.split("&")[2].split("pwd=")[1].split(" ")[0];


Properties prop = new Properties();

prop.put("name", name);

prop.put("pwd", pwd);


try {

FileOutputStream out;

out = new FileOutputStream("C:\\" + fileName + ".properties");

//为properties添加注释

prop.store(out, "注释");

out.close();

 

} catch (FileNotFoundException e) {

e.printStackTrace();


}


}


面向对象的思想你自己做吧

这段代码写的比较潦草,尤其是处理字符串那

我就是给你个大概的思路,具体的你自己想想写吧, 很简单



找出两个字符串中相同的子串,用java语言实现~

题。你可以在网上下更全套的试题练习。

全国2008年10月考试Java 语言程序设计(一)试题
课程代码:04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下述字符组合不能作为Java程序标识符的是( )
A.Aa12 B.大x
C.y小 D.5x
2.以下程序代码的输出的结果是( )
int x=53;
System. out. println(1.0+x/2);
A.27.0 B.27.5
C.1.026 D.1.026.5
3.参照以下Java代码,以下四个叙述中最确切的是( )
class A{
int x; static int y;
void fac(String s)
}
A.x、y和s都是成员变量
B.x是实例变量、y是类变量、s是局部变量
C.x和y是实例变量、s是参数
D.x、y和s都是实例变量
4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是
( )
A.String B.StringBuffer
C.StringTokenizer D.stringTokenizer
5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是( )
A.JFrame(s) B.window(s)
C.new JFrame(s) D.super(s)
6.以下关于菜单的叙述中,正确的是( )
A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项
B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项
C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项
D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项
7.以下所述内容全部是字型要素的是( )
A.字体、字形和大小 B.字体、风格和字号
C.字形、风格和字号 D.字形、颜色和字号
8.用Thread子类实现多线程的步骤顺序是( )
A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法
B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例
C.创建Thread子类的实例,让线程调用start()方法
D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法
9.为16位Unicode字符流提供读和写操作支持的类分别是( )
A.FileInputStream类和FileOutputStream类
B.InputStream类和OutputStream类
C.FileReader类和FileWriter类
D.File_Reader类和File_Writer类
10.能利用对象提供的方法获得流对象和实现网络连接的是( )
A.URLConnection对象 B.URL对象
C.InetAddress对象 D.TCP/IP对象
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
11.一个小应用程序必须定义成一个_________。
12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。
13.类是对一组相同对象的描述,类概括了同类对象的共有性质:_________。
14.设有数组a和b的定义如下:
int[]a=;int[]b=
……
执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_________。
15. _________布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
16.Java语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。
17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。
18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。
19.BufferedWriter类是提供缓冲式输出的类。程序需要先创建_________对象,再利用这个对象创建BufferedWriter对象。
20.在Java语言中,客户端使用的套接字类是_________。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。
22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。
Person p1=new Student();
Person p2=new Undergraduate();
Student s1=new Person();
Student s2=new Undergraduate();
Undergraduate ug1=new Person();
Undergraduate ug2=new Student();
Object ob=new Student();
23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。
24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。
25.某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。
26.JDBC是Java程序与数据库连接的API,请写出JDBC能做的三件事情。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。
static int maxDigit(int n){
int c=0,d;
while(n>0){
d=_______;
if(d>c) c=d;
n/=10;
}
________;
}
28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。
public void actionPerformed(ActionEvent e){
int sum;
if(e.getSource()==button){
String s=text1.________;//获取text1中的信息
StringTokenizer fenxi=new StringTokenizer(s,”,,,
”);
int n=fenxi.countTokens();
double a[]=new double[n];
for(int i=0;i<n;i++){
String temp=fenxi.nextToken();
a[i]=Double.valueOf(temp).doubleValue();
}
sum=0;
for(int i=0;i<n;i++){
__________;
}
text2.setText(””+sum);//刷新显示。
}
}
29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。
……
singingItem=new________(”唱歌”);//生成菜单项对象
……
public void actionPerformed(ActionEvent e){
if(e.getSource()==singingItem)
text.setText(e.________()+ ”菜单项被选中!”);
}
30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。
final int number=30;//假定幻灯片有30张
int count=0;
Image[]pic=new Image[number];
public void paint(______gc){
if((pic[count])!=null)
gc.drawImage(pic[count],10,10,pic[count].getWidth(this),
pic[count].getHeight(this),this);
}
public void mousePressed(MouseEvent e){
count=(count+1)% number;//循环逐张显示
__________;
}
31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。
class ShareDataManager{
int data=0;
________void modiData(int delta){
if(delta>=0){
data+=delta;
}else {
while(data <delta){
try{System.out.println(”发生等待!”);
wait();
}catch(InterruptedException e)
}
data-=delta;
}
_________;
}
ShareDataManager(int ititData)
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
import java.applet.*;import java.awt.*;
class Point{
int x,y;
Point(int xx,int yy)
Point(Point p)
void m(int dx,int dy)
}
class Circle extends Point{
int r;
Circle(Point p, int rr)
float c()
float a()
}
public class sample extends Applet{
Circle yuan; Point d;
public void init()
public void paint(Graphics g){
g.drawString(”yuan Circle”+(int)(yuan.c()*100.0)/100.0,5,20);
g.drawString(”yuan Area”+(int)(yuan.a()*100.0)/100.0,5,40);
}
}
33.阅读下列程序,请写出该程序的功能。
import java. util.*;
public class Class1{
public static void main(Srting args[]){
Date date1=new Date();
System. out. println (datel);
String t=datel.toString();
int endPos=t.indexOf(‘C’);
t=t.substring(11,endPos);
System. out println(t);
}
}
34.阅读下列程序,请写出该程序的功能。
import java.applet.*;import javax.swing.*;import java.awt.event.*;
public class Class l extends Applet implements ActionListener{
JTextField text1,text2;
public void init(){
text1=new JTextField(10); text2=new JTextField(10);
setSize(200,100); add(text1); add(text2);
text1.addActionListener(this);
}
public void actionPerformed(Action Event e){
long n;
if(e.getSource()==text1){
n=Long.parseLong(text1.getText());
text2.setText(String.valueOf(n*n));
}
}
}
35.阅读以下程序,请写出该程序的功能。
import javax.swing.*; import java.awt.*;import java.awt.event.*;
class MyScrollBar extends JscrollBar{
public MyScrollBar(int init, int len, int low, int high){
super(JScrollBar. HORIZONTAL, init,len,low,high);
}
}
class MyWindow extends JFrame implements AdjustmentListener{
private JTextField text;
MyWindow(String s){
super(s);
MyScrollBar myBar=new MyScrollBar(10,10,0,255);
Container con=this. getContentPane();
con. setLayout(new GridLayout(2,1));
this. setSize(200,100);
this. setLocation(100,100);
myBar.addAdjustmentListener(this);
text=new JTextField(””,20);
con. add(text);con.add(myBar);
this.setVisible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e){
MyScrollBar myBar=(MyScrollBar)e.getAdjustable();
text.setText(””+myBar.getValue());
}
}
public class Class1{
public static void main(String[]args){
MyWindow myWindow=new MyWindow(”text5_4”);
}
}
36.小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。
import java.applet.*;import java.awt.*;
public class Class1 extends java.applet.Applet implements Runnable{
Thread redBall;Graphics redPen;
int rx=0,ry=0;
public void init(){
setSize(250,200);
redBall =new Thread(this);
redPen=getGraphics();
redPen. setColor(Color.red);
setBackground(Color.gray);
}
public void start()
public void run(){
while(true){
if(Thread.currentThread()==redBall){
rx=(int)(80*Math.random());
ry=(int)(80*Math.random());
red Pen.setColor(Color.red);
red Pen.fillOval(100+rx,100+ry,10,10);
try
catch(InterruptedException e){}
redPen.setColor(Color.gray);
redPen.fillOval(100+rx,100+ry,10,10);
}
}
}
}
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。
38.一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。
注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvent e)方法。
import java.applet.*;import javax.swing.*;
import java.awt.*; import java.awt.event.*;
class Panel1 extends JPanel{
JTextField text1, text2, text3;JButton addButton,subButton;
Panel1(){
text1=new JTextField(10);text2=new JTextField(10);
text3=new JTextField(10);setLayout(new GridLayout(5,1));
addButton=new JButton(”加”);subButton=new JButton(”减”);
add(text1); add(text2);
add(text3); add(addButton); add(subButton);
}
}
public class Classl extends Applet implements ActionListener{
Pane1 panel;
public void init(){
setSize(100,200); panel=new Panel1();add(panel);
(panel.addButton).addActionListener(this);
(panel.subButton). addActionListener(this);
}
public void actionPerformed(ActionEvent e){

此项目是采用B/S结构,采用struts,hibernate,spring等技术实现.
然后说下项目的总体结构(概括)
在具体说下自己所做的模块...面试官看重的是你的口述能力和技术方面(自己本身的)
新手一般在使用SSH时,对配置文件不是很熟悉,可以说这方面问题,就说框架是自己动手搭建...
在动手做项目时,很容易出现JS错误..JS因为没有明确错误提示..所以特别难找..我相信你应该也遇见了(除非界面你没动过)
其次在做项目时,JAVA自带内的运行效率都很高...你可以说下自己最开始的时候使用的是循环..等,效率不高...
后来为了提高效率采用了什么方法.
将字符串一个个取出,例如:
String str="123456789";
for()...{
str.substring(?.?);//循环拿
?
......只为说明,大概列出

String str="123456789";
char[] ch=str.toChararray(); //一个个拿,放入数组,效率是上列方法的N倍
------------------------
这个只是给你的意见...你在项目中使用的还是靠你自己来说.这里可以让考官知道你很喜欢比较学习,善于动脑思考....

---------------
写完后才想到非常重要的一点....
推荐一本书给你:>

#14725676215# Java语言程序设计练习题 - ******
#游解# Hellopublic static void main(String[ ] args){try{ BufferedReader b=new BufferedReader (new InputStreamReader(System.in));String s;System.out.flush();s=b.readLine();System.out.println(s);}catch(Exception e){ e.printStackTrace(); } }

#14725676215# JAVA考试题,请高手帮帮忙 ******
#游解# 一.1.AC 2.D 3.C 二. 1. public class T1 { public T1() { System.out.print("请输入分数(0~100):"); double S = new java.util.Scanner(System.in).nextDouble(); if(S > 100 || S < 0) { System.out.println("所输入分数不在允许范围!"); return; } ...

#14725676215# java语言编程题,题目如下 - ******
#游解# package test; public class Father { private String name; class Child{ public void introFather(){ System.out.println(name); } } public Child newChild(){ return new Child(); } public String getName() { return name; } public void setName(String name) { this....

#14725676215# Java考试测验题 大家帮着解答一下 - ******
#游解# 1:什么叫有几个语句啊?,,, 2: 3: 4:<table name = "biaoge" width = 100px height = 100px><tr><td></tr> 7:对象是类的实现,类里有构造函数,而对象就是通过构造函数来赋值的 8:方法,通过方法来沟通,比如有对象A,和对象B,而A...

#14725676215# java题目试题(蛮简单,帮做下) - ******
#游解# 1 C extends4 C abstract5 C2 A 这个是A,因为私有属性可以通过父类的public protected方法(接口)来,严格点说是只能通过方法来访问,而不应该说是接口 二、填空题:1 多态 封装 继承 抽象2 x.length = 3; x[0].length = 23 new4 类5 字节码 .class

#14725676215# 求助一道JAVA试题 ******
#游解# 选项C是正确的,数组的3表示是第4个元素

#14725676215# JAVA语言的一些试题 - ******
#游解# 1. 属性 方法 public private3. interface4. main5. 10 106. Applet7. java.io22. .java1 D2 C3 A4 C5 A6 A9 A10 B11 D12 A13 A20 B21 D22 A23 B24 C25 B14 Object供参考

#14725676215# JAVA语言程序设计题目,求高人解答 - ******
#游解# 3-1 有main方法的就是主类,错误1:String[] args的String大写,并且中间有空格 保存在MyJavaClass 名字的文件里 错误2:System.out.println("程序结束.");只能写在main方法里3-2.标识符只能由字母或数字和_和$构成,不能以数字开头,只能以字母或_或$开头,并且不能是关键字1 2 5对 3错:不能以数字开头,4错:只能由字母或数字和_和$构成3-822 false2

#14725676215# java测试题 - ******
#游解# public class Test { public static void main(String[] args) { ShapeArea rectangle = new Rectangle(3, 4); ShapeArea circle = new Circle(2); System.out.println(rectangle.toString()); System.out.println(circle.toString()); }}interface ShapeArea{ public ...

#14725676215# java 考试题啊, - ******
#游解# 1 T java是面向对象的程序设计语言2 F 布尔型是只有两个值 一个是true 和false3 F 一个类只能继承一个父类 可以多个接口4 t8 f 资源不能释放 10 f

  • 我有个JAVA题目,请大家帮我解决下,
  • 答:import java.awt.*; //倒入的包 import java.awt.event.*;import javax.swing.*;class zhangshuai extends JFrame implements ActionListener { JPanel p=new JPanel(); //panel JButton jia=new JButton("+"); /...

  • 请高手帮忙做两道JAVA题啊!!!急用...
  • 答:第一题:public static void main(String[] args) { // TODO Auto-generated method stub int a = numAdd(5);System.out.print(a);} static int numAdd(int number){ int sount = 1;for(int i=1;i<=number;...

  • java编程题 希望大家能够帮助我一下,谢谢?
  • 答:package book;/ Author: Cool_Wu Date: 2020-12-07 20:18 / public class Book { private String name;private String num;private String author;private double price;private String publishing_House;private String ...

  • 请大家帮我做下下面这个JAVA程序题,是课后习题,没答案,请写清楚些...
  • 答:public class SavingAccount { private static float lilv=0.03f;private float salary=3000.0f;public float yearlixi(){ return lilv*salary;} public float monthlixi(){ return yearlixi()/12;} public static void...

  • Java面向对象程序设计.哪位JAVA高手,帮我做一下下面的编程试题...
  • 答:import java.io.DataInputStream;import java.io.FileInputStream;public class Score { private Object[][] data = new Object[10][2];//存放学好和密码 public static void main(String[] args) { new Score()....

  • java 程序 期中考试题,请大家帮助
  • 答:解题思路:将控制台的字符读入到StringBuffer中;对buffer中的字符串进行反转,得到从左到右的正确顺序;将buffer变为String,调用split(“ ”)按照空格进行分割,得到每个单词,也就是数组;对每个单词从按照混合编码规则取出...

  • 请大家帮我做几道JAVA题??
  • 答:Student.java public class Student extends Person { private String school;Student(String name,String age,String school){ super(name,age);this.school=school;} void displayInfo(){ System.out.print("name="+super...

  • 谁能给我点java的 面试题啊
  • 答:Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有...

  • 下面是Java的题目,帮我解答一下,必有重谢。
  • 答:1.面向对象 .java .class2 new extends3.选择结构 循环结构4.main5.156. 0 0 07.被新类实现,来监听ui界面的组件动作8. true,false1.int sumN (int n) {int sum=0; for(int i=1;i...

  • java题目,请高手帮忙解决。
  • 答:Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。可移植性:就是在这个...

    为传递更多家电数码信息,若有事情请联系
    数码大全网