面试题目之一

Posted on 2016-07-04 20:04  笑面树骑士  阅读(271)  评论(0)    收藏  举报

一、抽象类和抽象方法  abstract

抽象方法:在类中没有方法体的方法,就是抽象方法。

抽象类:含有抽象方法的类就叫抽象类。

抽象类中的抽象方法必须被实现!

如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!

抽象类中的普通方法,可以不必实现。

 

1 、用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时

 

,该方法叫做抽象方法。例如 :

abstract class Animal { //用abstract来定义一个Animal为抽象类

}

 

public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy"

 

2、 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

 

3、 抽象类不能被实例化。

 

4、 抽象方法只需声明,而不需实现某些功能。

 

二、切换验证码

    <script type="text/javascript">

  $(function(){

      //切换验证码图片

           $("#ImgOut,#ImgIn").click(function(){

                 //每次点击改变路径

                 $("#ImgOut").attr("src","../CheckImage?msg="+new Date

 

());

           });

  </script>

 

三、哈希吗hashcode值

1、哈希吗的作用

hashCode方法的作用

当集合要添加新的对象时,先调用这个对象的hashCode方法,得到对应的hashcode值,实际上在HashMap的具体实现中会用一个table保存已经存进去的对象的hashcode值,如果table中没有该hashcode值,它就可以直接存进去,不用再进行任何比较了;如果存在该hashcode值, 就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址,所以这里存在一个冲突解决的问题,这样一来实际调用equals方法的次数就大大降低了,说通俗一点:Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值;

hashCode方法的存在是为了减少equals方法的调用次数,从而提高程序效率。

 

因此有人会说,可以直接根据hashcode值判断两个对象是否相等吗?肯定是不可 以的,因为不同的对象可能会生成相同的hashcode值。虽然不能根据hashcode值判断两个对象是否相等,但是可以直接根据hashcode值判 断两个对象不等,如果两个对象的hashcode值不等,则必定是两个不同的对象。如果要判断两个对象是否真正相等,必须通过equals方法。

  也就是说对于两个对象,如果调用equals方法得到的结果为true,则两个对象的hashcode值必定相等;

  如果equals方法得到的结果为false,则两个对象的hashcode值不一定不同;

  如果两个对象的hashcode值不等,则equals方法得到的结果必定为false;

如果两个对象的hashcode值相等,则equals方法得到的结果未知。

 

 

1,         jsp中的九大内置对象和四大范围对象

九大内置对象out  response request pagecontext  session application  config  page  exception

 

jsp四大范围对象:page request session application

 

2,         简述EL表达式的作用及隐含对象

EL表达式作用:使jsp的代码更加的简捷

与范围相关的隐含对象:pageScope  requestScope  sessionScope  applicationScope

与输入相关的对象:param  paramValues 

其他隐含对象:cookie  header  headerValues initParam  pageContext

3,         Jsp中静态的include 和动态的include的区别

静态include 语法:<%@ include  file=”file”%>相对于当前文件  静态页面的导入  不会检查当前文件的变化

动态include 语法:<jsp:include page=”page”  />相对于当前页面  动态网页的导入  始终会检查当前页面的变化

4,         SERVLET API中forward() 和sendirect()的区别

Forward()转发:由服务器访问指定的url,地址栏不会发生变化,客户端只请求了一次,转发的过程中服务器可以获取客户端的其他请求

Sendirect()重定向:由客户端重新发送请求url 地址栏的地址发生变化,客户端至少请求了2次,在定向的过程中服务器不能接受客户端的其他请求。

 

5,         JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么

jsp和servlet的区别和联系:

1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)

2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.

3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.

Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

联系: JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。