包含java160题的词条

博主:adminadmin 2023-03-19 04:45:06 319

今天给各位分享java160题的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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 BlockingQueueSocket queue;

//创建服务器

public SimpleHttpServer(int port){

this.port = port;

this.queue = new ArrayBlockingQueueSocket(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 BlockingQueueSocket queue;

public DealThread(BlockingQueueSocket queue){

super();

this.queue = queue;

}

public void run(){

while(true){

Socket clientSocket = null;

BufferedReader br = null;

MapString,String paramMap = new HashMapString,String(); //用来保存上传参数的map,键名为参数名,键值为参数值,例如user=Clientl1,将保存为user键名,Clientl1为键值

try{

//从队列中获取到新的连接

clientSocket = queue.take();

//从连接中读取数据

br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

String input = br.readLine(); //读取客户端的输入,按题目要求,应为: GET/ ?user=Clientl1name=xxxpwd=xxx HTTP/1.1

String[] inputArray = input.split(" "); //使用空格将字符串转为数组,第一项为GET/ 第二项为?user=Clientl1name=xxxpwd=xxx,第三项为HTTP/1.1

String str = inputArray[1]; //str即为  ?user=Clientl1name=xxxpwd=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();

}

}

}

}

}

Java基础面试题都有哪些?

一般面试官都会让面试者回答哪些Java基础面试题啊?难不难啊? 针对这一系列的疑问,广州增城Java培训学校收集了部分Java基础面试题与大家分享,希望对各位参加了广州专业Java培训的学生,有一定的帮助! 一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字转换为字符 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSPServlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符( “”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP的标记库 9.Jsp和Servlet中的请求转发分别如何实现。 三、J2EE相关知识 1.介绍J2EE、J2SE、J2SE的区别。 2.J2EE是一种技术还是一种平台,他提供了那些技术。 3.什么是Application Server,它有什么功能和优点。 4.简单介绍连接池的优点和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 Java面试题收藏: 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一个connect pool然后再调用它, 8.j2ee平台与dotnet平台的区别 9.ejb的life cycle 10.session bean 和 entity bean的区别 11.ejb中的transaction机制 12.synchronized (生产者和消费) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什么是MDA 17.tcp与udp的区别 18.链表与散列表和数组的区别 19.堆和栈的区别 20.ejb的分类及区别 21.你对现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 25.路由协议种类及特点 26.java的awt和swing组件的GUI设计的关键 27.对于java流的认识 28.简单描述一下awt与swing区别。 29.简述java编程中事件处理模式。 30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31.简述逻辑操作(如|)与条件操作(如||)的区别。

JAVA题目

public class EmployeeDemo {

public static void main(String[] args) {

Employee[] employee = new Employee[4];

employee[0] = new Employee("里斯", 5, 5777);

employee[1] = new SalariedEmployee("王五", 6, 1000);

employee[2] = new HourlyEmployee("小明", 1, 1, 170);

employee[3] = new SalesEmployee("天天", 5, 1000, 0.5);

//输出1月份各员工的姓名和工资。

for (int i = 0; i employee.length; i++) {

System.out.println(employee[i].getName() + ":"+ employee[i].getSalary(1)+"\n");

}

}

}

class Employee {

private String name;

private int month;

private double salary;

public Employee(String name, int month, double salary) {

this.name = name;

this.month = month;

this.salary = salary;

}

public String getName() {

return this.name;

}

public int getMonth() {

return this.month;

}

public double getSalary() {

return this.salary;

}

public double getSalary(int month) {

if (this.month == month)//如果这个月是员工的生日所在月,工资就另加100元

salary += 100;

return salary;

}

}

class SalariedEmployee extends Employee {

private final double SALARY = 3000;

public SalariedEmployee(String name, int month, double salary) {

super(name, month, salary);

}

public double getSalary(int month) {

return SALARY;//拿固定工资,工资不会改变

}

}

class HourlyEmployee extends Employee {

private int hours;

private double hoursSalary;

public HourlyEmployee(String name, int month, double salary, int hours) {

super(name, month, salary);

this.hoursSalary = salary;

this.hours = hours;

}

public double getSalary(int month) {

if (hours = 160) {

if (super.getMonth() == month) {

hoursSalary = (hours - 160) * 1.5 * hoursSalary + hoursSalary

* 160 + 100;

} else {

hoursSalary = (hours - 160) * 1.5 * hoursSalary + hoursSalary

* 160;

}

} else {

if (super.getMonth() == month) {

hoursSalary = hoursSalary * hours + 100;

} else {

hoursSalary = hoursSalary * hours;

}

}

return hoursSalary;

}

}

class SalesEmployee extends Employee {

private double salesSalary;

private double rate;

public SalesEmployee(String name, int month, double salary, double rate) {

super(name, month, salary); //重载父类构造函数

this.salesSalary = salary; //覆盖父类salary变量

this.rate = rate;

}

public double getSalary(int month) {

if (super.getMonth() == month) {

salesSalary = salesSalary + salesSalary * rate + 100;

} else {

salesSalary += salesSalary * rate;

}

return salesSalary;

}

}

以上代码是经过验证的

JAVA习题求解

一。

1.

b = a * a++(当++在后时,先运算,后自增)

b = 4 * 4++ = 16

a = 5

2.

c = ++a+a(当++在前时,先自增,后运算)

a = ++5 = 6

c = 6 + 6 = 12

所以 a = 6 b =16 c =12

二。

1。

x=5 y=110

next

x = 10 y = 110

next

x = 20 y =110

next

x = 40 y= 110

next

x =80 y = 110

next

x = 160 y = 110

break!

2.

x = 110 / 160 = 0

y = y - 0 = 160

next

x = 110/0 这里有错误!

第二题的第二个运算 运行不下去

java160题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java160题的信息别忘了在本站进行查找喔。