包含java160题的词条
今天给各位分享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题的信息别忘了在本站进行查找喔。