笔试第一份

Section1-Java

1.下面程序的运行结果是()

a)答案:false

  String str1 = “hello”;

  String str2 = “he”+new String(“llo”);

  System.err.println(str1 == str2);

b)
  public static void main(String args[]){
    Thread t = new Thread(){
      public void run(){
        pong();
      }
    };
    t.run();
    System.out.print("ping");
  }
  static void pong(){
    System.out.print("pong");
  }
答案:pongping
c)
class HelloA{
  public HelloA(){
    System.out.printIn("HelloA");
  }
  {System.out.printIn("I'm A class");}
  static {System.out.printIn("static A");}
}
public class HelloB extends HelloA{
  public HelloB(){
    System.out.printIn("HelloB");
  }
  {System.out.printIn("I'm B class");}
  static {System.out.printIn("static B");}
  public static void main(String [] args){
    new HelloB();
  }
}
答案:static A
   static B
   I'm A class
   Hello A
   I'm B class
   Hello B

2.请指出下列代码段中的错误或不足指出,并说明该如何改进(这些代码段都是可以成功编译)

(暂时不想写了)

 

3.在写一个类时,可能会需要覆写hashCode()和equals()方法,这两个方法的意义是什么,为什么需要去覆写?

答:hashCode()意义:给不同对象返回不同的hash code值,相当于识别码;

  equals()意义:用于判断其它对象是否与该对象相同;

  需要覆写的原因是:如果你想这个类的对象能比较的话,就要覆写equals方法,因为只有覆写了这个方法,

  JVM才知道根据什么判断这两个对象是相同的。当一个类覆写了equals(),就必须覆写hashCode(),不然

  在作为key使用时,会存入相同的key或者取不出已经存在的结果。

Section2-Oracle(以下问题基于Oracle数据库或MySQL数据库)

 1.写一条SQL/MySQL,来表示A表左连接B表。

  答:select * from A LEFT JOIN B A.cloums = B.cloums

  (没给字段,自己添加的colums)

  内连接(inner join...on/....join...on...)

  左连接(左外连接)left join...on...

  右连接(右外连接)right join...on...

  全外连接full join...on...

2.数据库中的索引有什么作用?它又会对数据库带来什么负面影响?

答:作用

  1.通过创建唯一索引,可以保证数据库表中每一行数据的唯一性;

  2.可以大大加快数据的检索速度,这也是创建索引的最主要原因;

  3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义;

  4.在使用分组和排序自居进行检索是,同样可以显著减少查询中分组和排序的时间;

  5通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统的性能。

  负面影响:

  1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;

  2.索引需要占物理空间,处理数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索                    引,那么需要的空间就会更大;

  3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

3.如何用oracle中使用SQL来做分页查询?并且如何保证分页的结果按照某个子弹的顺序固定的?请写出一条示例的SQL来说明。

答:oracle中使用SQL分页查询:

方法一:

经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!

SELECT *
FROM (Select ROWNUM AS ROWNO, T.*
from k_task T
where Flight_date between to_date('20060501', 'yyyymmdd') and
to_date('20060731', 'yyyymmdd')
AND ROWNUM <= 20) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO >= 10;

方法二:

经过测试,此方法随着查询范围的扩大,速度也会越来越慢!

SELECT *
FROM (SELECT TT.*, ROWNUM AS ROWNO
FROM (Select t.*
from k_task T
where flight_date between to_date('20060501', 'yyyymmdd') and
to_date('20060531', 'yyyymmdd')
ORDER BY FACT_UP_TIME, flight_no) TT
WHERE ROWNUM <= 20) TABLE_ALIAS
where TABLE_ALIAS.rowno >= 10;

Section3-JSP

1.请回答HttpServlet中的方法有哪些?哪个方法来调用doPost();doPost()和doGet()的区别?

答: 1.init()方法

   2.service()方法

   3.doGet()方法

   4.doPost()方法

   5.destroy()方法

   6.GetServletConfig()方法

   7.GetServletInfo()方法

 

  post方法调用doPost()方法;

 

  get和post的本质区别:get只有一个流,参数附加在url后,大小个数都有严格的限制,且只能是字符串;

  post的参数不通过url而是通过其他流的传递参数,所以可以很大,也可以传递二进制数据,例如上传文件。

  post比get安全;由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用会把

  传递给Servlet的参数再URL里显示出来,这样对系统安全方面存在问题;而POST请求则通过其他流传递参数,  

  不会再URL中显示,更安全;例如用户登录时,如果是用GET调用会把用户账号密码都显示在URL中,用POST

  调用则不会显示。 

  服务器接收方式:服务器随机接收get方法的数据 ,一旦断电等原因,服务器也不知道信息是否发送完毕,而

  post方法,服务器先接收数据信息的长度,然后再接收数据。

2.回答自定义Tag如何来写?继承买哪个类?Overwrite.....?

答:(现在谁还用jsp啊,难找,不写)

 

posted @ 2021-03-16 21:18  浮夸不简单  阅读(64)  评论(0)    收藏  举报