JavaEE练习题(附答案)
JavaEE期末考试题及答案桂电三院

Java EE期末考试•填空题:•Java EE为满足开发多层体系构造企业级应用需求,提出_组件-容器________编程思想。
Java EE应用根本软件单元是_Java EE 组件_______. 根本软件单元运行环境被称为___容器________.•两层体系构造应用程序分为__客户层_____与____效劳器层_____.•所谓企业级应用程序,并不是特指为企业开发应用软件,而是泛指那些为_大型组织部门__创立应用程序。
•在三层分布式企业应用程序中,包括_客户层____,__应用效劳器层_____,____数据效劳器层______三层。
•Java EE客户端组件既可以是__一个Web浏览器__________、___一个Applet________,也可以是一个__应用程序______.•Servlet组件在进展重定向时,需要使用ServletResponse接口方法是__sendRedirect()______.•ServletRequest提供了两个方法用于从请求中解析出上传文件:___Part getPart〔String name〕___________与__Collection<Part>getParts()___________。
•Java EE 6提供组件主要包括三类:_客户端组件____,__Web组件____,_业务组件____.•Servlet配置参数保存在__ServletConfig()______________对象中,一个Servlet该配置对象〔能/否〕___否〔不能〕__________被其他Servlet访问。
•Servlet支持两种格式输入/输出流:__字符输入/输出流______与__字节输入/输出流_。
•MIME全称是_多媒体Internet邮件扩展____, ServletResponse 中响应正文默认MIME类型为_text/plain______________, 而ServetResponse中响应正文默认MIME类型为__text/html_________________.•PDF文件MIME类型是__application/pdf________________, Microsoft Word文档类型是__application/msword___________。
JavaEE测试题带答案(仅供借鉴)

1.在Java中的变量命名规范中,下面命名正确两项的是( ) (选择两项)a)¥moneyb)$intc)intd)*i2.绘制流程图时,下面()代表判断和分支。
(选择一项)a)矩形b)椭圆c)菱形d)圆形3.在Java环境中给出如下代码,编译运行的输出结果是()。
public class Test{intx=1;inty=2;public int cal(intx,inty){int z=x+y;return z;}public static void main(String args[]){Test d = newTest();z=d.cal(d.x,d.y);System.out.println(z);}}(选择一项)A) 3B) 0C) 编译错误D) 编译通过,但运行时出错4.下列选项中关于枚举说法错误的是()。
(选择一项)a)枚举类型是从JavaSE5.0开始引入的一种新类型b)枚举类型使用关键字enum定义c)枚举是指由一组固定的常量组成的类型d)在枚举中,除了可以定义枚举常量以外不能出现其他成员5. 在Java中,以下关于多态说法错误的是()。
(选择一项)a)实现多态的一个前提是要有继承关系b)将一个父类的引用指向一个子类对象,要进行强制类型转换c)父类引用变量指向其子类对象是实现多态的一个条件d)使用多态可以提高代码的可扩展性和可维护性6. 在Java中,如下代码段的输出结果为()。
Strings="hello";s.substring(2,4);System.out.println(s.length());(选择一项)a) 5b) 2c) 4d) 37. 在Java中,如下代码的输出结果是()。
public static void main(String[]args){char c[]={'1','2','3','4'};for(inti=0;i<c.length/2;i++){char d=c[i];c[i]=c[c.length-(i+1)];c[c.length-(i+1)]=d;}for(inti=0;i<c.length;i++){System.out.print(c[i]);}}(选择一项)a)1234b)3412c)1324d)43218. 关于Java中static关键字的说法错误的是()。
javaee 结项考试试卷(含答案)

JavaEE结项考试试卷(后附答案)一、单选题(共15小题,每小题2分,满分30分)1、Java是从()语言改进重新设计。
A. AdaB. C++C. PasacalD. BASIC2、下列语句哪一个正确()A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD. 以上都不正确3、已知如下定义:String s = "story"; 下面哪个表达式是合法的?()A. s += "books";B. char c = s[1];C. int len = s.length;D. String t = 100;4、执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循环5、String s=new String(“xyz”); 创建了几个String对象?()A. 1个B. 2个C.3个D.4个6、当你执行以下查询语句:SELECT empno,ename FROM emp WHERE empno=7782 OR empno=7876;在WHERE语句中,以下哪个操作符可以取代OR?()A. INB. BETWEEN ……C. LIKED. <=E. >=7、下面关于Spring的说法中错误的是()?A. Spring是一系列轻量级Java EE框架的集合B. Spring中包含一个“依赖注入”模式的实现C. 使用Spring可以实现声明式事务D. Spring提供了AOP方式的日志系统8、下列语句正确的是()A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象9、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法10、下面关于AOP的说法错误的是?()A. AOP将散落在系统中的“方面”代码集中实现B. AOP有助于提高系统的可维护性C. AOP已经表现出了将要替代面向对象的趋势D. AOP是一种设计模式,Spring提供了一种实现11、关于以下application的说明,正确的是()class StaticStuff{static int x=10;static { x+=5;}Public static void main(String args[ ]){System.out.println(“x=”+ x);}static { x/=3;}}A. 4行与9行不能通过编译,因为缺少方法名和返回类型B. 9行不能通过编译,因为只能有一个静态初始化器C. 编译通过,执行结果为:x=5D. 编译通过,执行结果为:x=312、下列哪些语句关于Java内存回收的说明是正确的? ()A. 程序员必须创建一个线程来释放内存B. 内存回收程序负责释放无用内存C. 内存回收程序允许程序员直接释放内存D. 内存回收程序可以在指定的时间释放内存对象13、有如下代码段:1)2){ if(unsafe()){//do something…}3) else if(safe()){//do the other…}4) }其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?()A. public IOException methodName()B. public void methodName()C. public void methodName() throw IOExceptionD. public void methodName() throws IOException14、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是( )A.配置客户和订单关联的cascade属性为save-updateB. 配置客户和订单关联的cascade属性为allC. 设置多对一关联的inverse属性为trueD. 设置多对一关联的inverse属性为false15、下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号二、不定项多选题(共10小题,每小题2分,满分20分)1.Java程序的种类有()A.类(Class)B.AppletC.ApplicationD.Servlet2.下列说法正确的有()A.环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)3.下列标识符不合法的有()A.newB.$UsdollarsC.1234D.car.taxi4.下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变5.不能用来修饰interface的有()A.privateB.publicC.protectedD.static6、在EL表达式中,与范围有关的EL隐含对象有()?A. pageScopeB. requestScopeC. sessionScopeD. applicationScopeE. pageContextScope7.下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法8. Stust2 Action类得到request\session对象的方式( )A. 与servlet无关的非IOCB. 与servlet相关的非IOCC. 与serlvet相关的IOCD. 与servlet无关的IOC9.下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法10. 编译并运行下面的程序,运行结果为( )public class Example{public static void main(String args[] ){int l=0;do{System.out.println(“ Doing it for l is:” +l);}while(--l>0)System.out.println(“ Finish” );}}A. Doing it for l is 3B. Doing it for l is 1C. Doing it for l is 2D. Doing it for l is 0E. Doing it for l is –1F. Finish三、填空题(本大题共20空,每空 1 分,共 20分)1.一个Java源程序是由若干个组成。
javaee大学考试题及答案

javaee大学考试题及答案一、选择题(每题2分,共20分)1. 在Java EE中,以下哪个不是EJB的类型?A. 会话BeanB. 实体BeanC. 消息驱动BeanD. 数据访问Bean答案:D2. 下列哪个不是Servlet的生命周期方法?A. init()B. service()C. destroy()D. start()答案:D3. 在Java EE中,以下哪个不是JPA实体的注解?A. @EntityB. @TableC. @ColumnD. @Database答案:D4. JSF框架中,以下哪个不是UI组件的属性?A. valueB. bindingC. idD. action答案:D5. 在Java EE中,以下哪个不是JSP的隐式对象?A. requestB. responseC. sessionD. application答案:B6. 在Java EE中,以下哪个不是JAX-RS的注解?A. @PathB. @GETC. @ProducesD. @RequestMapping答案:D7. 在Java EE中,以下哪个不是CDI的注解?A. @InjectB. @NamedC. @ScopeD. @Autowired答案:D8. 在Java EE中,以下哪个不是JPA的查询类型?A. JPQLB. SQLC. Criteria APID. Native SQL答案:B9. 在Java EE中,以下哪个不是JSF的组件?A. UIInputB. UIOutputC. UICommandD. UIAction答案:D10. 在Java EE中,以下哪个不是EJB的事务管理类型?A. Bean-managedB. Container-managedC. LocalD. Distributed答案:C二、填空题(每空1分,共20分)1. 在Java EE中,________是用来处理HTTP请求和响应的。
JavaEE课程考试试卷与答案

JavaEE课程考试试卷专业:考试日期:时间:总分:100 分闭卷一大题:单选题(共7小题,每小题2分,共14分)1、为了实现在Java的程序中调用带参数的SQL语句,应该采用那个类来完成。
(A)Connection类(B)PreparedStatement类(C)CallableStatement类(D)Statement类2、在JDBC连接数据库编程应用开发中,利用那个类可以实现连接数据库。
(A)Connection类(B)PreparedStatement类(C)CallableStatement类(D)Statement类3、下面哪个语句能实现对图片加链接的功能。
(A) <a href=”index.html”><img src=”a.gif”></a>(B) <a page=”index.html”><img src=”a.gif”></a>(C) <a forward=”index.html”><img src=”a.gif”></a>(D) <a redirect=”index.html”><img src=”a.gif”></a>4、假设在studentmgr应用中有一个RegisterServlet类,它在web.xml文件中的配置如下: <servlet><servlet-name> RegisterServlet </servlet-name><servlet-class>servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name> RegisterServlet </servlet-name><url-pattern>/servlet/register</url-pattern></servlet-mapping>那么在浏览器端访问HelloServlet的URL是什么?(A) http://localhost:8080/RegisterServlet(B) http://localhost:8080/studetnmgr/RegisterServlet(C) http://localhost:8080/studentmgr/servlet/register(D) http://localhost:8080/studetnmgr/register5、欲从配置文件中获得ServletContext的参数值,应该调用下面的哪个方法?(A)调用HttpServletRequest对象的getAttribute()方法(B)调用ServletContext对象的getAttribute()方法(C)调用Servlet的getServletConfig().getInitParameter()方法(D)调用Servlet的getServletContext().getInitParameter()方法6、下面哪个标签能把表单中的参数接收到JavaBean的属性里。
JavaEE练习答案

一、选择题1.下列关于JavaEE叙述错误的是(D )。
A)JavaEE是一个标准中间件体系结构B)JavaEE是企业分布式应用开发标准C)JavaEE的编程思想是:组件-容器D)JavaEE是一门编程语言2.JavaEE技术框架包括(D)。
A)组件技术B)服务技术C)通信技术D)以上三种3.JavaEE Web组件包括( A )。
A) Servlet和JSP B) Servlet和JDBC C) JSP和JNDI D) EJB和JDBC4.JavaEE提供的组件主要包括( C)。
A) 客户端组件、Web组件和JDBC组件B) Web组件、EJB组件和JDBC组件C) 客户端组件、Web组件和EJB组件D) Web组件、EJB组件和JNDI组件5.下列组件属于客户端组件的是( A )。
A) Applet B) EJB C) JSP D) Servlet6.以下关于JavaEE体系架构的优点正确的是( C)。
A) 独立于硬件配置但需要操作系统支持B) 坚持面向过程的设计原则C) 兼具灵活性、可移植性和互操作性D) 能进行企业信息系统集成,但并不轻松7.( C )是用于构建发布在Java平台上的组件和应用程序的开发环境,是一切Java应用程序的基础。
A)NetBeans B)JBuilder C)JDK D)JSP8.JDK是用于构建发布在Java平台上的组件和应用程序的( A )环境,是一切Java应用程序的基础。
A) 开发B) 运行C) 测试D) 部署9.JavaEE编程属于服务器端应用的编程,因此JavaEE程序的运行需要一个( B )应用服务器的支持。
A)客户B)中间件C)商业D)数据库10.JavaEE编程属于( B )应用的编程,因此JavaEE程序的运行需要一个中间件应用服务器的支持。
A) 客户端B) 服务器端C) JSP D) Servlet11.目前JavaEE应用开发环境分为两大类,基于命令行的开发环境和( A )开发环境。
javaee基础教程习题答案

JAVAEE基础教程课后部分编程题答案2-14 public class aa {public static void main(String[] args) {// TODO Auto-generated method stubdouble x=34.5;double y=68.4;double z=x+y;System.out.println("x+y="+x+"+"+y+"="+z);}}3-19(一)从大到小插入排序法public class Sort {public static void main(String[] args) {int[] A={30,1,-9,70,25};for(int i=1;i<A.length-1;i++){for(int j=i;j>0;j--){if(A[j]>A[j-1]){int temp;temp=A[j-1];A[j-1]=A[j];A[j]=temp;}}}System.out.println("利用插入排序方法的结果是:");for(int i=0;i<A.length ;i++){System.out.print(A[i]+",");}}}选择排序法public class S_sort {public static void main(String[] args) {int[] A={30,1,-9,70,25};int max,temp;for(int i=A.length-1;i>0;i--){max=0;for(int j=1;j<=i;j++){if(A[max]>A[j])max=j;}temp=A[max];A[max]=A[i];A[i]=temp;}System.out.println("利用选择排序方法的结果是:");for(int i=0;i<A.length ;i++){System.out.print(A[i]+",");}}}(二)从小到大import java.util.*;public class rr {public static void main(String[] args){int A[]={30,1,-9,70,25};Arrays.sort(A);for(int i=0;i<5;i++){System.out.print(A[i]+",");}}}3-11 public class pp {public static void main(String[] args) {int i,j,count=0;for(j=2;j<=1000;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){count++;System.out.print(j+"\t");if(count%5==0)System.out.println(""); }}}}3-12 import java.util.Random;public class rr {public static void main(String[] args){int count1=0,count2=0,count3=0,count4=0,count5=0,count6=0;int temp;Random r =new Random();for(int i=1;i<=100;i++){temp=r.nextInt()%6+1;switch(temp){case 1:count1++;break;case 2:count2++;break;case 3:count3++;break;case 4:count4++;break;case 5:count5++;break;case 6:count6++;break;}}System.out.println("count1="+count1);System.out.println("count2="+count2);System.out.println("count3="+count3);System.out.println("count4="+count4);System.out.println("count5="+count5);System.out.println("count6="+count6);}}3-13 public class rr {public static void main(String[] args){int sum=0,a=1;for(int i=1;i<16;i++){a=a*i;sum+=a;}System.out.println("1!+2!+3!+...+15!="+sum);}}3-16 public class r {public static void main(String[] args) {int[] prime=new int[30];int i,j,m=0,count=0;for(j=2;count<30;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){count++;prime[m]=j;System.out.print(prime[m]+",");}}}}3-18 import java.util.Scanner;import java.util.*;public class yy {/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubint[] d=new int[100];int i=-1;do{System.out.println("输入整数(-2结束):");Scanner input=new Scanner(System.in);i++;d[i]=input.nextInt();}while(d[i]!=-2);int[] dd=new int[i];for(int j=0;j<i;j++){dd[j]=d[j];}Arrays.sort(dd);System.out.print("输入值按从小到大的顺序排序是 ");for(int a:dd)System.out.print(a+" ");}}6-12 import java.util.Calendar;public class CalendarExample {public static void main(String[] args) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, 10);System.out.println("十天后的日期和时间:");System.out.println(cal.get(Calendar.YEAR) + "年"+ (cal.get(Calendar.MONTH)+1) + "月"+ cal.get(Calendar.DATE) + "日"+ cal.get(Calendar.HOUR) + ":"+ cal.get(Calendar.MINUTE) + ":"+ cal.get(Calendar.SECOND));}}6-15 import java.util.HashMap;import java.util.Map;public class pp{public static void main(String args[]){Map<String,String> map=new HashMap<String,String>();map.put("张三","90分");map.put("李四", "83分");System.out.println("所查的学生有:"+map.keySet());System.out.println("张三的成绩为:"+map.get("张三"));System.out.println("李四的成绩为:"+map.get("李四"));System.out.println();map.put("李四","100分");System.out.println("修改后李四的成绩为:"+map.get("李四")); System.out.println();System.out.println("两人最终成绩为:");System.out.println("张三:"+map.get("张三"));System.out.println("李四:"+map.get("李四"));}}6-17public class e {public static void main(String[] args) {long x=987654;String str1=String.valueOf(x);//使用String类的valueOf()方法实现数值到字符串的转换int y=365;String str2=Integer.toString(y,16);//转换为十六进制System.out.println("987654转换成字符串为:"+str1+"\n");System.out.println("十进制365转换为十六进制为:"+str2);}}6-21 import java.io.IOException;import java.util.Scanner;import java.util.List;import java.util.ArrayList;import java.util.InputMismatchException;class Person{private String name;private int phone;public String getName(){return name;}public int getPhone(){return phone;}public Person(String name,int phone){=name;this.phone=phone;}public String toString(){return name+"的电话号码为:"+phone;}}public class pp {public static void main(String args[])throws IOException{ char m;do{List<Person> list=new ArrayList<Person>();Scanner input=new Scanner(System.in);System.out.println("请输入同学的姓名和联系方式:");try { String Pname=input.next();int Phone=input.nextInt();Person LX=new Person(Pname,Phone);list.add(LX);for(Person p:list){System.out.println(p); }}catch (InputMismatchException e1){System.out.println("警告:您输入的值不合理!");}catch (Exception e2){System.out.println("警告:其它异常!");}System.out.println("是否继续输入? Y/N");m = (char) System.in.read();} while (m == 'y' || m == 'Y');}}6-22 import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class pp {public static void main(String[] args) {Map<String,String>map=new HashMap<String,String>();map.put("ample","足够的、宽敞的");map.put("brisk", "轻快的、兴隆的");map.put("deem","认为、视为");map.put("doom","注定、劫数");map.put("gossip","流言飞语");map.put("lame","蹩脚的");map.put("oath","誓言");map.put("reap","收割、收获");map.put("shabby","破旧的、不公正的");map.put("ecology","生态、生态学");while (true) {Scanner sc = new Scanner(System.in);System.out.println("请输入单词");String str = sc.next();System.out.println("你输入的单词的中文含义是:"+"\t"+map.get(str));}}}8-10 import java.io.BufferedReader;import java.io.IOException;import java.io.FileReader;import java.io.FileNotFoundException;public class rr {public String readfile() {String str1 = "";BufferedReader fr;try {fr = new BufferedReader(new FileReader("java.txt"));String m = fr.readLine();while (m != null) {str1 += m + "\n";m = fr.readLine();StringBuffer s1=new StringBuffer(str1);System.out.println(s1);}fr.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return str1;}public static void main(String[] args) {rr r= new rr();String str1 = r.readfile();StringBuffer str2=new StringBuffer(str1);str2.reverse();System.out.println(str2);}}8-14 import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;import java.util.Scanner;class s {public static void main(String[] args) {try {File f1=new File("file1.txt");File f2=new File("file2.txt");FileReader fr1=new FileReader(f1);FileReader fr2=new FileReader(f2);BufferedReader br1=new BufferedReader(fr1) ;BufferedReader br2=new BufferedReader(fr2) ;String len1=br1.readLine();String len2=br2.readLine();Scanner scan1=new Scanner(len1);Scanner scan2=new Scanner(len2);eDelimiter(",");eDelimiter(",");int[] I=new int[9];for (int j=0; j <=4; j++) {I[j] =scan1.nextInt();}for (int j=0; j <=3; j++) {I[j+5] = scan2.nextInt();}Arrays.sort(I);System.out.print(Arrays.toString(I));fr1.close();fr2.close();File f3=new File("file3.text");FileWriter fw=new FileWriter(f3);for (int a : I){fw.write(a+",");}fw.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}9-6法一 class tt{public static synchronized void ttt() {int i=10;while(true){System.out.print(i++);try{Thread.sleep(500);}catch (InterruptedException e) {e.printStackTrace();}if (i==16){System.out.println();break;}System.out.print(",");}}}public class t implements Runnable {public void run() {tt.ttt();}public static void main(String[] args) {Thread t1=new Thread(new t(),"xiancheng1"); Thread t2=new Thread(new t(),"xiancheng2"); t1.start();t2.start();}}法二 class Printnum {public void shownum() {int i = 10;while (true) {try {System.out.print(i);if (i == 15) {System.out.println();break;}System.out.print(",");Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}i++;}}}public class Test9_6 implements Runnable {private static Printnum myprint = new Printnum();public void run() {synchronized (myprint) {myprint.shownum();}}public static void main(String[] args) {Thread t1 = new Thread(new Test9_6(), "线程1");t1.start();Thread t2 = new Thread(new Test9_6(), "线程2");t2.start();}}法三 class Print{public static synchronized void print() {for(int i=10;i<16;i++){System.out.print(i+",");try {Thread.sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public class t implements Runnable{public static void main(String[] args) {// TODO Auto-generated method stubThread t1=new Thread(new t());Thread t2=new Thread(new t());t1.start();t2.start();}public void run() {// TODO Auto-generated method stubPrint.print();System.out.println("\n");}}9-8(1)public class MyThread extends Thread{public static void main(String[] args) {Thread t1 = new Thread();Thread t2 = new MyThread();Thread t3 = new MyThread();t1.start();t2.start();t3.start();}public void run(){for(char i=97;i<123;i++){System.out.println(this.getName()+":"+i);}}}(2) //继承Thread类class myshow extends Thread {void show() {for (char i = 97; i < 123; i++) {System.out.print(this.getName() + ":" + i+"\t");//System.out.print(Thread.currentThread().getName()+ ":" + c+"\t");}}public void run() {show();}}public class myThread {public static void main(String[] args) {Thread t1 = new myshow();Thread t2 = new myshow();Thread t3 = new myshow();t1.setName("线程1");t2.setName("线程2");t3.setName("线程3");t1.start();t2.start();t3.start();}}(3) //实现Runnable接口class myshow implements Runnable {void show() {for (char i = 97; i < 123; i++) {System.out.print(Thread.currentThread().getName()+ ":" + c+"\t");}}public void run() {show();}}public class myThread {public static void main(String[] args) {Thread t1 = new myshow();Thread t2 = new myshow();Thread t3 = new myshow();Thread t1 = new Thread(new myshow(), "线程1");Thread t2 = new Thread(new myshow(), "线程2");Thread t3 = new Thread(new myshow(), "线程3");t1.start();t2.start();t3.start();}}。
JavaEE练习题(附答案)

一、名词解释(共5小题每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式;5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术;9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器负责将这些联系在一起;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、名词解释(共5小题每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式;5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术;9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器负责将这些联系在一起;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。
二、填空(共10空,每空2分,共20分)1、Spring从容器中获取bean对象可以分别通过(BeanFactory)接口和(ApplicationContext)接口来实现。
2、Struts2、Hibernate缺省的核心配置文件名分别为(struts.xml)和(hibernate.cfg.xml)。
3、OGNL上下文有一个bar对象,它不是根对象,bar有getvalue属性,则利用OGNL表达式求bar对象的getvalue属性值为(#bar.value)。
4、使用Hibernate的七个步骤是:创建Configuration、创建SessionFactory、(开启一次会话)、(开启一个事务)、持久化操作、(提交事务)和(释放资源)。
5、在Hibernate项目中,如实体类为User,则对应的配置文件名为(User.hbm.xml)。
6、Struts2的action类定义时传值方式可以采取(字段传值)、(模型传值)7、持久化对象的生命周期中对象的三种状态(瞬时态)(持久态)(脱管态)8、hibernate事务并发处理可以通过加锁的机制实现(悲观锁)(乐观锁);9、Struts2应用拦截器解决重复提交问题时页面中应使用的标签是(<s.token>)、Struts2实现国际化的标签是(<s.text>)。
三、问答题(共5小题,每题7分,共35分)1、Struts2 工作流程是什么?用户发送一个请求后,也就是一个*.action,web.xml中配置的FilterDispatcher(Struts2框架的核心控制器)就会过滤该请求。
如果请求是以.action结尾,该请求就会被转入Struts2框架处理,Struts2框架接收到*.action请求后,将根据struts.xml文件来决定调用哪个业务,处理业务后,根据action的返回字符串跳转到相应的页面。
2、开发Hibernate项目步骤是什么?(1)建立项目;(2)创建POJO类及其映射文件;(3)创建Hibernate核心配置文件;(4)编写代码,实现系统的详细功能和业务逻辑接口。
3、关联关系映射有哪几种?含义是什么?一对一关联:有两种实现方式:共享主键方式和唯一外键方式,是many-to-one的一种情况,不同的是关联中的外键字段具有唯一性约束;多对一单向关联:一对多双向关联:多对多关联:4、Hibernate相关接口作用是什么?Configuration:负责管理Hibernate的配置信息;SessionFactory:负责创建Session实例,可以通过Configurtion实例构建SessionFactory;Session:是Hibrenate持久化操作的基础,提供了众多持久化方法,通过这些方法,透明地完成对象的增、删、改、查等操作;Transaction:是Hibernate进行事物操作的接口,是对实际事务实现的一个抽象;事务对象通过Session创建;Query:Hibernate3.x中取代find()方法的接口,用于执行HQl语句,Query和HQL 是分不开的。
5、SQL与HQL区别?SQL操作的对象是数据表和列等数据对象,HQL操作的对象是类、实例、属性等。
6、Spring提供的3种通知(Advice)类型和含义?前通知:指在连接点之前,先执行通知中的代码;后通知:指在连接点执行后,再执行通知中的代码。
后增强一般分为连接点正常返回增强及连接点异常返回增强等类型;环绕通知:是一种功能强大的增强,可以自由地改变程序的流程、连接点返回值等。
除了可以自由添加横切功能外还需要负责主动调用连接点。
7、怎样通过Hibernate实现分页的功能?Hibernate的Query实例提供了两个有用的方法:setFirstResult(int firstResult)和setMaxResult(int maxResult),setFirstResult方法用于指定从哪一个对象开始查询,默认为第一个对象,setMaxResult方法用于指定一次最多查询的对象的数目,默认为所有对象。
8、struts2、spring、hibernate整合开发的过程。
(1)项目创建;(2)添加项目开发所需要的jar包;(3)实现Hibernate持久层;(4)编写DAO接口及实现类;(5)编写业务逻辑接口及实现类;(6)系统详细功能实现。
9、spring中实现注入依赖的方式是什么,比较不同的方式?set注入和构造注入;使用构造注入可以在构建对象的同时一并完成依赖关系的建立,所以,如果建立的对象的关系很多,使用构造注入就会在构造方法上留下很多的参数,使非常不易阅读的,这时建议使用set注入。
然而用set注入由于提供了setXx()方法,所以不能保证相关数据在执行时不被更改设定,因此,如果想让一些数据变为只读或私有,使用构造注入会是很好的选择。
10、Hibernate Session接口的get()/load()方法有什么区别?(1)当数据库表中id值为1时,使用get()方法返回null,使用load()方法返回异常;(2)load()查询会先到缓存中去查,如果没有则返回一个代理对象,等到后面使用这个代理对象的时候,才会到数据库中查找相应的信息。
若还是没有就抛出异常。
get()查询则先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null;(3)load()查询支持延迟加载,而get()查询不支持;总的来说,使用load()方法需要确保数据库中存在相应的值,否则就抛出异常,而get ()查询则是试探性的获取,如果没有就返回null。
四.程序填空题(共20分)1、完成下列代码的hibernate双向多对一映射,数据库表名与POJO类名相同、POJO类位于com.star.po包下。
Person.class省略了getter/setterRoom.class省略了getter/setterPerson.hbm.xml:<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="com.star.po.Person" table="person" catalog="test"> <id name="id" type="ng.Integer"><column name="id"/><generator class="native"/></id><many-to-one name="room" class="com.star.po.Room" fetch="select" cascade="all"><column name="roomId"/></many-to-one><property name="personName" type="ng.String"><column name="personName" length="50" not-null="true"/> </property></class></hibernate-mapping>Room.hbm.xml:<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="com.star.po.Room" table="room" catalog="test"> <id name="id" type="ng.Integer"><column name="id"/><generator class="native"/></id><property name="roomName" type="ng.String"><column name="roomName" not-null="true"/></property><set name="persons" inverse="false" cascade="all"><key><column name="roomId"/></key><one-to-many class="com.star.po.Person"/></set></class></hibernate-mapping>2、根据代码完成Action类的配置相关配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.configuration.xml.reload" value="true"></constant> <constant name="struts.il8n.encoding" value="UTF-8"></constant><package name="default" extends="struts-default" namespace="/user"> <action name="user" class="erAction"><result name="success" type="redirect">/welcome.jsp</result><result name="login">/login.jsp</result></action></package></struts>3、实现Spring AOP 前置通知的配置/schema/beans/spring-beans-2.5.xsd"><!--注册前置通知类--><bean id="beforeAdvice" class="org.aop.advice.AdviceBeforeHello"/><!-- 注册接口实现类--><bean id="hello" class="org.aop.interfaces.impl.Hello"></bean><!-- 注册代理类--><bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <!-- 指定应用的接口--><property name="proxyInterfaces"><value>org.aop.interfaces.IHello</value></property><!-- 目标对象,本例即为Hello对象--><property name="target" ref="hello"></property><!-- 应用的前置通知,拦截器名称--><property name="interceptorNames"><list><value>beforeAdvice</value></list></property></bean></beans>。