2018-07-27 周测题
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
Java虚拟机是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统。
因为不同的平台装有不同的JVM,它们能够将相同的.class文件,解释成不同平台所需要的机器码。正是因为有JVM的存在,java被称为平台无关的编程语言。
2.JAVA支持的数据类型有哪些?什么是自动拆装箱?
1)8种基本数据类型:byte short char boolean int longfloat double
2)引用类型,包括类、接口、数组
自动拆装箱,是指基本数据类型和引用数据类型之间的自动转换,如Integer 和 int 可以自动转换; Float和float可以自动转换
3.简述方法中的参数传递的原理?(提示:值传递和引用传递)
如果传入的是基本数据类型,原数据的值不会发生改变,如果是引用数据类型会改变,因为方法参数传递是“拷贝值(如果是基本数据类型拷贝本身的值,如果是引用数据类型拷贝的是对象的引用、地址)的副本”
4.简述抽象类和接口的区别?
- 抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;
- 在抽象类是可以定义静态方法的,接口中不能定义静态方法的;
- 在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;
- 一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现。
5.定义一个完整的Student类,包含字段code,name,age,类成员包括:成员变量,getter,setter,多字段的构造器,重写toString方法。
public class Student {
private String name;
private int code;
private int age;
public Student() {
}
public Student(String name, int code, int age) {
super();
this.name = name;
this.code = code;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student[姓名:"+name+"学号:"+code+"年龄:"+age+"]";
}
}
6.Java集合类框架的基本接口有哪些?并阐述他们的基本特征。
Java集合类里面最基本的接口有:
Collection:代表一组对象,每一个对象都是它的子元素。
Set:不包含重复元素,。
List:有顺序的集合,并且可以包含重复元素,其中含有arraylist和linkedlist。
Map:可以把键(key)映射到值(value)的对象,键不能重复。
7.java运行原理
当服务器上的一个jsp页面第一次请求执行时,服务器上的jsp引擎首先将jsp页面文件转译成一个java文件,并且编译这个java文件生成字节码文件,然后执行字节码文件相应用户的请求,而当这个jsp再次被请求执行时,jsp引擎将直接执行字节码文件来响应用户
8.使用JSTL结合EL表达式,完成一个在JSP输出表格tbody体内容的代码(表格内容自拟)
<tbody>
<c:forEach items="${stus}" var="stu" varStatus="vs">
<tr>
<td>${vs.count}</td>
<td>${stu.id}</td>
<td>${stu.name}</td>
<td>${stu.code}</td>
<td><a href='DelServlet?id=${stu.id}'>删除</a> <a
href='UpdateForwardServlet?id=${stu.id} '>编辑</a></td>
</tr>
</c:forEach>
</tbody>
9.MVC是什么意思?MVC的优点有哪些?
MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。完成页面请求和数据传递的过程,着重在于请求逻辑的实现。
1:耦合性低
2:重用性高
3:部署快
4:可维护性高
5:有利软件工程化管理
10.页面传值的几种方式?(至少3种,有文字描述,有实例)
一、超链接
<a href="P.jsp?username=zhangshan&pwd=123456&age=25"> 链接</a>
二、form表单
1.可显示的控件
<input type="text" name="username">
2.如果要传递的值,不需要显示在页面上
(1)<input type="hidden" name="pwd" value="<%=pwd%>">
(2)<form action="XXX.jsp?username=zhangshan" method="post"></form>
三、JSP的include和forward标签
<jsp:include flush="true" page="T.jsp?username=zhangshan&pwd=123456678">
<jsp:param name="age" value="28"/>
</jsp:include>
四、JavaScript方式
location. href ("V.jsp?username="+v+"&age=25");
五、设置session和request