JAVA三大框架测试题
- 格式:doc
- 大小:75.50 KB
- 文档页数:10
java章节习题及期末考试题答案第1章Java开发入门习题一、填空题1.将.java源文件编译为.class文件的是【】命令。
2.在Eclipse窗口中选择菜单【】→New→Java Project创建Java 项目。
3.在安装JDK的过程中,有三个功能模块可供选择,它们分别是【】,【】和【】。
4.将Hello.java文件编译为class文件,需要键入【】命令。
5.JRE是Java程序的【】。
二、判断题1.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。
()2.JDK安装成功后,需要将bin目录的路径配置在环境变量path 中。
()3.Java配置环境变量path的目的是为了可以查找到.class文件。
()4.JDK安装成功后,classpath环境变量必须配置。
()5.在命令行窗口中,编译Demo.java文件可以输入javac Demo。
()三、选择题1.如果jdk的安装路径为:c:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项()A: c:\jdkB: c:\jdk\binC: c:\jre\binD: c:\jre2.下列关于classpath环境变量的说法中,说法正确的是()A: classpath配置一次后可永久使用B: 没有classpath环境变量就不能运行Java程序C: classpath环境变量可以让虚拟机找到class文件的目录D: 查看当前classpath配置的命令是:classpath3.下面哪种类型的文件可以在Java虚拟机中运行()A: .javaB: .jreC: .exeD: .class4.Java属于以下哪种语言()A: 机器语言B: 汇编语言C: 高级语言D: 以上都不对5.下列关于Java特点的描述中,错误的是()。
A: Java是一门面向对象的语言B: Java具有自动垃圾回收的机制C: Java可以运行在Window和Linux等不同平台上D: Java中只支持单线程序运行答案一、填空题1.javac2.File3.开发工具;源代码;公共JRE4.javac Hello.java5.运行环境二、判断题1.对2.对3.错4.错5.错三、选择题1. B2. C3. D4. C5. D第2章Java编程基础习题一、填空题1.可以通过【】循环使程序能够多次键盘输入。
第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。
答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。
- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。
- 安全性:Java提供了强大的安全机制,如沙箱安全模型。
- 体系结构中立:Java不依赖于特定的硬件或操作系统。
- 高效:Java的运行速度接近C/C++。
- 多线程:Java内置多线程支持,便于实现并发处理。
- 动态性:Java在运行时可以进行扩展和修改。
2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。
答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。
- 管理内存,包括堆、栈、方法区等。
- 提供垃圾回收机制。
- 管理线程和同步。
3. Java内存模型题目:请简述Java内存模型的组成。
答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。
- 栈(Stack):存储局部变量和方法调用。
- 方法区(Method Area):存储类信息、常量、静态变量等。
- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。
- 程序计数器(Program Counter Register):存储线程的当前指令地址。
4. Java关键字题目:请列举并解释Java中的几个关键字。
答案:- `public`:表示访问权限为公开。
- `private`:表示访问权限为私有。
- `protected`:表示访问权限为受保护。
- `static`:表示属于类本身,而非对象实例。
- `final`:表示常量或方法不能被修改。
- `synchronized`:表示线程同步。
- `transient`:表示数据在序列化时不会被持久化。
二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。
答案:类是对象的模板,对象是类的实例。
第1篇一、Java基础知识1. 请简述Java语言的特点。
2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。
4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。
5. 什么是Java中的泛型?请解释泛型的原理和作用。
6. 请简述Java中的四种访问控制符:public、protected、default、private。
7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。
8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。
9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。
二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。
2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。
3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。
4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。
5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。
7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。
三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。
2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。
3. 什么是Java中的同步机制?请解释synchronized关键字的作用。
Hibernate1.Hibernate 的初始化.读取Hibernate 的配置信息-〉创建Session Factory1)创建Configeration类的实例。
它的构造方法:将配置信息(Hibernate config.xml)读入到内存。
一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。
2)创建SessionFactory实例把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。
SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。
缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。
SessionFactory的缓存中:Hibernate 配置信息。
OR映射元数据。
缓存-大:重量级对象小:轻量级对象3)调用SessionFactory创建Session的方法1】用户自行提供JDBC连接。
Connection con=dataSource.getConnection(); Session s=sessionFactory.openSession(con);2】让SessionFactory提供连接Session s=sessionFactory.openSession();4)通过Session 接口提供的各种方法来操纵数据库访问。
Hibernate 的缓存体系一级缓存:Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:SessionFactory的外置的可插拔的缓存插件。
其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。
Hibernate 中Java对象的状态1.临时状态(transient)特征:1】不处于Session 缓存中2】数据库中没有对象记录Java如何进入临时状态1】通过new语句刚创建一个对象时2】当调用Session 的delete()方法,从Session 缓存中删除一个对象时。
一、选择题(每题2分,共40分)1、下面哪个是Java语言中正确的标识符( C )A、3comB、importC、thatD、this2、下面哪个语句(初始化数组)是不正确的:(B)A.int x[] = {1,2,3}; B.int x[3] = {1,2,3};C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3};3、下述概念中不属于面向对象方法的是( D )。
A.对象、消息 B.继承、多态C.类、封装 D.过程调用4、下面的代码段中,执行之后i 和j 的值是什么? ( B )int i = 1;int j;j = i++*2+3*--i;A.1, 2 B.1, 5 C.2, 1 D.2, 25、下面哪条语句把方法声明为抽象的公共方法?(B )A.public abstract method();B.public abstract void method();C.public abstract void method(){}D.public void method() extends abstract;6、下面关于java中类的说法哪个是不正确的?( C )A.类体中只能有变量定义和成员方法的定义,不能有其他语句。
B.构造函数是类中的特殊方法。
C.类一定要声明为public的,才可以执行。
D.一个java文件中可以有多个class定义。
7、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C )class A{ int i;static String s;void method1() { }static void method2() { }}A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()8、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变? ( B )A、CardLayoutB、FlowLayoutC、BorderLayoutD、GridLayout9、下列哪个用户图形界面组件在软件安装程序中是常见的? ( C )A.滑块B.进度条C.按钮D.标签10、在Java 中如果要在字符串类型对象s=“JA V A”,中找出‘V’出现的位置可使用下面哪个方法:(B)A.mid(2,s); B.charAt(2); C.s.indexOf(‘V’);D.indexOf(s,’V’);11、Java中哪个类提供了随机访问文件的功能。
第1章Spring 的基本应用习题一、填空题1.依赖注入的作用就是在使用Spring 框架创建对象时,动态的将其所依赖的对象注入到【】组件中。
2.在使用Spring 框架之后,对象的实例不再由调用者来创建,而是由【】来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
3.在Spring 入门程序中只需将Spring 的4 个基础包以及【】的JAR 包复制到lib 目录中,并发布到类路径下即可。
4.简单来说,BeanFactory 就是一个管理Bean 的工厂,它主要负责初始化各种Bean,并调用它们的【】方法。
5.Spring 开发所需的JAR 包分为两个部分:【】和【】。
二、判断题1.Spring 中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
()2.通常在Java 项目中,会采用通过FileSystemXmlApplicationContext 类来实例化ApplicationContext 容器的方式。
()3.初学者学习Spring 框架时,只需将Spring 的4 个基础包以及commons-logging.jar 复制到项目的lib 目录,并发布到类路径中即可。
()4.依赖注入的作用就是在使用Spring 框架创建对象时,动态的将其所依赖的对象注入到Bean组件中。
()5.Spring 框架采用的是分层架构,它一系列的功能要素被分成20 个模块。
()三、选择题1.以下关于Spring 核心容器相关说法错误的是。
()A: Spring 框架的所有功能都是通过其核心容器来实现的。
B: 创建BeanFactory 实例时,需要提供Spring 所管理容器的详细配置信息,这些信息通常采用XML 文件形式来管理。
C: ApplicationContext 不仅包含了BeanFactory 的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
谈谈你对mvc的理解MVC是Model—View—Controler的简称。
即模型—视图—控制器。
MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。
视图向用户显示相关的数据,并接受用户的输入。
视图不进行任何业务逻辑处理。
模型: 模型表示业务数据和业务处理。
相当于JavaBean。
一个模型能为多个视图提供数据。
这提高了应用程序的重用性控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。
然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。
控制器调用相应的视图来显示处理的结果。
并通过视图呈现给用户。
项目中为什么使用SSH1. 使用Struts是因为struts是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。
2. 使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。
hibernate 是个轻量级的持久性框架,功能丰富。
3. 使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(Transcation Managment),等等struts如何实现国际化以下以两国语言(中文,英文)为例:1. 在工程中加入Struts支持2. 编辑ApplicationResource.properties文件,在其中加入要使用国际化的信息, 例如: lable.welcome.china=Welcome!!!3. 创建英文资源文件ApplicationResource_en.properites4. 创建临时中文资源文件ApplicationResource_temp.properites 例如:lable.welcom.china=中国欢迎您!5. 对临时中文资源文件进行编码转换。
JAVA测试题(三套含答案)<测试一>1.在单一文件中import、class和package的正确出现顺序是:AA.package, import, classB.class, import, packageC.import, package, classD.package, class, import2.public static void main方法的参数描述是:A,DA.String args[]B.Strings args[]C.String argsD.String []args3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,DA.float f=1.3;B.char c="a";C.byte b=257;D.boolean b=null;E.int i=10;4.编译,运行下列代码后的结果是:Dpublic class Test {public static void main (String args []) {int age;age = age + 1;System.out.println("The age is " + age);}}A.编译,运行后没有输出B.编译,运行后输出:The age is 1C.能通过编译,但运行时产生错误D.不能通过编译4.下面那些关键字不是JAVA的关键字BA ifB thenC gotoD whileE case5.下面那些不是合法的变量定义:A,FA.2variableB.variable2C. _whatavariableD. _3_E. $anothervarF. #myvar6.内部数据类型byte的取值范围是BA.0 - 65, 535B.(–128) – 127C.(–32,768) – 32,767D.(–256) – 2557.下列哪些表达式返回true ABA."john" == "john"B."john".equals("john")C."john" = "john"D."john".equals(new Button("john")) 8.声明公用的abstract 方法的正确格式是A A.public abstract void add();B.public abstract void add() {}C.public abstract add();D.public virtual add();9.下面的代码能打印出的结果为:Cint i=1;switch (i) {case 0:System.out.println("zero");break;case 1:System.out.println("one");case 2:System.out.println("two"); default:System.out.println("default");}A.oneB.one, defaultC.one, two, defaultD.default10.下面的代码能打印出的结果为:B int i=9;switch (i) {default:System.out.println("default"); System.out.println("zero");break;case 1:System.out.println("one");case 2:System.out.println("two");}A.defaultB.default, zeroC.error default clause not definedD.no output displayed11.下面的代码那个能正常的编译通过:B,CAint i=0;if(i) {System.out.println("Hello");}Bboolean b=true;boolean b2=true;if(b==b2) {System.out.println("So true");}C.int i=1;int j=2;if(i==1|| j==2)System.out.println("OK");Dint i=1;int j=2;if(i==1 &| j==2)System.out.println("OK");12.Hello.txt不与Mine.java在同一个目录下,如果你试图编译,运行下面的代码,那么会是什么结果?Cimport java.io.*;public class Mine {public static void main(String argv[]){Mine m=new Mine();System.out.println(m.amethod());}public int amethod() {FileInputStream dis=new FileInputStream("Hello.txt"); }catch (FileNotFoundException fne) {System.out.println("No such file found");return -1;}catch(IOException ioe) {} finally{System.out.println("Doing finally");}return 0;}}13.当你试图准备编译,运行下面代码时会发生:CA.编译和运行很正常B.编译时错误C.运行时错误class Base {}class Sub extends Base {}class Sub2 extends Base {}public class CEx{public static void main(String argv[]){Base b=new Base();Sub s=(Sub) b;}}14.当你试图准备编译,运行下面代码时会发生:Dpublic class Tux extends Thread{static String sName = "vandeleur";public static void main(String argv[]){Tux t = new Tux();t.piggy(sName);System.out.println(sName);}public void piggy(String sName){sName = sName + " wiggy";start();}public void run(){for(int i=0;i < 4; i++){sName = sName + " " + i;}}}A.编译时错误B.编译成功,并打印出"vandeleur wiggy"C.编译成功,并打印出" vandeleur wiggy 0 1 2 3"D.编译成功,并打印出" vandelur"15.在什么情况下类获得默认的构造方法:BA.类被定义时B.类中没有定义任何构造方法时C.在类中至少定义了一个构造方法时16.listener(监听器)方法的正确的访问修饰符是什么?AA.publicB.staticC.privateD.protectedE.Default(即默认为空)17. 假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常:BA.throw ExceptionB.throws ExceptionC.new ExceptionD.不用特别指定18.下面的代码能打印出的结果是:A,Bpublic class MyFor{public static void main(String argv[]){int i;int j;outer:for (i=1;i <3;i++)inner:for(j=1; j<3; j++) {if (j==2)continue outer;System.out.println("Value for i=" + i + " Value for j=" +j);}}}A.Value for i=1 value for j=1B. Value for i=2 value for j=1C. Value for i=2 value for j=2D. Value for i=3 value for j=119.那个代码能够添加在//mothod here地方,并能正确执行?B,Cclass Base{public void amethod(int i) { }}public class Scope extends Base{public static void main(String argv[]){}//Method Here}A. void amethod(int i) throws Exception {}B. void amethod(long i)throws Exception {}C. void amethod(long i){}D. public void amethod(int i) throws Exception {} 20.运行下面代码能够得出的结果?BString s=new String("Bicycle");int iBegin=1;char iEnd=3;System.out.println(s.substring(iBegin,iEnd));A.BicB. icC. icyD. error: no method matching substring(int,char) 21.下面定义的变量能执行那些操作?AString s1=new String("Hello")String s2=new String("there");String s3=new String();A.s3=s1 + s2;B.s3=s1-s2;C.s3=s1 & s2;E.s3=s1 && s222. System.out.println(4 | 3);能打印出什么结果?DA 6B 0C 1D 723.传递4,0来运行下列代码中的方法divide(int a, int b),结果是:A public void divide(int a, int b) {try {int c = a / b;} catch (Exception e) {System.out.print("Exception ");} finally {System.out.println("Finally");}A.打印输出: Exception FinallyB.打印输出: FinallyC.打印输出: ExceptionD.没有任何输出24.对public void add(in t a) {…}方法的重写方法:AA.必须返回voidB.必须返回intC.可以返回任何需要的类型25. 对public void add(int a) {…}方法的重载方法应返回:CA.voidB.intC.任何类型26. 下列类分别在不同的文件中定义:Cclass Vehicle {public void drive() {System.out.println("Vehicle: drive");}}class Car extends Vehicle {public void drive() {System.out.println("Car: drive");}}public class Test {public static void main (String args []) {Vehicle v;Car c;v = new Vehicle();c = new Car();v.drive();c.drive();v = c;v.drive();}}编译和执行类Test后,结果是:A.在语句v= c;处产生编译时错误B.在语句v= c;处产生运行时错误C.输出:Vehicle: driveCar: driveCar: driveD.输出:Vehicle: driveCar: driveVehicle: drive27. 在子类构造方法内的什么位置可以对超类的构造方法(super())进行调用:BA.子类构造方法的任何地方B.子类构造方法的第一条语句处C.子类构造方法的最后一条语句处D.不能对超类的构造方法进行调用28. 下列代码中有明显的语法错误的语句是:C1.public class Test {2.public static void main (String args []) {3.Employee e = new Employee("Bob", 48);4. e.calculatePay();5.System.out.println(e.printDetails());6. e = Null;7. e = new Employee("Denise", 36);8. e.calculatePay();9.System.out.println(e.printDetails());10.}}A.Line 10B.Line 11C.Line 6D.Line 829. 选择可以建立线程的接口:AA.RunnableB.RunC.少数用于管理的系统部件D.ThreadE.Executable30. 选择正确生成text field的代码,此text field最多能够显示10个字符(假定其字体有固定大小)并最初显示“hello”串:AA.new TextField("hello", 10) ;B.new TextField(10,"hello");C.new TextField("hello",max,10);D.new TextField("hello",10,max);31. 选择定义在Graphics类中的方法:A,CA.drawLine(int, int, int, int) ;B.drawImage(Image, int, int, ImageObserver) ;C.drawString(String, int, int) ;D.add(Component);E.setVisible(boolean);F.setLayout(Object);32. 从下面的布局管理器中选择按行放置控件、从左到右、从上到下,当一行装满时开始新的一行的布局管理器:BA.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout33. 选择可以替换一个Container对象布局的方法:AA.setLayout(aLayoutManager);B.addLayout(aLayoutManager);/doc/137072775.html,yout(aLayoutManage r);D.setLayoutManager(aLayoutManager);34. 一个类Example的main()方法的参数是args,类被如下调用执行:java Example catmain方法中访问args[0]的输出是什么?AA.catB.javaC.ExampleD.抛出一个NullPointerException异常E.抛出一个ArrayIndexOutOfBoundsException异常35.下面的代码编译,运行后得出的结果:Dpublic class Conv{public static void main(String argv[]){Conv c=new Conv();String s=new String("ello");c.amethod(s);}public void amethod(String s){char c='H';c+=s;System.out.println(c);}}A.编译成功,打印出"Hello"B. 编译成功,打印出"ello"C. 编译成功,打印出elloHD. 编译错误36.执行后打印的结果为:Cpublic class Oct{public static void main(String argv[]){ Oct o = new Oct(); o.amethod();}public void amethod(){int oi= 012;System.out.println(oi);}}A.12B.012C.10D.10.037.编译,执行下面的代码会出现的结果:Apublic class Ref{public static void main(String argv[]){ Ref r = new Ref();r.amethod(r);}public void amethod(Ref r){int i=99;multi(r);System.out.println(i);}public void multi(Ref r){r.i = r.i*2;}}A. 一个编译时错误B. 99C. 198D. 一个运行时错误.38.现在你存储一个唯一的整型序列,那么你需要哪个容器接口?AA.SetB.ListC.MapD.Vector39.给出下列代码,请选择2个正确输出?D,Epublic class Example{public static void main(String args[]){int i=0;do{System.out.println(“Doing it for i is”+i);} while (--i>0);System.out.println(“Finished”);}}A.Doing it for i is 3B.Doing it for i is 2C.Doing it for i is 1D.Doing it for i is 0E.Finished40. System.out.println(Math.floor(-2.1));打印的结果为:DA -2B 2.0C -3D -3.0<测试二>Java程序员笔试题一、单项选择题(共10题,每题2分,共20分)1.下列说法哪一个是正确的。
java选择试题及答案# Java选择试题及答案一、单选题1. Java是一种:- A. 编译型语言- B. 解释型语言- C. 汇编语言- D. 机器语言答案:B2. Java的跨平台特性主要依赖于:- A. JRE- B. JVM- C. JDK- D. JIT答案:B3. 下列哪个是Java的基本数据类型?- A. String- B. ArrayList- C. int- D. Object答案:C4. Java中的异常处理是通过以下哪个关键字实现的? - A. if- B. try- C. for- D. switch答案:B5. 下列哪个是Java集合框架中的接口?- A. ArrayList- B. HashSet- C. List- D. Map答案:C6. 在Java中,哪个关键字用于定义一个类? - A. class- B. interface- C. enum- D. package答案:A7. Java中的构造方法:- A. 必须有返回类型- B. 必须与类名相同- C. 不能被继承- D. 可以有参数答案:B8. 以下哪个不是Java的访问修饰符?- A. public- B. protected- C. private- D. global答案:D9. Java中的main方法是:- A. 必须在每个类中定义- B. 程序的入口点- C. 只能被类内部调用- D. 只能调用一次答案:B10. 下列哪个是Java的集合类?- A. String- B. HashMap- C. Object- D. Thread答案:B二、多选题1. Java的垃圾回收机制可以:- A. 回收不再使用的对象- B. 回收内存泄漏- C. 确保内存使用效率- D. 完全防止内存泄漏答案:A, C2. 下列哪些是Java的控制流语句? - A. if-else- B. switch-case- C. for- D. try-catch答案:A, B, C3. Java中的接口可以包含:- A. 常量- B. 方法声明- C. 构造方法- D. 实例方法答案:A, B4. 在Java中,哪些是合法的变量名?- A. 2start- B. _myVar- C. myVar2- D. var答案:B, C, D5. Java中的包装类可以:- A. 将基本数据类型转换为对象- B. 用于集合类- C. 实现多态- D. 用于泛型答案:A, B三、判断题1. Java是面向对象的编程语言。
JAVA语言程序设计习题集一、简答题1、Java程序分为哪两大类,它们之间有哪些相同点?主要区别有哪些?答:Java程序分为Java Application和Java Applet。
相同点有两个:(1)两类程序都由一个或多个以.class为后缀的文件组成;(2)两类程序都需要用户系统安装Java虚拟机(JVM)。
Java虚拟机能够载入并翻译Java程序,并且可以提供Java内核包的实现。
区别有:(1)Java Applet程序可以被嵌入HTML网页内,从而可以在网络上发布,当网页被浏览时它们可以在浏览器中运行;而Java Application程序却不支持网页嵌入和下载。
(2)Java Applet程序只能在与Java兼容的容器中运行,例如网络浏览器;而Java Application程序却没有这个限制。
(3)一个Java Applet程序必须定义一个Applet类的子类,一个Java Application程序也可以定义一个Applet类的子类,但这不是必须的,一个 Java Application程序必须在一个类中定义一个main方法,而一个Java Applet 程序并不定义main方法,它的执行是由Applet类定义的多个方法控制的。
2、Java程序是由什么组成的?Java 源文件的命名规则是怎样的?答:一个Java 程序是由若干个类组成的。
但只能有一个类是public 类。
Java源文件命名规则是:源文件名必须与其中的public 类的名字相同,扩展名是java;如果源文件中没有public 类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。
3、Java语言与Java技术的关系如何?Java语言包括哪两部分?答:Java语言是Java技术的基础。
Java语言包括语法规则和Java类库两部分。
4、开发与运行Java程序需要经过哪些主要过程?答:源程序编辑、字节码编译和解释运行。
JAVA测试题汇总在JAVA中,下列哪些说法是正确的(AC).java源文件的扩展名为.java.写好的java源程序可以直接运行.编写的源程序必须先编译后才能运行.程序员可以读懂扩展名为.class的文件下列标识符哪个是合法的(D).class.$abc.1234._name下面哪些赋值语句是正确的?(AB)float数值范围为-3.4*10的-38次幂到3.4*10的38次幂int other = (int) true; //是布尔类型系统会自动将ture转换成-1,false是十六进制的整形数值byte取值范围为(-2^7)~(2~7)-1即-128~127最大表示范围为:-263 ~ 263-1,即-9223372036854775808 ~。
在Java中,下列语句不能通过编译的有(ABCD )“join”+ 3;“join”+3;‘a’+5;设 a = 3,则表达式 (--a )<“<<”代表左移运算符。
该运算符为双目运算符,结合方向为从左到右,作用是把一个整移动到左边界之外的多余二进制位会被丢弃,并从右边0,--a=2 二进制就是 10,向左移动2位是1000,换算后等于8 下列代码运行的结果是(c )int x = 4;int y = 5;if(x++>4 & ++y>5) {x++;}System.out.println("x=" + x + ",y=" + y);x=4,y=6尝试运行下面的代码会发生什么?( B)public static void main(String[] args) {boolean m = true;if (m = false) {System.out.println("true");} else {System.out.println("false");}}输出字符串”true”输出字符串”false”编译时错误运行时错误编译并运行以下代码将发生什么?(D)char digit = 'a';for (int i = 0; i < 10; i++){switch (digit){case 'x' :{int j = 0;System.out.println(j);}default :{int j = 100;System.out.println(j);}}int i = j;输出11次100输出10次100,然后抛出运行期异常编译错误,因为变量i不能在main() 方法中被声明2次编译错误,因为变量j不能在main() 方法中被声明2次以上都不对class Demo Bpublic static int fun(int c)return c+=2;}public static void main(String[] args)int temp = fun(2);System.out.println(temp);}下面哪些函数是public void aMethod(){...}的重载函数?( BD) …}在java中,关于数组描述正确的是(CD ).数组中的索引下标从1开始.存储在数组当中的数据都属于同一数据类型.通过数组名.length()能获得数组的长度.数组的最大索引下标是数组的长度减1下面程序的输出结果是什么(A ).编译不通过.运行时出错.输出null.输出0下面哪个语句正确地声明一个整型的二维数组( C) 以下代码输出是( C )public static void main(String[] args) {int i = 0;int sum = 0;while (i <= 10) {i++;if (i % 2 != 0)continue;sum += i;}System.out.println(sum);}和下面代码能完成相同的选项是(B)public static void main(String[] args) {int i = 1;int sum = 0;while (i <= 100) {if (i % 2 == 0) {sum = sum + i;}i++;}System.out.println(sum);}上述全对下列有关类、对象和实例的叙述,正确的是哪一项?(D).类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称.类是对象的抽象,对象是类的具体化,实例是类的另一个名称.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称下面关于java中包的说法正确的是(AD)在java中可以使用import语句导入包在java中可以使用package语句导入包位于同一个包中的类,不需要导包就可以直接访问不同的包中可以出现类名相同的类下列有关抽象类的叙述正确的是哪项?(C).抽象类中一定含有抽象方法.抽象类既能被实例化也能被继承.抽象类的声明必须包含abstract关键字.抽象类中不能有构造方法下列有关接口的叙述错误的是哪项?(D).接口中只能包含抽象方法和常量.一个类可以实现多个接口.类实现接口时必须实现其中的方法.接口不能被继承运行以下代码片段,输出结果是?( D)Y b = new Y();X() {System.out.print("X");}Y() {System.out.print("Y");}Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) {new Z();}下列关于类的继承的描述,正确的有( D )一个类可以同时继承多个父类一个类可以具有多个子类子类会自动拥有父类所有的方法一个类继承另一个类需要使用 extends 关键字下列选项中关于java中this关键字的说法错误的有( D )关键字是一个对象的引用关键字可以用于引用当前类以外其他类型的对象可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行可用于静态方法中下列关于构造函数的说法正确的是( A )方法名必须与类名相同使用new关键字创建对象时,java虚拟机会自动调用构造函数我们在定义一个类时,必须要声明至少一个构造函数构造函数中不能使用return语句编译并运行以下代码将发生什么?( C )int x;MyClass(int i) {x = i;}public static void main(String args[]) {MyClass m1 = new MyClass(100);MyClass m2 = new MyClass(100);if (m1.equals(m2)) {System.out.println("Both are equal");} else {System.out.println("Both are not equal");}}代码编译时报出错误提示信息“equal s() 方法未定义”编译通过,抛出运行期异常.输出Both are equal.输出Both are not equal运行以下的main()方法,结果是?( A )String myString;int x = 100;if (x < 100) myString = "x is less than 100";if (x > 100) myString = "x is greater than 100"; System.out.println(myString.length());.编译时报出错误提示信息“变量myString没有被初始化”.编译通过.编译未能通过。
高级java工程师面试题一、介绍Java作为一种广泛应用的编程语言,在软件开发领域具有重要的地位。
作为高级Java工程师,您需要掌握扎实的Java基础知识,并具备解决实际问题的能力。
下面是一些常见的高级Java工程师面试题,希望能帮助您更好地准备面试。
二、Java基础1. 请解释Java的三大特性。
2. 什么是Java的包装类?请列举几个常用的包装类。
3. 请解释Java中的抽象类和接口的区别。
4. 请解释重载和重写的区别。
5. 请解释Java中的多态性。
三、JVM和垃圾回收1. 请解释JVM是什么,它的作用是什么?2. 什么是垃圾回收?请解释Java中的垃圾回收机制。
3. 请解释堆和栈的区别。
4. 请解释Java中的引用类型和值类型。
四、多线程和并发1. 请解释进程和线程的区别。
2. 请解释Java中的线程同步机制。
3. 请解释volatile关键字的作用。
4. 请解释什么是线程池,它的优点是什么?五、数据库和ORM框架1. 请解释关系型数据库和非关系型数据库的区别。
2. 请解释ORM框架的作用。
3. 请解释Hibernate框架的特点和使用方法。
4. 请解释什么是SQL注入,如何避免SQL注入?六、Spring框架1. 请解释Spring框架的特点和作用。
2. 请解释控制反转(Inversion of Control,IOC)的概念。
3. 请解释什么是面向切面编程(Aspect-Oriented Programming,AOP)。
4. 请解释Spring MVC框架的工作原理。
七、分布式系统和微服务1. 请解释什么是分布式系统,列举几个常见的分布式系统。
2. 请解释什么是微服务架构,它的优点是什么?3. 请解释什么是服务发现和服务注册。
4. 请解释什么是负载均衡,列举几种常见的负载均衡算法。
八、性能调优和高可用1. 请解释什么是性能调优,列举几种常见的性能调优方法。
2. 请解释什么是高可用性,列举几种常见的保证高可用性的方法。
第1篇第一部分:基础知识1. Java基本概念(1)请解释Java中的面向对象编程(OOP)的特点。
解析:面向对象编程的特点包括封装、继承和多态。
封装是指将数据和对数据的操作封装在一个类中;继承是指允许一个类继承另一个类的属性和方法;多态是指同一个方法在不同对象上表现出不同的行为。
(2)简述Java中的四种访问控制符及其作用范围。
解析:Java中的四种访问控制符分别是public、protected、默认(不写)和private。
public可以访问任何类;protected可以在同一个包内和子类中访问;默认访问(不写)只能在同一个包内访问;private只能在类内部访问。
2. Java基本数据类型(1)请列出Java中的基本数据类型,并说明其特点和取值范围。
解析:Java中的基本数据类型包括byte、short、int、long、float、double、char和boolean。
byte和short为有符号整数类型,取值范围分别为-128到127和-32,768到32,767;int为基本整型,取值范围为-2,147,483,648到2,147,483,647;long为长整型,取值范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807;float和double为浮点数类型,取值范围分别为-3.4E38到3.4E38和-1.8E308到1.8E308;char为字符类型,取值范围为0到65,535;boolean为布尔类型,取值为true或false。
(2)简述Java中的自动装箱和拆箱。
解析:自动装箱是指将基本数据类型自动转换为包装类型(如int自动转换为Integer);自动拆箱是指将包装类型自动转换为基本数据类型。
在装箱和拆箱过程中,如果数据类型不匹配,会抛出ClassCastException异常。
3. Java关键字(1)请解释Java中的关键字final、static和synchronized。
java 集合框架(习题)集合框架Key Point* Collection 接口、Set 接口、List 接口基本操作* List 接口及其实现类* Set 接口及其实现类* 迭代遍历* Hash 算法与hashCode 方法* Comparable 接口* Map 接口及其实现类* 遍历Map* 泛型练习1. 填空Collection 接口的特点是元素是对象;List 接口的特点是元素有(有|无)顺序,可以(可以|不可以)重复;Set 接口的特点是元素无(有|无)顺序,不可以(可以|不可以)重复;Map 接口的特点是元素是键值对,其中值可以重复,键不可以重复。
2. (List)有如下代码import java.util.*;public class TestList{public static void main(String args[]){List list = new ArrayList();list.add(“Hello”);list.add(“World”);list.add(1, “Learn”);list.add(1, “Java”);printList(list);}public static void printList(List list){for(Object obj:list){String str=(String)obj;System.out.println(obj);}}}要求:1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容2) 写出程序执行的结果 Hello java Learn World3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别?把实例化的语句改为new LinkedList();ArrayList 数组实现查询快增删慢LinkedList 链表实现查询慢增删快4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使用上有什么区别?实现上有什么区别?ArrayList是线程不同步的,轻量级的,线程不安全,速度快Vector是线程同步的,多线程访问比较安全,速度慢3. (List)写出下面程序的运行结果import java.util.*;public class TestList{public static void main(String args[]){List list = new ArrayList();list.add(“Hello”);list.add(“World”);list.add(“Hello”);list.add(“Learn”);list.remove(“Hello”);list.remove(0);for(int i = 0; i<list.size(); i++){System.out.println(list.get(i));}}}HelloLearn4. (Set,List)import java.util.*;public class TestListSet{public static void main(String args[]){List list = new ArrayList();list.add(“Hello”);list.add(“Learn”);list.add(“Hello”);list.add(“Welcome”);Set set = new HashSet();set.addAll(list);System.out.println(set.size());}}选择正确答案A.编译不通过B.编译通过,运行时异常C.编译运行都正常,//输出HashSet中不能放重复值D.编译运行都正常,输出45. (List)已知有一个Worker 类如下:public class Worker {private int age;private String name;private double salary;public Worker (){}public Worker (String name, int age, double salary){ = name;this.age = age;this.salary = salary;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public double getSalary(){return salary;}public void setSalary(double salary){this.salary = salary;}public void work(){System.out.println(name + “ work”);}}完成下面的要求1) 创建一个List,在List 中增加三个工人,基本信息如下:姓名年龄工资zhang3 18 3000li4 25 3500wang5 22 32002) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资33003) 删除wang5 的信息4) 利用for 循环遍历,打印List 中所有工人的信息5) 利用迭代遍历,对List 中所有的工人调用work 方法。
java数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个类是实现了List接口的?A. ArrayListB. LinkedListC. HashSetD. TreeMap答案:A、B2. 以下哪个方法用于在ArrayList中添加元素?A. add(E e)B. put(E key, V value)C. insert(int index, E element)D. append(E element)答案:A3. 在Java中,哪个类实现了Map接口?A. ArrayListB. HashMapC. HashSetD. LinkedList答案:B4. 以下哪个排序算法的时间复杂度为O(nlogn)?A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B5. 在Java中,哪个类提供了优先队列的功能?A. PriorityQueueB. LinkedListC. StackD. TreeSet答案:A6. 在Java中,以下哪个方法用于删除LinkedList中的元素?A. remove(Object o)B. poll()C. pop()D. dequeue()答案:A、B7. 在Java中,以下哪个类实现了Set接口?A. ArrayListB. HashSetC. HashMapD. LinkedList答案:B8. 在Java中,哪个类提供了栈的功能?A. StackB. LinkedListC. PriorityQueueD. TreeSet答案:A9. 在Java中,以下哪个方法用于在HashMap中添加键值对?A. add(K key, V value)B. put(K key, V value)C. insert(K key, V value)D. append(K key, V value)答案:B10. 在Java中,以下哪个类实现了SortedSet接口?A. TreeSetB. HashSetC. LinkedHashSetD. ArrayList答案:A二、填空题(每题2分,共20分)1. 在Java中,______类实现了List接口,允许对元素进行索引访问。
第1篇一、Java基础知识1. 请简述Java的基本特性和优势。
解析:Java具有简单性、面向对象、分布式、平台无关性、安全性、多线程、动态性、强类型、高效率、可移植性等特性。
其优势在于跨平台、安全性高、易于开发、有丰富的类库等。
2. 请解释Java中的基本数据类型和引用数据类型。
解析:基本数据类型包括byte、short、int、long、float、double、char、boolean;引用数据类型包括类、接口、数组等。
3. 请解释Java中的封装、继承、多态三个基本概念。
解析:封装是指将类的属性和方法封装在一个单元中,隐藏内部实现细节;继承是指子类继承父类的属性和方法,实现代码复用;多态是指同一方法在不同对象上表现不同的行为。
4. 请解释Java中的构造函数和析构函数。
解析:构造函数用于创建对象时初始化对象的属性,析构函数用于销毁对象时释放对象占用的资源。
5. 请解释Java中的static关键字。
解析:static关键字用于修饰成员变量和方法,表示该成员变量或方法属于类,而不是对象。
6. 请解释Java中的final关键字。
解析:final关键字用于修饰成员变量、方法和类,表示该成员变量、方法或类不可修改。
7. 请解释Java中的异常处理机制。
解析:Java中的异常处理机制包括try-catch-finally语句,用于捕获和处理程序中的异常。
8. 请解释Java中的泛型。
解析:泛型是一种参数化类型,允许在定义类、接口和泛型方法时指定类型参数,提高代码的复用性和安全性。
二、Java集合框架1. 请解释Java中的List、Set和Map接口。
解析:List接口表示有序集合,Set接口表示无序集合且元素不可重复,Map接口表示键值对映射。
2. 请解释Java中的ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合类。
解析:ArrayList和LinkedList实现List接口,ArrayList基于数组实现,LinkedList基于链表实现;HashSet和TreeSet实现Set接口,HashSet基于哈希表实现,TreeSet基于红黑树实现;HashMap和TreeMap实现Map接口,HashMap基于哈希表实现,TreeMap基于红黑树实现。
一、选择题:5、以下哪个HIbernate主键生成策略是实现主键按数值顺序递增的?(A)A) increment B)Identity C)sequence D)native6、在JSP中,Page指令的(B)属性用来引入需要的包和类。
A)Exends B)import C)language D)contentType7、从以下哪个选项中可以获得Servlet的初始参数(C)A)Servlet B)ServletContextC)ServletConfig D)GenericServlet8、以下关于HIbernate说法正确的是(A)A)Hibernate是ORM的一种实现方式。
B)Hibernate不要JDBC的支持。
C)属于控制层D)对象关系映射,让对象同数据库表产生关系。
9、下面关于OPM的说法不正确的是(C)A)持久化是将程序中数据在瞬时状态和持久状态间转换的机制。
B)瞬时状态是指程序数据保存在内存中,程序退出时,数据就不存在了。
C)把关系数据库中的数据读出来不属于持久化。
D)程序数据直接保存成文本文件属于持久化。
10、下面关于SessionFactory的说法正确的是(B)A)SessionFactory是轻量级的,可以随意创建和销毁。
B)SessionFactory是重量级的接口,不可以随意创建和销毁。
C)SessionFactory是重量级的类,不可以随意创建和销毁。
D)SessionFactory是类。
11、下面关于Hibernate中load和get的方法说法正确的是(D)A)两个方法是一样的,没有任何区别。
B)两个方法是不一样的,get先找缓存,再找数据库。
C)两个方法是不一样的,load每次都会找数据库。
D)以上说法都不对。
12、spring能管理的组件不包括(A)A)Jsp B)javabean C)pojo D)DAO二、简答题:1、创建一个遵循Servlet规范的java类,有几种方法?分别是哪几种?答:7种。
JavaEE企业级开发SSM框架题库及答案1、以下哪个方法可以定义Spring MVC中的拦截器()∙ A、继承HandlerInterceptor∙ B、实现WebRequestInterceptor∙ C、实现HandlerInterceptorAdapter∙ D、继承WebRequestInterceptor参考答案 : B2、下列有关AOP专业术语中,用于指那些被拦截到的点的是()。
∙ A、Joinpoint∙ B、Pointcut∙ C、Aspect∙ D、Advice参考答案 : A3、针对GET方式RESTful风格的请求http://localhost:8080/chapter14/user/1,后台方法接收参数的路径映射写法可行的是()。
∙ A、@RequestMapping("/user/{id}",method=RequestMethod.GET)∙ B、@RequestMapping(value="/user/ids")∙ C、@GetMapping(value="/user/{ids}")∙ D、@GetMapping(value="/user/{id}",method=RequestMethod.GET)参考答案 : C4、下面描述中,关于query()方法说法错误的是()∙ A、List query(String sql, RowMapper rowMapper)会执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果∙ B、List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)会根据String类型参数提供的SQL语句创建PreparedStatement对象,通过RowMapper将结果返回到List中∙ C、List query(String sql, Object[] args, RowMapper rowMapper)会将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录∙ D、queryForList(String sql,Object[] args, class<T> elementType)可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型参考答案 : C5、下面关于<collection>元素的描述正确的是()∙ A、MyBatis就是通过<collection>元素来处理一对多关联关系的∙ B、<collection>元素的属性与<association>元素完全相同∙ C、ofType属性与javaType属性对应,它用于指定实体对象中所有属性所包含的元素类型∙ D、<collection >元素只能使用嵌套查询方式参考答案 : A6、以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法错误的是()∙ A、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,只需要编写DAO接口∙ B、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession∙ C、可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory∙ D、SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。
框架阶段测试卷选择题(共50题,每题2分,满分100分)1.选出不是Restrictions方法的选项(D )。
A.eq()B.gt()C.like()D.isNULL()2.已知系统中TBL_USER 表对应的实体类是TblUser,下列HQL 语句中正确的是(D )。
A.from Tbl_UserB.select * from tbluserC.select TblUser from TblUserD.from TblUser t where t.uname = "15"3.阅读下面的代码,要输出查询结果中第一条记录的用户名,正确的代码是(AD )。
String hql = "select u.uname, u.upass from TblUser u";Query query = session.createQuery(hql);A.Object[] arr = (Object[])query.list().iterator().next();System.out.println(arr[0]);B.TblUser user = (TblUser)query.list().get(0);System.out.println(user.getUname());C.String uname = (String)query.list().get(0).get(0);System.out.println(uname);D.String uname = (String)query.list().get(0)[0];System.out.println(uname);4.对下面代码中存在的错误,说法不正确的是(D)。
String hql = "from TblUser u where u.status = @status ";//<1>Query query = session.createQuery();//<2>query.setNamedParameter(":status","");//<3>return query.executeQuery(hql);//<4>A.第一行中的命名参数“@status”应该是“:status”B.第二行createQuery 函数应该传入hql 作为参数C.第三行命名参数名称“:status”应该是“status”D.第四行应该是“return query.list(hql);”5.下面代码的执行效果是(C )。
String hql = "from TblStudent s order by s.score asc";Query query = session.createQuery(hql);query.setFirstResult(0);query.setMaxResults(5);return query.list();A.返回分数最高的五个学生B.返回分数最高的六个学生C.返回分数最低的五个学生D.返回分数最低的六个学生6.下面HQL语句的含义是(D )。
select stufrom TblStudent stuwhere stu.score > ( select avg(score) from TblStudent )A.查询所有学生的平均分B.查询得分大于平均分的学生的成绩C.查询得分最高的学生D.查询得分大于平均分的学生7.以下(CD )利用了外联结查询。
A.立即加载B.延迟加载C.迫切左外联结查询D.迫切右外联接查询8.以下程序的打印结果是(C )。
Customer c1=(Customer)session.load(Customer.class,new Long(1));Customer c2=(Customer)session.load(Customer.class,new Long(1));System.out.println(c1==c2);session.close();A.运行出错,抛出异常B.打印falseC.打印trueD.无输出9.使用Session 获取命名查询的方法是(A)。
A.getNamedQuery()B.getnamedQuery()C.getNameQuery()D.getNamedSQLQuery()10.在映射文件中配置命名查询元素的是(A )。
A.<query>B.<return>C.<name-query>D.<getnamedquery>11.下面不属于持久化的是(A)。
A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来B.把程序数据从数据库中读出来C.从XML配置文件中读取程序的配置信息D.把程序数据保存为文件12.下面(A )不属于关系—对象映射的映射信息。
A.程序包名到数据库库名的映射B.程序类名到数据库表名的映射C.实体属性名到数据库表字段的映射D.实体属性类型到数据库表字段类型的映射13.下面(CD )不是Hibernate 映射文件中包含的内容。
A.数据库连接信息B.Hibernate 属性参数C.主键生成策略D.属性数据类型14.下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是(D )。
public static void main(String[] args) {SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Medal medal = new Medal();medal.setOwner("Shen Baozhi");medal.setSport("Table Tennis-Women's Singles");medal.setType("Gold Medal");session.save(user);session.close();}A.配置文件配置有误B.没有在配置文件中包含对映射文件的声明C.映射文件配置有误D.没有开启事务15.下列属于多对一关系的是(AD)。
A.书和作者B.商品种类和商品C.用户和发布的出租信息D.士兵和班长16.下面是某系统中的两个实体类,依此可以得知(B )。
public class Wage{ //月工资实体类private Long wid;private String empName; //雇员姓名private String month; //月份//Getter & Setter……}public class WageItem{ //工资项private Wage wage;private Long iid;private String itemName; //项目名称,如基本工资、职位津贴等private String amount; //数额//Getter & Setter……}A.Wage 和WageItem 间存在单向一对多的关联B.WageItem 和Wage 间存在单向多对一的关联C.Wage 和WageItem间存在双向一对多的关联D.Wage 和WageItem间存在双向多对一的关联17.对第2题中的WageItem 实体类有如下配置,其中空白处应填入的代码是(A)。
<class name="WageItem" table="fin_wage_item"><id name="iid" column="wi_id" type="ng.Long"><generator class="native" /></id><property name="itemName" column="wi_name"type="ng.String" /><property name="amount" column="wi_amount"type="ng.Double" /><!--配置wage 属性-->______________________</class>A.<many-to-one name="wage" column="wi_wage_id" class="Wage" />B.<one-to-many name="wage" column="wi_wage_id" class="Wage" />C.<set name="wage"><key column="wi_wage_id" /><one-to-many class="Wage" /></set>D.<set name="wage"><key column=" wi_wage_id" /><many-to-one class="Wage" /></set>18.某系统中有如下代码片段,执行下面代码可能导致执行的SQL语句不包括(CD )。
<set name="items" inverse="true"><key column="wi_wage_id/><one-to-many class="WageItem" /></set>Wage wage = (Wage)session.get(Wage.class,1L);WageItem item = (WageItem)session.get(WageItem.class,1L);wage.getItems().remove(item);session.update(wage);A.select w0_.id, w0_.emp_name, w0_.month from fin_wage w0_ where w0_.id=?B.select i0_.wi_id, i0_.wi_name, i0_.wi_amount,i0_.wi_wage_id from fin_wage_item i0_ where i0_.wi_id=?C.delete from fin_wage_item where wi_id=?D.update fin_wage_item set wi_wage_id = null where wi_id=?19、在hibernate中, Customer.hbm.xml文件如下:<set name="orderses" inverse="true" cascade="all" ><key><column name="Customer_Id" /></key><one-to-many class="entity.Orders" /></set>关于cascade 属性说法正确的是( B )A.此属性不需要设置B.不添加此属性,不能通过Customer对象进行级联操作C.默认支持所有级联操作D.默认只支持删除级联操作20、下面关于hibernate核心接口说明错误的是( B )A. Configuration接口:配置Hibernate,根据其启动hibernate,创建SessionFactory对象B. SessionFactory接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存C. Query和Criteria接口:执行数据库的查询D. Transaction接口:管理事务21.以下属于struts2的控制器组件是:AA.ActionB.ActionFormC.ActionServletD.dispatchAction22.以下属于struts2的体系结构的是:(多选)ACA.struts2控制器组件B.struts2配置文件C.FilterDispathcerD.Action23. 以下属于struts2配置文件中的配置元素是:(多选)ABA.<package>B.<action>C.<form-beans>D.<action-mappings>24. 关于struts1和struts2对比的说法正确的是:DA.struts1要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的C.struts1和struts2中都使用ActionForm对象封装用户的请求数据D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值25. 以下关于ValueStack说法正确的是:(多选)ADA.每个Action对象实例拥有一个ValueStack对象B.每个Action对象实例拥有多个ValueStack对象C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中D.ValueStack会在请求开始时被创建,请求结束时消亡26. 关于struts2配置文件说法正确的是:CA.必须在WEB-INF/classes目录下B.名字必须为struts.xmlC.配置Action时,必须配置包信息D.使用<forward>元素配置转发27. 在struts2配置中用()元素来配置常量:CA.<const>B.<constants>C.<constant>D.<constant-mapping>28. 关于struts2包的说法正确的是: CA.struts2框架使用包来管理常量B.struts2框架定义包时必须指定name属性C.struts2框架中配置包时,必须继承自struts-default包,否则会报错D.struts2框架中使用包来管理Action29. struts2中获取Servlet API的方法正确的是:(多选)ADA.使用ActionContext对象以解耦合的方法访问Servlet APIB.使用ServletActionContext对象以解耦合的方式访问Servlet APIC.使用ActionContext对象以耦合的方式访问Servlet APID.使用ServletActionContext对象以耦合的方式访问Servlet API30. struts2动态调用的格式为:BA.ActionName?methodName.actionB.ActionName! methodName.actionC.ActionName*methodName.actionD.ActionName@mathodName.action31. 如果要实现struts2的数据校验功能 DA.普通Action类可以实现B.继承自Action接口可以实现C.继承自ActionSupport类可以实现D.继承自ActionValidate类可以实现32. 如果要实现自定义处理结果,需继承那个类 BA.DispathcerB.StrutsResultSupportC.SupportD.Action33. 实现动态返回结果,在配置<result>元素时使用(A)指定视图资源A.${属性名}B.@{属性名}C.${'属性名'}D.${"属性名"}34. 用于实现国际化的struts2标签是:AA.<s:text>B.<s:message>C.<s:textfield>D.<s:resource>35. struts2默认的处理结果类型是:AA.dispatcherB.redirectC.chainD.forward36. 自定义转换器继承的抽象类是:CA.ConverterB.TypeConverterC.StrutsTypeConverterD.converts37. 自定义转换器的注册方式有:CA.只有全局注册方式B.只有局部注册方式C.只有全局和局部注册方式D.以上说法都不对38. 自定义拦截器类的方式有:(多选)AA.实现Interceptor接口B.实现AbstractInterceptor接口C.继承Interceptor类D.继承AbstractInterceptor类39. 在struts.xml文件中,使用(D)元素定义拦截器A.<interceptor-ref>B.<interceptor>C.<intercep>D.<default-interceptor-ref>40. 在OGNL中?操作符的作用是:CA.取出符合选择逻辑的第一个元素B.取出符合选择逻辑的最后一个元素C.取出符合选择逻辑的所有元素D.以上说法都不对41. 在Spring中,数据连接是通过数据源获得的,下列关于Spring数据源描述错误的是( A)。