6.25 周测题目整理

JAVA基础编程部分

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,简述抽象类和接口的区别?

1 .接口只能包含抽象方法,抽象类可以包含普通方法。

2. 接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。

3 .接口不包含构造方法,抽象类里可以包含构造方法。   

4.抽象类不能被实例化,但不代表它不可以有构造函数,抽象类可以有构造函数,备继承类扩充

5.接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。

6. 如果许多类实现了某个接口,那么每个都要用代码实现那些方法

7.如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。

5,定义一个完整的Student类,包含字段code,name,age,类成员包括:成员变量,getter,setter,

多字段的构造器,重写toString方法。

  1. class Demo {
  2. public static void main(String[] args) {
  3. Student s = new Student( "张三", 22, 95);
  4. }
  5. }
  6. class Student {
  7. //私有成员变量。
  8. private String name ;
  9. private int age;
  10. private int code;
  11. //提供 name,age, score 的 set,get方法。
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public int getAge() {
  19. return age;
  20. }
  21. public void setAge(int age) {
  22. this.age = age;
  23. }
  24. public int getCode() {
  25. return score;
  26. }
  27. public void setCode(int code) {
  28. this.score = score;
  29. }
  30. //构造函数。
  31. public Student(String name, int age, int score){
  32. this.age = age;
  33. this.name = name ;
  34. this.score = score;
  35. System.out.println( "姓名:"+getName()+ ","+ "年龄:"+ getAge() + ","+ "分数:"+getScore());
  36. }
  37. @Override
  38. public String toString() {
  39. return "Student[code=" + code + ", name=" + name + ", age=" + age + "]";
  40. }
  41. }


6,Java集合类框架的基本接口有哪些?并阐述他们的基本特征。

Java集合类里面最基本的接口有:

Collection:代表一组对象,每一个对象都是它的子元素。

Set:不包含重复元素,。

List:有顺序的集合,并且可以包含重复元素,其中含有arraylist和linkedlist。

Map:可以把键(key)映射到值(value)的对象,键不能重复。

7,写一个mian方法,使用全字段的构造器创建5个Student对象,并放入到一个集合中(list)中,使用迭代器遍历List,并删除一个符合条件code值的对象。

  1. public class Client {
  2. public static voidmain(String[] args) {
  3. Student pxj = new Student( "彭贤君", "001");
  4. Student hjn = new Student( "黄佳男", "002");
  5. Student zsf = new Student( "张三丰", "004");
  6. Student zwj = new Student( "张无忌", "005");
  7. Clazz j103 = new Clazz();
  8. j96.setName( "Java103班");
  9. j96.setCode( "java103");
  10. // Step1:学生类型的集合定义完成了
  11. List<Student>stus = new ArrayList<Student>();
  12. // Step2: 添加数据
  13. stus.add(pxj);
  14. stus.add(hjn);
  15. stus.add(zsf);
  16. stus.add(zwj);
  17. // Step3: 追加一个新的学生
  18. Student ljn = new Student( "陆佳楠", "003");
  19. stus.add(ljn);
  20. // Step4: 设置班级学生属性
  21. J103.setStudents(stus);
  22. // 使用迭代器遍历
  23. // Step1:创建迭代器
  24. Iterator<Student>it = stus.iterator();
  25. while(it.hasNext()) {
  26. Studentstu = it.next();
  27. System.out.println(stu);
  28. if(stu.getName().equals( "黄佳男")) {
  29. it.remove();
  30. }
  31. }
  32. System.out.println( "处理完的结果======================");
  33. it =stus.iterator();
  34. while(it.hasNext()) {
  35. Studentstu = it.next();
  36. System.out.println(stu);
  37. }
  38. }
  39. }


8,在异常处理时,finally代码块的重要性是什么?(提示:一般在finally块中定义哪些内容)

无论是否抛出异常,finally代码块总是会被执行。就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行。最后要说的是,finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接。

9,使用JDBC书写一段查询student表的代码,从控制注意台格式化打印输出,控制台打印的格式。

  1. try {
  2. // 1. 选择数据库:加载数据库驱动
  3. Class.forName( "com.mysql.jdbc.Driver");
  4. // 2. 连接数据库
  5. conn = DriverManager.getConnection(url,user, password);
  6. // 3. 创建数据库查询
  7. ps =conn.prepareStatement( "SELECT * FROM student WHERE name = ?;");
  8. ps.setString( 1, name);
  9. // 4. 获取查询结果
  10. int i =ps.executeUpdate();
  11. System.out.println( "一共执行了" +i + "条");
  12. } catch(ClassNotFoundException e) {
  13. System.out.println( "数据库驱动没有找到");
  14. e.printStackTrace();
  15. } catch (SQLException e) {
  16. e.printStackTrace();
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. } finally {
  20. // 5. 关闭查询和连接
  21. try {
  22. if ( null != ps){
  23. ps.close();
  24. }
  25. if ( null !=conn) {
  26. conn.close();
  27. }
  28. } catch (SQLExceptione) {
  29. e.printStackTrace();
  30. }
  31. }


10,什么是泛型,为什么要使用泛型。

泛型:本质是参数化类型。

为什么要使用?创建集合的时候,往集合里面添加数据,再次取出时,集合会忘记这数据类型,该对象的编译类型就会变成Object类型,否则如果想要变回原来的数据类型的时候,就要强制进行转换。创建集合的时候,我们就指定集合类型,避免这个过程。

JSP&Servlet部分

1,什么是Servlet?解释下Servlet的生命周期。

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

 Servlet 通过调用 init () 方法进行初始化。Servlet 调用 service() 方法来处理客户端的请求。Servlet 通过调用 destroy() 方法终止(结束)。最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

2,doGet()方法和doPsot()方法有什么区别?

doGet:GET方法会把名值对追加在请求的URL后面。因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目。并且请求中的参数值是可见的,因此,敏感信息不能用这种方式传递。

doPOST:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数的数目是没有限制的。最后,通过POST请求传递的敏感信息对外部客户端是不可见的。

3,浏览器和Servlet通信使用的是什么协议?

HTTP协议,即:超文本传输协议

4,sendRedirect()forward()方法有什么区别?

相同点:都能实现页面跳转或者是服务器资源的跳转;

不同点:1、sendRedirect(“目的地”) 是response 对象的方法,forward(request,response)是request.getRequestDispatcher("目的地") 方法 返回的对象requestDispatcher 的方法;

2、sendRedirect()在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变;

3、sendRedirect() 跳转之后,不能获取request中的对象,而forward()可以获取;

4、forward()速度更快。

5,什么是JSP?JSP有什么优点?

JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。

JSP的优点:

·对于用户界面的更新,其实就是由 WebServer进行的,所以给人的感觉更新很快。

·所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。

·客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。

6,使用JSTL结合EL表达式,完成一个在JSP输出表格tbody体内容的代码(表格内容自拟)

 

  1. <%@ page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@ taglibprefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <html>
  4. <body>
  5. <div class="row">
  6. <form class="form-inline"action="/test">
  7. <divclass="form-group">
  8. <labelclass="label-middle">开始时间 </label> <inputsize="16" type="text" value="${startTime}"name="startTime">
  9. <labelclass="label-middle">结束时间 </label> <inputsize="16" type="text" value="${endTime}"name="endTime">
  10.   <buttontype="submit">查询 </button>
  11. </div>
  12. </form>
  13. </div>
  14. <div class="row margin-top-20">
  15. <table class="table">
  16. <thead>
  17. <tr>
  18. <thclass="seq">序号 </th>
  19. <th>时间 </th>
  20. <th>MSG </th>
  21. </tr>
  22. </thead>
  23. <tbody>
  24. </tbody>
  25. <c:forEach var="data"items="${datas}" varStatus="loop">
  26. <tr>
  27. <td>${loop.index +1} </td>
  28. <td>${data.time} </td>
  29. <td>${data.msg} </td>
  30. </tr>
  31. </c:forEach>
  32. </table>
  33. </div>
  34. </body>
  35. </html>

7,MVC是什么意思?MVC的优点有哪些?

MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

1:耦合性低

2:重用性高

3:部署快

4:可维护性高

5:有利软件工程化管理

8,在一个典型的Web应用中,被Nutz的Ioc容器管理的对象有哪些?

 javabea

9,在Nutz中,已知一个dao对象,书写如下代码:

1,查询ID为1的Student对象;

2,添加一个新的Student对象数据到数据库;

3,查询所有的age在18~20岁之间的学生数据,并放置到一个List集合中。

1,Student p =dao.fetch(Student.class,1);

System.out.println(p.getId());

2,Student p =new Student();

p.setName("Peter");

p.setAge(22);

dao.insert(p);

System.out.println(p.getId());

3,List<Student>people = dao.query(Student.class, Cnd.where("age","between", 18,20));

猜你喜欢

转载自blog.csdn.net/wangjianxin1234/article/details/80840033
今日推荐