一份java笔试题.doc_第1页
一份java笔试题.doc_第2页
一份java笔试题.doc_第3页
一份java笔试题.doc_第4页
一份java笔试题.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

A)这个程序会输出什么?public class Test static System.out.println(*); public static final String a = sss;public class TestMain public static void main(String args) System.out.println(Test.a); 如果Test和TestMain写在一个java文件中,那么这段程序是不能运行的,会出错,因为在一个java文件中不能有两个public修饰的类。如果Test和TestMain是两个独立的java文件,那么这段程序的运行结果是 sss 。B)以下程序输出什么public class TestException public int thowSth() try System.out.println(before throw); if(true) throw new Exception(); return 0; catch(Exception e) return 1; finally System.out.print(finally); TextException这个类没有main方法,不能独立的运行,所以不会输出任何信息。C)这行代码究竟创建了几个String对象?String str = new String(abc);如果在这句代码执行之前,String Pool里面有了”abc”,那么这句代码执行之后,将会创建一个对象,如果在这句代码只想之前,String Pool里面没有”abc”,那么这句代码执行之后便会创建两个新的对象。D)以下代码输出什么?(注意带下划线部分)class ForTestInherit public static int STATIC_A = 0; public int normal_b = 10; public void doTest() System.out.println(this is parent); class ForTestInheritChild extends ForTestInherit public static int STATIC_A = 1; public int normal_b = 11; public void doTest() System.out.println(this is child); public class TestInherit public static void main(String args) ForTestInherit objParent = new ForTestInherit(); ForTestInherit objChild = new ForTestInheritChild(); System.out.println(ForTestInherit.STATIC_A); System.out.println(ForTestInheritChild.STATIC_A); System.out.println(objParent.STATIC_A); System.out.println(objChild.STATIC_A); System.out.println(objParent.normal_b); System.out.println(objChild.normal_b); objParent.doTest(); objChild.doTest(); 01001010this is parentthis is childE)列出java反射机制的一个使用场景(比如,你看到的那些项目的那些功能用到了java反射机制)举个例子:在用jdbc链接MySql时Class.forName(“com.mysql.jdbc.Driver”);意思就是返回一个com.mysql.jdbc.Driver的类对象F-1)写出一个int数组的排序函数(从小到大),假设数组中所有的元素都已经初始化,并且每个数字都不相同 public void sort(int array) int temp = 0;for(int i = 0 ; i array.length;i+)for(int j = i; j array j)temp = array i;array i = array j;array j = temp;F-2)接上题,数组已经排序完毕,要求按 折半查找法 查出某个值value在数组中的下标,假设value肯定在数组中,给出代码先写一方法:public int binarySearch(int a , int value),然后调用该方法,便可。具体方法如下:public int binarySearch(intarray,int value)int startPos = 0;int endPos = array.length-1;int middlePos = (startPos+endPos)/2;while(startPosvalue)endPos=middlePos-1;else if(arraymiddlePosvalue)startPos = middlePos+1;middlePos = (startPos+endPos)/2;return -1;F-3)接上题,写出折半查找法的时间复杂度数组的长度是N=array.length在最坏的情况下,总共需要进行logN次比较,那么折半查找法的时间复杂度就是O(logN)G)写出Servlet中,forward和redirect的区别redirect 方式:向客户浏览器发送页面重定向指令,跳转后浏览器地址栏变化,页面的路径是绝对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递forward方式:直接在服务器中进行处理,将处理完后的信息发送给浏览器进行显示,,跳转后浏览器地址栏不会变化,页面的路径是相对路径。forward方式只能跳转到本web应用中的页面上,使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttributeH)写出session和cookie的区别session是记录在客户端的,session是记录在服务器端的。session 关掉浏览器即消失,cookie 可以写在用户的电脑里,失效期限与cookie设置有关。一般关掉浏览器不会消失,和时间设置有关。I)jsp页面可以引用的隐含对象一共有几个?Jsp页面一共有9个隐含对象写出其中至少4个request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例. application对象:application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。 Z)翻译(本文关于java泛型)(代码部分可以不翻译,用随意的标记带过)When you take an element out of a Collection, you must cast it to the type of element that is stored in the collection. Besides being inconvenient, this is unsafe. The compiler does not check that your cast is the same as the collections type, so the cast can fail at run time. 当你从集合里面取出一个元素时,你必须先将它转型成你之前存进时的类型,除了造成不便,而且这样还不安全,编译器不会检查你转型后的类型是否符合几集合的类型,所以在转型后的类型在运行期间有可能出错。Generics provides a way for you to communicate the type of a collection to the compiler, so that it can be checked. Once the compiler knows the element type of the collection, the compiler can check that you have used the collection consistently and can insert the correct casts on values being taken out of the collection. 泛型为你提供了一种与编译器交互集合类型的方式,以至于集合存储的类型能够被检查。一旦编译器知道了集合中元素的类型,编译器就能够一直的检查你正在使用的集合存储类型,而且当元素被取出集合时,还能够为元素插入正确类型的值。Here is a simple example taken from the existing Collections tutorial: 这里有一个摘自现成的集合指南的简单例子。/ Removes 4-letter words from c. Elements must be stringsstatic void expurgate(Collection c) for (Iterator i = c.iterator(); i.hasNext(); ) if (String) i.next().length() = 4) i.remove();Here is the same example modified to use generics: 这里有个同样的例子,是使用集合定义的:/ Removes the 4-letter words from cstatic void expurgate(Collection c) for (Iterator i = c.iterator(); i.hasNext(); ) if (i.next().length() = 4) i.remove();When you see the code , read it as “of Type”; the declaration above reads as “Collection of String c.” The code using generics is clearer and safer. We have eliminated an unsafe cast and a number of extra parentheses. More importantly, we have moved part of the specification of the method from a comment to its signature, so the compiler can verify at compile time that the type constraints are not violated at run time. Because the program compiles without warnings, we can state with certainty that it will not throw a ClassCastException at run time. The net effect of using generics, especially in large programs, is improved readability and robustness. 当你看见代码,读成“类型的”,以上的申明读作“字符串”的集合,使用了泛型的代码显得很简洁而且安全。我们已经去除了不安全的转型和额外很多的圆括号。更加重要的是:我们去除了一些原本附加在方法说明上的约定,这样编译器就能在编译期间检查强制的类型在运行期间是不会出错的。因为程序没有警告的编译,我们就能够确定程序在运行期间不会抛出类型转换异常。使用泛型的好处,特别是在大的程序中,可以提高程序的可读性和健壮性。综合设计题 (2选1)1)假设需要完成一个网上购物的购物车模块,请给出你认为的最主要代码以及设计思路使用List和Map实现购物车。a)购物车的增加功能:在进行购物时先从session中取出list看是否为空?如果为null表示第一次购买物品,需要new一个list对象,然后把购物的商品的信息储存到新new出来的一个map对象中,将这个map对象整体存储到list中,在将list存储到session中即可。如果不为null表示,本次购买商品之前已经购买过商品了,可以取出list中商品进行遍历,在遍历出list中的所有的map,使用本次购买的商品的编号和已经存在的商品的编号循环对比看是否已经买过此类商品?如果已经买过了,取出商品原来的商品数量,再此基础上增加一个,再存回map中,即可。如果没有购买过此类商品,那么就新new一个map来存储新类别的商品,然后再把map整体存储到list中,然后在把list存储到session中,即可。b)购物车的删除功能:通过删除的超链接,传递所要删除的商品的编号,然 后从session中取出list,再从list中遍历出map,遍历的同时开始循环,比较看传递过来的商品编号和已经存在的商品编号哪个是一致的找到一 致的,我们就从list中移除掉,然后把list再重新存入到session中即可。c)购物车中商品数量修改的功能:再点击修改数量的超链接的时候,需要将商品的编号 和要修改为的数量都进行传递,获取商品编号和要修改后的数量,通过要修改的商品的编号去和session中取出的list中遍历出来的map存储的商品编 号进行对比,找到一致的商品编号,将其商品的数量赋予新传递的值,对其进行覆盖即可。代码: publicclassShopCartimplementsSerializable publicShopCart() privateListcart=null; /* *添加一个产品到购物车 *paramproductProduct */ publicvoidaddProductToCart(Productproduct) if(cart=null) cart=newArrayList(); Iteratorit=cart.iterator(); while(it.ha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论