1/6笔试题(答对要点即可得分)1.接口与抽象类的区别Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstractclass中则可以既有方法的具体实现,又有没有具体实现的抽象方法)一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。2.字节流与字符流的区别字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容3.==与equals的区别在JAVA中利用==比较变量时,系统使用变量在栈中所存的值作为比较的依据。基本数据类型在栈中存的是其内容值,而对象类型在栈中存的是地址,这些地址指向堆中的对象。java.lang包中的Object类有publicbooleanequals(Objectobj)方法,它比较两个对象是否相等。其它对象的equals方法仅当被比较的两个引用指向的对象内容相同时,对象2/6的equals()方法返回true。总之,==和!=比较的是地址.也可认为==和!=比较的是对象句柄;而equals()比较的是对象内容.或者说,,==和!=比较的是栈中的内容,而equals()比较的是堆中的内容.4.Js变量的生命周期根据作用范围来区分,超出作用范围就会失效如果为全域变量,页面关闭才失效。否则一直有用。5.写出函数DateDemo的返回结果,系统时间假定为今天functionDateDemo(){vard,s=今天日期是:;d=newDate();s+=d.getMonth()+/;s+=d.getDate()+/;s+=d.getYear();returns;}今天日期是:11/4/2014(当前日期20141204)6.分别说出视图与索引的作用视图的优点数据安全性查询简单化逻辑数据独立性视图的缺点性能修改限制索引优点:3/6索引可以加快查询速度,不用扫描整个表索引缺点索引虽然加快查询的速度,但是会降低写入操作,比如插入,修改,删除数据索引要占据磁盘空间,索引越多占据空间越大7.scriptvarx=1,y=z=0;functionadd(n){n=n+1;}y=add(x);functionadd(n){n=n+3;}z=add(x);/script问执行完毕后x,y,z的值分别是多少?x=1,y=undefined,z=undefined8.用一条SQL语句查询出每门课都大于80分的学生姓名namekechengfenshu张三语文81张三数学75李四语文76李四数学90王五语文814/6王五数学100王五英语90SELECTDISTINCTnameFROMtableWHEREnamenotin(SELECTDINSTINCTnameFROMtableWHEREfenshu=80)9.Spring的工作机制及优点1.springmvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.3.DispatcherServlet将请求提交到目标Controller4.Controller进行业务逻辑处理后,会返回一个ModelAndView5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6.视图对象负责渲染返回给客户端AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成切面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC就像反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单例(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。Spring既是一个AOP框架,也是一个IOC容器。Spring最好的地方是它有助于替换对象。有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象),就可以很容易地在需要时替换具有类似接口的协作对象5/610.以下程序运行结果是什么publicclassTestextendsFather{privateStringname=”test”;publicstaticvoidmain(String[]args){Testtest=newTest();System.out.println(test.getName());}}classFather{privateStringname=”father”;publicStringgetName(){returnname;}}father11.Class.forName()与new的区别及其各自特点StringclassName=Example;classc=Class.forName(className);factory=(ExampleInterface)c.newInstance();Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载javaAPI的那个加载器。从JVM的角度看,使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。分步的好处是显而易见的:可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。6/6最后用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance:弱类型。低效率。只能调用无参构造。new:强类型。相对高效。能调用任何public构造。12.列出你所了解的js调试方法使用alert()和document.write()方法监视变量值使用window.onerror事件使用try...catch语句找错误使用相关调试器在Firefox浏览器中,可以使用其自带的“错误控制台”。在IE浏览器中,可以使用MicrosoftScriptDebugger调试器等等。