javaSE2.20.试卷A及答案

上传人:go****ng 文档编号:161920092 上传时间:2022-10-16 格式:DOCX 页数:11 大小:41.35KB
收藏 版权申诉 举报 下载
javaSE2.20.试卷A及答案_第1页
第1页 / 共11页
javaSE2.20.试卷A及答案_第2页
第2页 / 共11页
javaSE2.20.试卷A及答案_第3页
第3页 / 共11页
资源描述:

《javaSE2.20.试卷A及答案》由会员分享,可在线阅读,更多相关《javaSE2.20.试卷A及答案(11页珍藏版)》请在装配图网上搜索。

1、A卷姓名:_一 选择题:(每题2分,共62分)61.关于sleep()和wait(),以下描述错误的一项是( ) A. sleep是线程类(Thread)的方法,wait是Object类的方法; B. sleep不释放对象锁,wait放弃对象锁; C. sleep暂停线程、但监控状态仍然保持,结束后会自动恢复; D. wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。 解答:D sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Obje

2、ct类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。62.下面能让线程停止执行的有(多选)( ) A. sleep(); B. stop(); C. notify(); D. synchronized(); E. yield();F. wait(); G. notifyAll(); 解答:ABDEF sleep:导致此线程暂停执行指定时间 stop: 这个方法将终止所有未结束的方法,包括run方法。 synchronized():对象锁 yield:

3、当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。 wait:当前正在被服务的线程需要睡一会,醒来后继续被服务63.下面哪个可以改变容器的布局?( ) A. setLayout(aLayoutManager); B. addLayout(aLayoutManager); C. layout(aLayoutManager); D. setLayoutManager(aLayoutManager); 解答:A Java设置布局管理器setLayout() 64.下面哪个是applet传递参数的正确方式?( ) A. B. C. D. 解答:B 65.提供Java存

4、取数据库能力的包是()Ajava.sql Bjava.awt Cjava.lang Djava.swing 解答:A java.sql是JDBC的编程接口 java.awt和java.swing是做图像界面的类库 java.lang: Java 编程语言进行程序设计的基础类66.不能用来修饰interface的有()AprivateBpublicCprotectedDstatic解答:ACD修饰接口可以是public和默认67.下列说法错误的有()A 在类方法中可用this来调用本类的类方法B 在类方法中调用本类的类方法时可直接调用C 在类方法中只能调用本类中的类方法D 在类方法中绝对不能调用

5、实例方法解答:ACDA.在类方法中不能使用this关键字C在类方法中可以调用其它类中的类方法 D在类方法中可以通过实例化对象调用实例方法 68.从下面四段(A,B,C,D)代码中选择出正确的代码段() Aabstract class Name private String name; public abstract boolean isStupidName(String name) Bpublic class Something void doSomething () private String s = ; int l = s.length(); Cpublic class Somethin

6、g public static void main(String args) Other o = new Other();new Something().addOne(o); public void addOne(final Other o) o.i+; class Other public int i; Dpublic class Something public int addOne(final int x) return +x; 解答:CA.抽象方法不能有方法体 B方法中定义的是局部变量,不能用类成员变量修饰符private Dfinal修饰为常量,常量的值不能被改变 69.选择下面代码

7、的运行结果:()。 public class Test public void method() for(int i = 0; i =3 B)s3= “X” C)int i = s.iength() D)s = s +10 解答:D A. 移位运算,要是整数类型。 Bs不是数组 CString类取长度的方法为:length()D. 字符串相加73.如下哪些不是java的关键字?( )A.constB.NULLC.falseD.thisE.native解答:BC虽然null false 还有true不是java的关键字,但是都有特殊用途,不建议作为标识符。74.已知表达式 int m = 0,1

8、,2,3,4,5,6;下面哪个表达式的值与数组下标量总数相等?( )A .m.length()C.m.length()+1D.m.length+1解答:B解答:数组下标是从零开始的,但是数据下标的总量和数据长度相同。75.方法resume()负责恢复哪些线程的执行( )A通过调用stop()方法而停止的线程。B通过调用sleep()方法而停止的线程。C通过调用wait()方法而停止的线程。D通过调用suspend()方法而停止的线程。解答:DSuspend可以挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行,用Resume是恢复挂起的线程,让这个线程继续执行下去。76.有关线程的哪些叙

9、述是对的( )A一旦一个线程被创建,它就立即开始运行。B使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。C当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。D一个线程可能因为不同的原因停止并进入就绪状态。解答: BCD在抢占式线程模型中,操作系统可以在任何时候打断线程。通常会在它运行了一段时间(就是所谓的一个时间片)后才打断它。这样的结果自然是没有线程能够不公平地长时间霸占处理器。77.已知如下代码:( )public class Testpublic static void main(String arg )int i = 5;doSystem.out.

10、print(i);while(-i5)System.out.print(“finished”); 执行后的输出是什么? A 5 B 4 C 6 D finished 解答:AD 输出5finished,dowhile循环中循环体一定会执行一次 78.下面的哪些声明是合法的?( ) A.long 1 = 4990 B.int i = 4L C.float f =1.1 D.double d = 34.4 解答:AD B.4L应该是long类型的写法,C.1.1是double类型 ,float f=1.1f是正确写法79.给出如下代码:( )class Testprivate int m;publ

11、ic static void fun() /some code如何使成员变量m被函数fun()直接访问?()A.将private int m改为 protected int mB.将private int m改为 public int mC.将private int m改为 static int mD.将private int m改为int m解答:C 静态的方法中可以直接调用静态数据成员80.以下哪个方法用于定义线程的执行体?()A.start()B.init()C.run()D.main()E.synchronized()解答:C run方法是线程的执行体81.给出下面的代码段:( ) p

12、ublic class Base int w, x, y, z; public Base(int a, int b) x=a; y=b; public Base(int a, int b, int c, int d) /assignment x=a, y=b w=d;z=c; 在代码说明/assignment x=a, y=b处写下如下哪几个代码是正确的?() A.Base(a, b); B.x=a, y=b;C.x=a; y=b; D.this(a,b); 解答:CD C是直接给x,y赋值 D是使用this调用本类中其它的构造方法 82.关于运算符和描述正确的是 A.执行移动 B.执行翻转

13、C.执行有符号左移,执行无符号左移D.执行无符号左移,执行有符号左移解答:C83. 选择Java语言中的基本数据类型(多选)A.byteB.IntegerC.StringD.charE.long答案:ADE基本数据类型总共有8个:byte,short,int,long,char,boolean,float,double84.从下列选项中选择正确的Java表达式A.int k=new String(“aa”)B.String str=new String(“bb”)C.char c=74;D.long j=8888;解答:BCD 85. Java I/O程序设计中,下列描述正确的是 A. Out

14、putStream用于写操作 B. InputStream用于写操作 C. I/O库不支持对文件可读可写API 解答:A B.InputStream用于读操作 CI/O支持对文件的读写 86下述代码的执行结果是 class Super public int getLength() return 4; public class Sub extends Super public long getLength() return 5;public static void main (Stringargs) Super sooper = new Super (); Super sub = new Sub

15、(); System.out.printIn(sooper.getLength()+ “,” + sub.getLength() ); A. 4, 4 B. 4, 5 C. 5, 4 D. 5, 5 E. 代码不能被编译解答:E方法重写返回值类型与父类的一致87、Which two demonstrate a has a relationship(Choose two)?A. public interface Person public class Employee extends Person B. public interface Shape public interface Rectan

16、dle extends Shape C. public interface Colorable public class Shape implements Colorable D. public class Species public class Animalprivate Species species; E. interface Component class Container implements Component private Component children; 解答:D“has a”是关联关系,关联分双向关联和单向关联,双向关联是A,B类分别持有对方的引用(有是对方的属性

17、).单向关联是一方持另一方的引用.88. Given the folowing classes which of the following will compile without error?interface IFaceclass CFace implements IFaceclass Basepublic class ObRef extends Basepublic static void main(String argv)ObRef ob = new ObRef();Base b = new Base();Object o1 = new Object();IFace o2 = new

18、 CFace();A. o1=o2;B. b=ob;C. ob=b; D. o1=b; 解答:C b和ob对应的类之间没有任何关系,要想b=ob成立要么是父子关系,要么是接口实现类的关系 89. 关于Java语言,下列描述正确的是(多选) A. switch 不能够作用在String类型上 B. List, Set, Map都继承自Collection接口 C. Java语言支持goto语句 D. GC是垃圾收集器,程序员不用担心内存管理 解答:AD A: Java7支持String 该试题是Java6的B. Map没有继承Collection接口 Cjava不支持goto语句 90. 指出下

19、列程序运行的结果public class Example String str=new String(good); charch=a,b,c;public static void main(String args) Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+ and ); System.out.print(ex.ch); public void change(String str,char ch) str=test ok; ch0=g; A good and abc B good and

20、 gbc C test ok and abc D test ok and gbc解答:B 数组和字符串都是引用类型。41、Which code determines the int value foo closest to a double value bar?A. int foo = (int) Math.max(bar);B. int foo = (int) Math.min(bar);C. int foo = (int) Math.abs(bar);D. int foo = (int) Math.ceil(bar);E. int foo = (int) Math.floor(bar);F

21、. int foo = (int) Math.round(bar);解答:DEFA B两个选项方法是用错误,都是两个参数。abs方法是取bar的绝对值,ceil方法返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。floor方法返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。round方法 返回最接近参数的 long。二 简答题:(每题5分,共20分)21. 描述J2EE框架的多层结构,并简要说明各层的作用。解答:1) Presentation layer(表示层)a. 表示逻辑(生成界面代码)b. 接收请求c. 处理业务层抛出的异

22、常d. 负责规则验证(数据格式,数据非空等)e. 流程控制2) Service layer(服务层/业务层)a.封装业务逻辑处理,并且对外暴露接口b.负责事务,安全等服务3) Persistence layer(持久层)a 封装数据访问的逻辑,暴露接口b.提供方便的数据访问的方案(查询语言,API,映射机制等)4)Domain layer(域层)a. 业务对象以及业务关系的表示b. 处理简单的业务逻辑c. 域层的对象可以穿越表示层,业务层,持久层软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。25.请看如下片段: 解释lazy、inverse、cascade以及all

23、-delete-orphan属性的含义;并给出示例代码,说明在如下组合情况下,对于save、update、delete一对多关系中的一方对象操作时的区别:解答:(一)lazy:延迟加载Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。lazy策略可以用在:a标签上:可以取值true/falseb.标签上,可以取值true/false,这个特性需要类增强c./等集合上,可以取值为true/false/extrad./等标签上,可以取值false/proxy/no-proxy1) get和load的区别:a.get不支持延迟加载,而load支持。b.当查

24、询特定的数据库中不存在的数据时,get会返回null,而load则抛出异常。2) 类(Class)的延迟加载:a. 设置标签中的lazy=true,或是保持默认(即不配置lazy属性)b. 如果lazy的属性值为true,那么在使用load方法加载数据时,只有确实用到数据的时候才会发出sql语句;这样有可能减少系统的开销。3) 集合(collection)的延迟加载:可以取值true,false,extraa.true:默认取值,它的意思是只有在调用这个集合获取里面的元素对象时,才发出查询语句,加载其集合元素的数据b.false:取消懒加载特性,即在加载对象的同时,就发出第二条查询语句加载其关

25、联集合的数据c.extra:一种比较聪明的懒加载策略,即调用集合的size/contains等方法的时候,hibernate并不会去加载整个集合的数据,而是发出一条聪明的SQL语句,以便获得需要的值,只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加载所有对象的数据4) Hibernate单端关联懒加载策略:即在/标签上可以配置懒加载策略。可以取值为:false/proxy/no-proxya.false:取消懒加载策略,即在加载对象的同时,发出查询语句,加载其关联对象b.proxy:这是hibernate对单端关联的默认懒加载策略,即只有在调用到其关联对象的方法的时候才真正发出

26、查询语句查询其对象数据,其关联对象是代理类c.no-proxy:这种懒加载特性需要对类进行增强,使用no-proxy,其关联对象不是代理类注意:在class标签上配置的lazy属性不会影响到关联对象!(二)inverseinverse是指的关联关系的控制方向,inverse=false的side(side其实是指inversefalse所位于的class元素)端有责任维护关系,而inversetrue端无须维护这些关系(三)cascadecascade指的是层级之间的连锁操作。在定义关联对象的映射时,使用cascade=all,cascade=save-update,cascade=all-d

27、elete-orphan或cascade=deletea.如果父对象被保存,所有的子对象会被传递到saveOrUpdate()方法去执行(cascade=save-update)b.如果父对象被传递到update()或者saveOrUpdate(),所有的子对象会被传递到saveOrUpdate()方法去执行(cascade=save-update)c.如果一个临时的子对象被一个持久化的父对象引用了,它会被传递到saveOrUpdate()去执行 (cascade=save-update)d.如果父对象被删除了,所有的子对象对被传递到delete()方法执行 (cascade=delete)e

28、.如果临时的子对象不再被持久化的父对象引用,什么都不会发生(必要时,程序应该明确的删除这个子对象),除非声明了cascade=all-delete-orphan,在这种情况下,成为“孤儿”的子对象会被删除。(四) save、update、delete一对多关系中的一方对象操作时的区别1)当一方设置inverse=true时,所有由一方发出的操作都不会关联到多方。2)当一方设置 inverse=false, cascade=all-delete-orphan时,将删除不再和一方对象关联的所有多方对象。3)当一方设置 inverse=false, cascade=all时,当保存和删除一方对象时,

29、级联保存和删除所有关联的多方对象。4)当一方设置 inverse=false, cascade=none时,当对一方操作时,不级联到关联的多方对象。三编程题:(每题8分,共16分)4.编写代码实现同一平面内两圆是否碰撞,其中:第一个圆圆心坐标为(x1,y1),半径是r1,第二个圆圆心坐标为(x2,y2),半径是r2。方法声明如下:boolean collisWith(int x1,int y1,int r1,int x2,int y2,int r2)解答:boolean collisWith(int x1, int y1, int r1, int x2, int y2, int r2) boo

30、lean flag=false;int num1=(x1-x2)*(x1-x2);int num2=(y1-y2)*(y1-y2);int num3=num1+num2;double distance=Math.sqrt(num3);if(distance= 0) & (i s.length) System.out.print(si);i+;print(s, i);7.请写出求n!的算法。解答:public class Factorial public static void main(String args) long n = 6;System.out.println(doFactorial(n);public static long doFactorial(long n) if (n 1) System.out.println(ERROR);return 0; else if (n = 1 | n = 2) return n; else return n * doFactorial(n - 1);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!