Java基础入门(第二版)
《Java基础入门(第二版)》试卷
得分
单选题(每题2分,共计30分)
1.阅读下列代码片段:
public class Example{
public static void main(String[] args) {
{
int a = 1;
System.out.print(a);
}
{
int a = 2;
System.out.print(a);
}
int a = 3;
System.out.print(a);
}}
下列选项中,哪一个是程序正确的运行结果()
A、123
B、111
C、121
D、编译不通过
2.下列关于super关键字的说法中,正确的是()
A、super关键字是在子类对象内部指代其父类对象的引用
B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性
D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法3.请阅读下面的程序,程序的运行结果是()。
class Person {
String name;
int age;
public Person() {}
public Person(String n, int a) {
总分题型单选题多选题填空题简答题题分
得分
name = n;
age = a;
}
public void show() {
System.out.print(name + "---" + age +" "); }
}
public class Test {
public static void main(String[] args) { Person p1 = new Person();
p1.show();
Person p2 = new Person("周星驰", 27);
p2.show();
}
}
A、null---0周星驰---27
B、null---27周星驰---27
C、周星驰---0null---27
D、周星驰---27null---274.下列有关HashSet集合的描述中,错误的是()
A、HashSet是Set接口的一个实现类
B、向HashSet存入对象时,对象一般会重写hashCode()和equals()方法
C、向HashSet存入对象时,对象的equals()方法一定会被执行
D、HashSet存储的元素是不可重复的
5.请阅读下面的程序
public class Test {
public static void main(String[] args) {
int a = { 2, 0, 4, 1, 8, 3, 5 };
int temp;
for (int i = 0; i < a.length - 1; i++) {
for (int j = a.length - 1; j > i; j--) {
if (aj < aj - 1) {
temp = aj;
aj = aj - 1;
aj - 1 = temp;
}
}
}
for (Integer i : a) {
System.out.print(i);
}
}
}
下列选项中,哪个是程序的运行结果()
A、8543210
B、0123458
C、2041835
D、以上答案都不对
6.下面选项,关于CallableStatement接口的registerOutParameter( int parameterIndex, int sqlType)方法的作用,描述正确的是()(单选)
A、执行查询语句
B、执行insert
C、update
D、delete语句的7.请阅读下面的程序
public class Example {
public static void main(String[] args) { char c = 'B';
switch(c) {
case 'A':
System.out.println("优");
break;
case 'B':
System.out.println("良");
break;
case 'C':
System.out.println("差");
break;
}
}
}
下列选项中,哪一个才是程序的运行结果()A、优
B、良
C、差
D、编译失败
8.以下选项中,哪个是m的父类()
A、File
B、
C、OutputStream
D、InputStream
9.阅读下面的代码:
public class Example {
public static void main(String[] args) {
int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定义一个数组
int minIndex = 0; //初始时设第1个角标处的值为最小值for (int i = 1; i < arr.length; i++) {
if (_____________) {
minIndex = i;
}}
System.out.println("数组中的最小值为:"+arr[minIndex]); }
}
如果要计算数组中的最小值,那么上述代码的横线处应该填写()
A、i B、arr[i] C、arr[i]>arr[minIndex] D、i>minIndex 10.阅读下面的代码 public class Example{ public static void main(String[] args) { String s1=new String("abc"); String s2=s1.intern(); String s3="abc"; System.out.println(s1==s2); System.out.println(s2==s3); System.out.println(s1==s3); } } 程序的输出结果是() A、 false true false B、falsetruetrue C、falsefalsetrue D、truetruefalse 11.下列选项中,哪个流使用了缓冲区技术?() A、BufferedOutputStream B、 C、DataOutputStream D、 12.在Java语言中,String类型的成员变量的默认初始值是()A、false B、C、0 D、null 13.下面选项中,用于创建Statement对象的方法是()(单选) A、getMetaData() B、getConnection(Stringurl C、Stringuser D、Stringpwd) 14.Java多线程中,关于解决死锁的方法说法错误的是() A、避免存在一个进程等待序列{P1,P2,…,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,…...,而Pn等待P1所占有的的某一资源,可以避免死锁 B、打破互斥条件,即允许进程同时访问某些资源,可以预防死锁,但是,有的资源是不允许被同时访问的,所以这种办法并无实用价值 C、打破不可抢占条件。即允许进程强行从占有者那里夺取某些资源。就是说,当一个进程已占有了某些资源,它又申请新的资源,但不能立即被满足时,它必须释放所占有的全部资源,以后再重新申请。它所释放的资源可以分配给其它进程。这样可以避免死锁 D、使用打破循环等待条件(避免第一个线程等待其它线程,后者又在等待第一个线程)的方法不能避免线程死锁 15.阅读下面的程序 class Example{ public static void main(String[] args) throws Exception{ int x = 0; try{ x = div(5,2); }catch(Exception e){ System.out.println(e); } System.out.println(x); } public static int div(int a,int b){ return a / b ; } } 程序的输出结果是() A、2.5 B、2 C、2.0 D、编译失败得分 多选题(每题2分,共计10分) 16.以下有关计算机中,应用程序的端口号说法正确的是()。 A、端口号是用两个字节(10位的二进制数)表示的,它的取值范围是0~65535; B、0~1023之间的端口号由操作系统的网络服务所占用; C、用户的普通应用程序需要使用1024以上的端口号; D、同一计算机中的不同应用程序可以共有同一端口号。 17.RandomAccess name,String mode)构造方法中,mode取值有() A、r B、rw C、rs D、rws 18.下列目录中,哪些属于JDK安装后的子目录() A、lib目录 B、demo目录 C、jre目录 D、include目录 19.DateFormat类常用方法有() A、static DateFormat getDateInstance() B、tatic DateFormat getDateInstance(int style) C、String format(Date date) D、Date parse(String source) 20.下列关于jre目录的描述中,正确的是() A、jre是JavaRuntimeEnvironment的缩写 B、jre是一个小型的数据库 C 、jre是Java运行时环境的根目录 D、jre用于存放一些可执行程序 得分 填空题(每题2分,共计20分) 21.try…catch语句中,catch的作用的抓住或者捕获【】。 22.在JDK 8中也根据Lambda表达式特性新增了一个【】方法来遍历Map集合。23.类是对某一类事物的【】,而对象用于表示现实中该类事物的个体。 24.SUN公司将Java划分为三个技术平台,它们分别是【】、【】和【】。 25.JDK 7中新增的【】框架,该框架解决了应用程序并行计算的能力。 26.一个字符常量需要用一对英文半角格式的【】引起来。 27.在使用Calendar.MONTH字段时,月份的起始值是从【】开始的。 28.DateFormat类专门用于将日期格式化为字符串或者将用特定格式显示的日期字符串转换成一个【】对象。 29.Java中的异常分为两种,一种是【】另外一种是运行时异常。 30.在编写JDBC应用程序时,必须要把指定数据库驱动程序或类库加载到【】中。 得分 简答题(每题8分,共计40分) 31.编写一个静态方法uniqueArray (ArrayList list),实现去除ArrayList集合中重复元素的功能。32.简述同步代码块的作用。 33.请按照以下要求设计一个有两个重载方法的类Demo: 1)写一个方法获取三个int类型数据中最大的值。 2)写一个方法获取三个float类型数据中最大的值。 3)方法名是getMax(),并要求方法体只有一条语句。(提示:用三元运算符嵌套) 34.通过java中的包装类完成以下功能: 1. 创建一个基本数据类型int i=10,将其转换成对应的包装类Integer in 2. 通过创建的int类型包装类对象in来描述自动拆装箱 2.1 将in拆箱,赋值给int a 2.2 对in重新赋值,值为20 35.给出如下一个map,请使用迭代器迭代出里面每一个key和value的值。Map hashMap.put("key2", "value2"); hashMap.put("key3", "value3"); 答案 单选题(每题2分,共计30分)1.A 2.A 3.A 4.C 5.B 6.D 7.B 8.D 9.B 10.A 11.A 12.D 13.D 14.D 15.B 多选题(每题2分,共计10分)16.B,C 17.A,B,D 18.A,C,D 19.A,B,C,D 20.A,C 填空题(每题2分,共计20分) 21.【异常】 22.【forEach(BiConsumer action)】 23.【抽象描述】 24.【JavaSE(Java平台标准版)】【JavaME(Java平台小型版)】【JavaEE(Java平台企业版)】25.【fork/join】 26.【单引号】 27.【0】 28.【Date】 29.【编译时异常】 30.【classpath】 简答题(每题8分,共计40分) 31.正确答案:public static ArrayList uniqueArray(ArrayList list) { ArrayList newList = new ArrayList(); //创建新的集合 for(Object obj : list) { //遍历原有集合 //如果新的集合中不包含原有集合中的对象 if(!newList.contains(obj)) { newList.add(obj); //就将其填入原有集合中 } } return newList; } 32.正确答案:同步代码块的作用是控制线程","保证同步代码块中只能有一个线程在运行","保证了多线程操作数据的安全性。 33.正确答案:public class Demo { public static int getMax(int a"," int b"," int c) { return a > b ? (a > c ? a : c) : (b > c ? b : c); } public static float getMax(float a"," float b"," float c) { return a > b ? (a > c ? a : c) : (b > c ? b : c); } } 34.正确答案:public class Demo { public static void main(String[] args) {int i=10; Integer in=new Integer(i); int a=in; in=20; } } 35.正确答案:Set while(iterator.hasNext()){ Entry System.out.println(entry.getKey()); System.out.println(entry.getValue()); }