×××机构/学校/公司×××课程/部门/班级Java×××考试题文档密级机密文档日期2019-09-07Copyright © 2019 ×××版权所有非经本单位书面许可,任何单位和个人不得擅自摘抄、复制或拍照本文档内容的部分或全部,并不得以任何形式传播,否则将保留采取一切法律措施的权利,追究传播者的法律责任考试须知1.考试时长60分钟,请注意合理分配时间;2.请将答案统一写在考试提供的答题纸上,且勿在试卷上进行草稿或者答题;3.若迟到入场,考试结束时间按照统一规定结束,不针对迟到情况延长考试时间;4.领到答题纸后,请先在指定位置准确、清楚地填写姓名、手机号/邮箱等栏目;5.考试杜绝任何作弊行为;6.请将手机调至静音,保持考场安静;7.请勿以任何形式复制或带走任何考试材料,包括但不限于以拍照、手抄、夹带等方式将笔试试卷、答题纸及草稿纸等材料带出考场;8.考试过程中如有任何问题可举手示意在场监考人员。
考试内容1.单选题(20’) (4)2.多选题(30’) (5)3.简答题(30’) (7)4.编程题(20’) (9)1. 单选题(20’)本部分每试题2分。
1、下面关于变量及其作用范围的陈述哪个是不对的?(B )A.实例变量是类的成员变量。
B.实例变量用关键字static声明。
C.在方法中定义的局部变量在该方法被执行时创建。
D.局部变量在使用前必须被初始化。
2、下面哪条语句把方法声明为抽象的公共方法?( B )A.public abstract method();B.public abstract void method();C.public abstract void method(){}D.public void method() extends abstract;3、哪个是将一个十六进制值赋值给一个long型变量?( D )A.long number = 345L;B.long number = 0345;C.long number = 0345L;D.long number = 0x345L;4、下面的哪个赋值语句是不对的?( A )A.float f = 11.1;B.double d = 5.3E12;C.double d = 3.14159;D.double d = 3.14D;5、下面哪个是不合法的标识符?( C )A.$persons;B.TwoUsers;C.*point;D._endline;6、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( C )。
A、本地方法B、静态方法C、最终方法D、抽象方法7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )。
A、 public static void main()B、 public static void main(String[ ] args)C、 public static int main(String[ ] args)D、public void main(String arg[ ])8、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序的特性称为( C )。
A、隐藏B、覆盖C、重载D、Java不支持此特性10、以下代码段执行后的输出结果为( C )。
int x=-3; float y=10.0f;System.out.println(y%x);A、不能成功编译B、-1.0C、1.0D、-12. 多选题(30’)本部分每试题全部选对得3分,少选得1分,多选、错选或者不选得0分。
1、以下哪些是运行时异常( ABCD )A. ng.lndexOutOfBoundsExceptionB. ng.NullPointerExceptionC. java.util.ConcurrentModificationExceptionD. java.time.format.DataTimeParseException2、以下哪些能够保证线程安全( BC )A. 单例模式B. java.util.HashtableC. synchronizedD. volatile3、垃圾回收算法CMS的缺点有哪些( ABC )A. 需要更大的堆空间B. 需要更多的CPU空间C. 不会整理、压缩堆空间D. 增加了回收的停顿时间4、以下哪些属于工厂模式( ABC )A. 工厂方法模式B. 简单工厂模式C. 抽象工厂模式D. 组合工厂模式5、以下哪些语句可以正常创建Lock对象?( ABD )A. Lock lock = new ReentrantLock(true);B. Lock lock = new ReentrantLock();C. Lock lock = new Lock();D. Lock lock = new ReentrantLock(false);6、以下程序的输出是( AC )1.public class Test{2.public static void main(String args[])throwsInterruptedException{3.Test t =new Test();4.//making t eligible for garbage collection5. t =null;6.//calling garbage collector7.System.gc();8.//waiting for gc to complete9.Thread.sleep(1000);10.System.out.println("end main");11.}12.@Override13.protected void finalize()14.{15.System.out.println("finalize method called");16.System.out.println(10/0);17.}18.}A. end mainB. 其他所有C. finalize method calledD. Throw ng.ArithmeticException:/by zero7、哪些情况会触发FULL GC( ABCD )A. 老年代空间不足B. 统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间C. 堆中分配很大的对象D. CMS GC时出现promotion failed和concurrent mode failure8、以下哪些是spring的事物隔离级别:( ACD )A. PROPAGTION_SUPPORTSB. PROPAGATION_NESTEDC. PROPAGATION_MANDATORYD. PROPAGATION_NEVER9、下列关于java数组论述,正确的是:( ABCD )A. int[] x = {0};与int[] x = new int[1];的结果是完全等价的。
B. String[] x = {“o” ,”k” ,”ok”);所创建的数组对象含有3个串对象。
C. Int [] [] x = {{1},{1,2},{1,2,3},new int[1]};是正确语句。
D. 定义一个Java的多维数组变量,实际上是定义了将会指向数组对象的引用,该数组对象所包含的元素又将是另一个数组对象的引用。
10、以下哪些数据隔离级别会产生幻读( ABD )A. Read UncommittedB. repeatable readC. SerializableD. read committed3. 简答题(30’)本部分每试题5分。
1、面向对象的特征有哪些方面?答:JAVA面向对象最重要的特征就是:封装,继承,多态。
封装是为了方便调用类库里面已经写好的函数,继承是方便对已有函数的功能进行直接调用和扩展。
按照原则,java中已经写好的类库会被打包成jar包,不允许调用者更改里面的代码。
但是你可以通过其中的抽象类或者接口,根据具体的业务逻辑进行功能的扩展。
多态的作用是,可以实现对继承对象的统一调度,是面向对象的精髓所在。
另外,java还有语言简单,面向对象,和平台无关性。
之所以java可以跨平台,在于他可以通过java虚拟机JVM,将java代码解释成该平台能理解的语言。
2、&和&&的区别?答:&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。
如&&例子中的i++>5被执行了,而i++<9并没有被执行,这就是他们的差别。
&例子中的i++>5和i++<9都被执行了。
3、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
答:Java的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。
(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
4.由编译器自动分配释放,存放函数的参数值,局部变量的值等.静态区/方法区:1.方法区又叫静态区,跟堆一样,被所有的线程共享。
方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
3. 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。
4、JDBC如何做事务处理?答:在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。