1Java程序员笔试题一、单项选择题(共10题,每题2分,共20分)1.下列说法哪一个是正确的。(B)A.Java程序经编译后会产生machinecodeB.Java程序经编译后会产生bytecodeC.Java程序经编译后会产生DLLD.以上都不正确2.提供Java存取数据库能力的包是。(A)A.java.sqlB.java.awtC.java.langD.java.swing3.执行如下程序代码后,C的值是。(C)a=0;c=0;do{--c;a=a-1;}while(a0);A.0B.1C.-1D.死循环4.下面的语句中正确的表达式为。(C)A.byteb=128;B.booleann=null;C.doubled=0.9239d;D.floatf=0.9239;5.将一个十六进制值赋给一个long型变量的正确写法为。(D)A.longnumber=345L;B.longnumber=0345;C.longnumber=0345L;D.longnumber=0x345L;6.以下程序代码的输出是。(B)publicclasstest(publicstaticvoidmain(Stringargs[])(System.out.printIn(6^3);))A.3B.5C.6D.117.以下程序代码的输出是。(E)publicclasstest(privatestaticintj=0;privatestaticbooleanmethodB(intk)(j+=k;2returntrue;)publicstaticvoidmethodA(inti){booleanb:b=i10|methodB(4);b=i10||methodB(8);)publicstaticvoidmain(Stringargs[]}(methodA(0);system.out.printIn(j);))A.0B.4C.8D.12E.不能编译通过8.以下程序代码的输出是。(A)publicclasstest{publicstaticvoidadd3(Integeri)}intval=i.intValue();val+=3;i=newInteger(val);}publicstaticvoidmain(Stringargs[]){Integeri=newInteger(0);add3(i);system.out.printIn(i.intValue());})A.编译失败B.编译成功但在第三行会出现异常C.0D.39.以下程序代码执行后,哪个说法正确?(B)intindex=1;boolean[]test=newBoolean[3];booleanfoo=test[index];A.有异常抛出。B.无法编译。C.foo的值是0。D.foo的值是null。E.foo的值是true。F.foo的值是false。10.以下哪个类是swt包中的。(D)A.MessageBoxB.MessageDialogC.JDialogD.DisplayMode3多项选择题(共5题,每题4分,共20分)11.在下面的选项中合法的标识符有。(ADEF)A._okB.*pointC.thisD.$byteE.constF.ILikeJLCSS12.下面的选项中哪些不是java的关键字。(ABD)A.TRUEB.sizeofC.gotoD.constE.superF.void13.下面的叙述中正确的有。(AC)A.环境变量可在编译sourcecode时指定。B.在编译程序时,所能指定的环境变量不包括classpath。C.javac一次可同时编译数个Java源文件。D.javac.exe能指定编译结果要置于哪个目录(directory)。14.下面的叙述中正确的有。(C)A.equals()方法判定引用值是否指向同一对象。B.==操作符判定两个分立的对象的内容和类型是否一致。C.equals()方法只有在两个对象的内容一致时返回true。D.类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。15.下面有关变量及其作用域的陈述哪些是对的。(AC)A.在方法里面定义的局部变量在方法退出的时候被撤销。B.局部变量也叫自动变量。C.在方法外面定义的变量(译注:即实例变量)在对象被构造时创建。D.在方法中定义的方法的参变量只要该对象被需要就一直存在。二、简答题(共7题,共40分)1.请写出一个输出“HelloWorld!”的程序。(3分)答:publicClassHelloWorld{Publicstaticvoidmain(String[]args){System.out.println(“HELLOWOTLD”);}}2.char型变量中能不能存贮一个中文汉字?为什么?(3分)4答:能存储一个汉字;因为它能存储四个字节而每个汉字只占两个字节。3.常见的两种xml解析技术是什么?区别是什么?(4分)答:常见的两种有:SAX和DOM。区别:SAX是一种事件驱动的xml解析方式。每次访问一个xml文件中的某个节点的时候,sax就会搜索一遍xml文件,在找到相应的节点后就会触发一个事件来处理请求。只读DOM是一种基于树状的查找方式。DOM会将xml解析成一棵树,存在内存中。开发者可以通过查找树的节点来取得文件的内容或者修改内容。可读写4.MVC是什么,如何实现?(5分)答:MVC是一个是一个设计模式,它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分为三个核心部件:M----------MODO模型,V----------VIEW试图,C---------Contral控制实现:首先有页面(jsp)发送请求给控制器(servlet),然后由控制器接收用户的请求,并决定应该调用哪个模型(javabean)来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层显示给用户。5..J2EE是什么?(6分)答:J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprieseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。6.jsp有哪些内置对象?作用分别是什么?(9分)答:1.request用户端请求,此请求会包含来自GET/POST请求的参数;2.response网页传回用户端的回应;3.pageContext网页的属性是在这里管理;4.session与请求有关的会话期;5.applicationservlet正在执行的内容;6.out用来传送回应的输出;7.configservlet的构架部件;8.pageJSP网页本身;9.exception针对错误网页,未捕捉的例外7.作用域public,private,protected,以及不写时的区别?(10分)答:作用域当前类同一package子孙类其他packagepublic√√√√protected√√√×friendly√√××private√×××不写时默认为friendly编码及论述题(共2题,每题10分,共20分)8.什么是Singleton,它的作用是什么,它有几种形式?请用代码写出一个Singleton类。答:JavaSingleton模式用来保证在运行的应用程序中,一个Class只是实例化一次,5也就是只有一个相应的对象存在。它有三种形式publicclassSingleton{privatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance(){if(instance==null)instance=newSingleton();returninstance;}}9.在Struts+Spring+Hibernate的组合框架模式中,三者各自的特点都是什么?答:StrtusWEB层Spring是业务层Hiebenate是持久化层SSH试题1.Hibernate工作原理及为什么要用?原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Session4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory为什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。2.Hibernate是如何延迟加载?1.Hibernate2延迟加载实现:a)实体对象b)集合(Collection)2.Hibernate3提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存6在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many4.Struts1流程:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被ActionServlet接收。3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action进行处理。4、是否验证,需要验证则调用ActionForm的validate方法,验证失败则跳转到input,成功则继续。5、Action从ActionForm获得数据,调用javabean中的业务方法处理数据。6、Action返回ActionForward对象,跳转到相应JSP页面或Action。7、返回HTTP响应到客户端浏览器。MVC设计模式:modal:“模型”也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射5.struts是什么?struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架6.spring是什么?spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注入)和AOP(面向切面编程)7.hibernate是什么?hibernate是基于ORM对象关系映射(完成对象数据到关系数据映射的机制)实现的,做数据持久化的工具8.JSF是什么?JavaServerFace是基于组件的web开发框架,跟sturts差不多的框架9.数据库里面的索引和约束是什么?索引是为了提高数据的检索速度,索引是建立在数据表上,根据一个或多个字段建立的约束是为