1.可将语句块或方法设为同步使用的语句是(A)
Asynchronized用于方法或者代码块前,使此方法或者代码变成同步的
Cabstract用于定义抽象类或者方法
2.关于Java线程,下面说法错误的是(C)。
A创建线程可以通过实现Runnable接口和继承Thread类
Bjava利用线程使整个系统成为异步
C新线程一旦被创建,它将自动开始运行
3.对于一个已经不被任何变量引用的对象,当垃圾回收器准备回收该对象所占用的内存时,将自动调用该对象的哪个方法(A)
Afinalize
Bnotify
CnotifyAll
DhashCode
4.有以下程序片段且Interesting不是内部类,下列哪个选项不能插入到行1。(D)
publicclassInteresting{
//省略代码
}
importjava.awt.*;
packagemypackage;
classOtherClass{}
publicclassMyClass{}
题解:在同一个java原文件中,可以有多个class类,但是只能有一个公共的publicclass类
5.在类Tester中定义方法如下,B
publicdoublemax(intx,inty){//省略}
则在该类中定义如下哪个方法头是对上述方法的重载(Overload)
Apublicintmax(inta,intb){}
Bpublicintmax(doublea,doubleb){}
Cpublicdoublemax(intx,inty){}
Dprivatedoublemax(inta,intb){}
题解:重载就是一句话:同名不同参,返回值无关。
覆盖/重写:同名同参
6.Math.round(11.5)等于:(C)
A.11
B.11.5
C.12
D.12.5
题解:四舍五入
7.在Java中,以下关于方法重载和方法重写描述正确的是?D
A.方法重载和方法的重写实现的功能相同
B.方法重载出现在父子关系中,方法重写是在同一类中
C.方法重载的返回值类型必须一致,参数项必须不同
D.方法重写的返回值类型必须相同或相容。(或是其子类)
题解:
方法重载(overload):
1.必须是同一个类
2方法名(也可以叫函数)一样
3参数类型不一样或参数数量不一样
方法的重写(override)两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
8.以下描述错误的一项是(C)?
A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B.原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的
C.方法区用于存储JVM加载的类信息、常量、静态变量,即使编译器编译后的代码等数据,是线程隔离的
D.Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
题解:首先来说这个答案是很容易选出来的,只要知道静态变量是属于类的,在方法中是没有静态变量的,就可以选出正确答案了,但这儿还要把ACD说一下。大多数JVM将内存区域划分为MethodArea(Non-Heap)(方法区),Heap(堆),ProgramCounterRegister(程序计数器),VMStack(虚拟机栈,也有翻译成JAVA方法栈的),NativeMethodStack(本地方法栈),其中MethodArea和Heap是线程共享的,VMStack,NativeMethodStack和ProgramCounterRegister是非线程共享的(每个线程运行的时候都会单独的创建)。方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。
9.以下java程序代码,执行后的结果是(B)
publicclassTest{
publicstaticvoidmain(String[]args){
Objecto=newObject(){
publicbooleanequals(Objectobj){
returntrue;
};
System.out.println(o.equals("Fred"));
A.Fred
B.true
C.编译错误
D.运行时抛出异常
10.下面代码执行后的结果为(C)
intmain()
{
intsum=0;
inti=0,j=0;
for(j=0;j<6;j++)
if(j%2)continue;
sum++;
printf("sum=%d",sum);
return0;
A.sum=1
B.sum=2
C.sum=3
D.其他几项都不对
11.关于抽象类的叙述正确的是?(A)
A.抽象类不可以实例化
B.抽象类就是一种特殊的接口
C.抽象类的方法都是抽象方法
D.抽象类的导出类一定不是抽象类
题解:
interface/abstractclassobj=newclass();其中,new后面的class是前面接口/抽象类的实现类。
C选项中,抽象类的方法,可以是抽象abstract的,也可以是普通的。就算全部是普通方法,也可以用abstract修饰。
D选项中,导出类,及子类,抽象类的子类可以是抽象的,也可以是普通的
12.下面代码的输出结果是什么?D
publicclassZeroTest{
try{
inti=100/0;
System.out.print(i);
}catch(Exceptione){
System.out.print(1);
thrownewRuntimeException();
}finally{
System.out.print(2);
System.out.print(3);
A.3
B.123
C.1
D.12
还是需要理解Try...catch...finally与直接throw的区别:trycatch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,因此执行完finally语句块之后,程序终止了
13.能单独和finally语句一起使用的块是(A)
A.try
B.catch
C.throw
D.throws
14.下列有关Thread的描述,哪个是正确的?C
A.启动一个线程的方法是:thread.run()
B.结束一个线程的通常做法是:thread.stop()
C.将一个线程标记成daemon线程,意味着当主线程结束,并且没有其它正在运行的非daemon线程时,该daemon线程也会自动结束。
D.让一个线程等待另一个线程的通知的方法是:thread.sleep()
15.java中下面哪个能创建并启动线程(C)
publicclassMyRunnableimplementsRunnable{
publicvoidrun(){
//somecodehere
A.newRunnable(MyRunnable).start()
B.newThread(MyRunnable).run()
C.newThread(newMyRunnable()).start()
D.newMyRunnable().start()
16.HashMap和HashTable的描述,错误的是?D
A.他们都实现了Map接口。
B.HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
C.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
D.通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
contains方法容易引起歧义,因此在HashMap中改成containsKey和containsValue方法来替换。
17.尝试编译以下程序会产生怎么样的结果?(C)
publicclassMyClass{
longvar;
publicvoidMyClass(longparam){var=param;}//(1)
MyClassa,b;
a=newMyClass();//(2)
b=newMyClass(5);//(3)
A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行
18.如下代码的输出是
packageTest;
privatestaticvoidtest(int[]arr){
for(inti=0;i if(arr[i]%2==0){ thrownewNullPointerException(); }else{ System.out.print("e"); test(newint[]{0,1,2,3,4,5}); System.out.print("E"); 可以得到的结论是(B) A.编译出错 B.eE C.Ee D.eE1eE3eE5 E.Ee1Ee3Ee5 19.下面有关servletservice描述错误的是?B A.不管是post还是get方法提交过来的连接,都会在service中处理 B.doGet/doPost则是在javax.servlet.GenericServlet中实现的 C.service()是在javax.servlet.Servlet接口中定义的 D.service判断请求类型,决定是调用doGet还是doPost方法 20.正则表达式中,表示匹配非数字字符的字符是(D)? A.\b B.\d C.\B D.\D 21.Whatisdisplayedwhenthefollowingisexecuted;A doubled1=-0.5; System.out.println("Ceild1="+Math.ceil(d1)); System.out.println("floord1="+Math.floor(d1)); A.Ceild1=-0.0 floord1=-1.0 B.Ceild1=0.0 C.Ceild1=-0.0 floord1=-0.0 D.Ceild1=0.0 floord1=0.0 E.Ceild1=0 floord1=-1 1.Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数,看下面几个例子就明白。 小数点后第一位<5 正数:Math.round(11.46)=11 负数:Math.round(-11.46)=-11 小数点后第一位>5 正数:Math.round(11.68)=12 负数:Math.round(-11.68)=-12 小数点后第一位=5 正数:Math.round(11.5)=12 负数:Math.round(-11.5)=-11 总结:(小数点后第一位)大于五全部加,等于五正数加,小于五全不加。 2.Math.ceil():向上取整 例如: Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12 Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11 3.Math.floor():向下取整 Math.floor(11.46)=Math.floor(11.68)=Math.floor(11.5)=11 Math.floor(-11.46)=Math.floor(-11.68)=Math.floor(-11.5)=-12 22.(多选)下面的Java赋值语句哪些是有错误的(BF) A.inti=1000; B.floatf=45.0; C.chars=‘\u0639’; D.Objecto=‘f’; E.Strings="hello,world\0"; F.Doubled=100; 23.(多选)关于Java的一些概念,下面哪些描述是正确的:(BF) A.所有的Java异常和错误的基类都是java.lang.Exception,包括java.lang.RuntimeException B.通过try…catch…finally语句,finally中的语句部分无论发生什么异常都会得到执行 C.java中所有的数据都是对象 D.Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行 E.Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行 F.Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的 A:Java中所有错误和异常的父类是java.lang.Throwable C:基本数据类型不是对象,不能用new的方法获取,但是每个基本数据类型都对应着封装类型,这些封装类型为了解决基本数据类型面向对象用的。 D:Java垃圾回收器负责回收无用对象占据的内存资源,但对象没有使用new获取了一块特殊区域,这块特殊区域的回收使用finallize() F:Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁” Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。 24.(多选)关于Java中的数组,下面的一些描述,哪些描述是准确的:(ACF) A.数组是一个对象,不同类型的数组具有不同的类 B.数组长度是可以动态调整的 C.数组是一个连续的存储结构 D.一个固定长度的数组可类似这样定义:intarray[100]没有这样的定义 E.两个数组用equals方法比较时,会逐个便利其中的元素,对每个元素进行比较使用equals比较 F.可以二维数组,且可以有多维数组,都是在Java中合法的 25.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。 A.staticvoidmethod() B.publicvoidmethod() C.finalvoidmethod() D.abstractvoidmethod() 26.在程序代码中写的注释太多,会使编译后的程序尺寸变大。B A.正确 B.错误 27.abstract和final可以同时作为一个类的修饰符。(B) 28.分析以下代码,说法正确的是(D) System.out.println(val()); publicstaticintval(){ intnum=5; num=num/0; num=10; num=15; returnnum; A.运行时报错 B.程序正常运行,输出值为5 C.程序正常运行,输出值为10 D.程序正常运行,输出值为15 29.以下表达式的类型和值是什么?(注意整数除法)(D) -5+1/4+2*-3+5.0 A.int-3 B.int-4 C.double-5.5 D.double-6.0 30.关于JAVA的垃圾回收机制,下面哪些结论是正确?B D.程序可以显式地立即释放对象占有的内存 31.代码行floatt=5.1;inti=t;,不正确的是B A.代码不能编译 B.代码编译,i被设置为5在t前面没有加强制转换 C.第二行若改为inti=(byte)t则可编译 D.第一行若改为floatt=5.1f则可编译 32.下面有关jdbcstatement的说法错误的是?C A.JDBC提供了Statement、PreparedStatement和CallableStatement三种方式来执行查询语句,其中Statement用于通用查询,PreparedStatement用于执行参数化查询,而CallableStatement则是用于存储过程 B.对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于PreparedStatement对象已预编译过,所以其执行速度要快于Statement对象” C.PreparedStatement中,“”叫做占位符,一个占位符可以有一个或者多个值 D.PreparedStatement可以阻止常见的SQL注入式攻击 33.如下代码的结果是什么B classBase{ Base(){ System.out.print("Base"); publicclassAlphaextendsBase{ newAlpha(); //调用父类无参的构造方法 newBase(); A.Base B.BaseBase C.编译失败 D.代码运行但没有输出 E.运行时抛出异常 34.关于访问权限,说法正确的是?(A) A.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testB B.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB C.访问权限大小范围:public>包权限>protected>private D.访问权限大小范围:public>包权限>private>protected 35.关于protected修饰的成员变量,以下说法正确的是A A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问 B.只能被该类本身和该类的所有的子类访问 C.只能被该类自身所访问 D.只能被同一个包中的类访问 (1)public:可以被所有其他类所访问。 (2)private:只能被自己访问和修改。 (3)protected:自身,子类及同一个包中类可以访问。 36.下列不正确的Java语言标识符是(C) A.Sky B.$Computer C.for关键字 D.NULL 37.以下哪个类包含方法flush()?(B) A.InputStream B.OutputStream C.A和B选项都包含 D.A和B选项都不包含 flush()函数强制将缓冲区中的字符流、字节流等输出,目的是如果输出流输出到缓冲区完成后,缓冲区并没有填满,那么缓冲区将会一直等待被填满。所以在关闭输出流之前要调用flush()。 38.关于访问权限说法正确的是?(B) A.类定义前面可以修饰public,protected和private B.内部类前面可以修饰public,protected和private C.局部内部类前面可以修饰public,protected和private D.以上说法都不正确 39.publicstaticvoidmain(String[]args){ Threadt=newThread(){ 360DW(); t.run(); System.out.print("DW"); staticvoid360DW(){ System.out.print("360"); }B A.DW B.360 C.360DW D.都不输出 40.java8中,下面哪个类用到了解决哈希冲突的开放定址法C A.LinkedHashSet B.HashMap C.ThreadLocal D.TreeMap Threadlocalmap使用开放定址法解决hash冲突,hashmap使用链地址法解决hash冲突。 A.request.getAttribute B.request.getHeader C.request.getParameter D.request.getCookies 链接: 1)Cookie[]getCookies()返回一个数组,包含客户端发送该请求的所有的Cookie对象。 2)ObjectgetAttribute(Stringname)以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回null。 3)StringgetHeader(Stringname)以字符串形式返回指定的请求头的值。Cookie也是头的一种; 4)StringgetParameter(Stringname)以字符串形式返回请求参数的值,或者如果参数不存在则返回null。 42(多选).Java程序的种类有(BCD) A.类(Class) B.Applet C.Application D.Servlet 43(多选).byteb1=1,b2=2,,b6,b8; finalbyteb4=4,b5=6,b7; b3=(b1+b2);/*语句1*/ b6=b4+b5;/*语句2*/ b8=(b1+b4);/*语句3*/ b7=(b2+b5);/*语句4*/ System.out.println(b3+b6); 下列代码片段中,存在编译错误的语句是(BCD) A.语句2 B.语句1 C.语句3 D.语句4 ------------知识点------------ Java表达式转型规则由低到高转换: 1、所有的byte,short,char型的值将被提升为int型; 2、如果有一个操作数是long型,计算结果是long型; 3、如果有一个操作数是float型,计算结果是float型; 4、如果有一个操作数是double型,计算结果是double型; 5、被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。 --------------解析-------------- 语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int; 语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型; 语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4); 语句4错误:b7=(b2+b5);同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。 44.覆盖(重写)与重载的关系是(A)。 A.覆盖(重写)只有出现在父类与子类之间,而重载可以出现在同一个类中 B.覆盖(重写)方法可以有不同的方法名,而重载方法必须是相同的方法名 C.final修饰的方法可以被覆盖(重写),但不能被重载 D.覆盖(重写)与重载是同一回事 题解:首先,重载和重写都是多态的一种体现方式。重载是编译期间的活动,重写是运行期间的活动。其次,重载是在一个类中定义相同的名字的方法,方法的参数列表或者类型要互相不同,但是返回值类型不作为是否重载的标准,可以修改可见性;重写是不同的,要求子类重写基类的方法时要与父类方法具有相同的参数类型和返回值,可见性需要大于等于基类的方法 45.对接口的描述正确的是(A) A.一个类可以实现多个接口 B.接口可以有非静态的成员变量 C.在jdk8之前,接口可以实现方法 D.实现接口的任何类,都需要实现接口的方法 46.覆盖与重载的关系是(A) A.覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B.覆盖方法和重载方法都可以不同名,也可以同名 C.final修饰的方法可以被覆盖,但不能被重载 D.覆盖与重载是同一回事 47.基本的Java语言函数存储在以下哪个java包中?(A) A.java.lang B.java.io C.java.net D.java.util 48.对于Java中异常的描述正确的是(D) A.用throws定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常。 B.如果try块中没有抛出异常,finally块中的语句将不会被执行。 C.抛出异常意味着程序发生运行时错误,需要调试修改 D.Java中的可不检测(unchecked)异常可能来自RuntimeException类或其子类。 题解:A错在调用此方法的时候也可以再次申明以将异常交由更高一级处理。B错finally块中的语句一定会被执行。除非catch块中有System.exit(0)。C错抛出异常不一定是运行时异常,也有可能是编译时异常。D对运行时异常的特点是Java编译器不会检查它。 49.以下对选择语句描述错误的是(A) A.根据某一条件重复执行一部分代码直到满足终止条件为止 B.可以根据条件控制程序流程,改变程序执行的顺序 C.选择语句可以嵌套使用 D.当条件满足时就会执行相应的语句 50.Java程序中的类名称必须与存放该类的文件名相同。B A.对 B.错 51.以下代码执行后输出结果为(A) System.out.println("returnvalueofgetValue():"+ getValue()); publicstaticintgetValue(){ return1; A.returnvalueofgetValue():1 B.returnvalueofgetValue():0 C.returnvalueofgetValue():0returnvalueofgetValue():1 D.returnvalueofgetValue():1returnvalueofgetValue():0 52.多重继承的概念在Java中实现是通过如下哪些?(B) I.扩展两个或多个类 II.扩展一个类并实现一个或多个接口。 III.实现两个或更多接口。 A.只有I&II B.只有II&III C.只有III D.都是 53.This调用语句必须是构造函数中的第一个可执行语句。B 54.下列关于构造函数的描述中,错误的是(D) A.构造函数可以设置默认的参数 B.构造函数在定义类对象时自动执行 C.构造函数可以是内联函数 D.构造函数不可以重载 55.inti=5; ints=(i++)+(++i)+(i--)+(--i); s=()//s的值是什么?E A.28 B.25 C.21 D.26 E.24 F.23 56.子类要调用继承自父类的方法,必须使用super关键字。B 57.下列代码执行结果为(A) publicstaticvoidmain(Stringargs[])throwsInterruptedException{ Threadt=newThread(newRunnable(){ Thread.sleep(2000); }catch(InterruptedExceptione){ thrownewRuntimeException(e); System.out.print("2"); }); t.start(); t.join(); System.out.print("1"); A.21 B.12 C.可能为12,也可能为21 D.以上答案都不对 1、子类构造函数调用父类构造函数用super 2、子类重写父类方法后,若想调用父类中被重写的方法,用super 3、未被重写的方法可以直接调用。 58.下列不属于Java语言性特点的是D A.Java致力于检查程序在编译和运行时的错误 B.Java能运行虚拟机实现跨平台 C.Java自己操纵内存减少了内存出错的可能性 D.Java还实现了真数组,避免了覆盖数据类型的可能 Java致力于检查程序在编译和运行时的错误。Java虚拟机实现了跨平台接口类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。注意,是避免数据覆盖的可能,而不是数据覆盖类型 i=k=0; while(k i++; k+=i; A.O(n) B.O(n^1/2) C.O(n*i) D.O(n+i) 60.以下描述正确的是(B)? A.while循环语句的循环体至少执行1次 B.do-while循环可以写成while循环的格式 C.continue语句可以出现在各种循环体中 D.break语句不可以出现在循环体内 61.下列不属于java语言性特点的是B A.java能检查程序在编译和运行时的错误 B.java能运行虚拟机实现跨平台 C.java自己操纵内存减少了内存出错的可能性 D.java还实现了真数组,避免了覆盖数据的可能 62.关于以下代码的说明,正确的是(C) 1.classStaticStuff 2.{ 3.staticintx=10; 4.static{x+=5;} 5.publicstaticvoidmain(Stringargs[]) 6.{ 7.System.out.println(“x=”+x); 8.} 9.static{x/=3;} 10.} A.4行与9行不能通过编译,因为缺少方法名和返回类型 B.9行不能通过编译,因为只能有一个静态初始化器 C.编译通过,执行结果为:x=5 D.编译通过,执行结果为:x=3 63(多选).java中Hashtable,Vector,TreeSet,LinkedList哪些线程是安全的?AB A.Hashtable B.Vector C.TreeSet D.LinkedList HashMap是线程安全的HashMap Vector是线程安全的ArrayList TreeSet和LinkedList都不是线程安全的 64.(多选)对Collection和Collections描述正确的是BD A.Collection是java.util下的类,它包含有各种有关集合操作的静态方法 B.Collection是java.util下的接口,它是各种集合结构的父接口 C.Collections是java.util下的接口,它是各种集合结构的父接口 D.Collections是java.util下的类,它包含有各种有关集合操作的静态方法 65.(多选)常用的servlet包的名称是?BD A.java.servlet B.javax.servlet 66.(多选)以下哪种方式实现的单例是线程安全的ABCD A.枚举 B.静态内部类 C.双检锁模式 D.饿汉式 67.StringBuffer类对象创建之后可以再修改和变动.A 68.下面关于继承的描述正确的是A A.在Java中只允许单一继承 B.在Java中一个类只能实现一个接口 C.在Java中一个类不能同时继承一个类和实现一个接口 D.Java的单一继承使代码不可靠 69.类Car里面有个方法run(),如果直接用Car.run(),则方法run前面必须用的关键词是?(D) A.class B.final C.public D.static 70.代码 System.out.println(10%3*2); 将打印?B A.1 B.2 C.4 D.6 71.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?B A.实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。 B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值必须要初始化 C.类变量指的是用static修饰的属性 D.final变量指的是用final修饰的变量 72.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是?(C) A.voiduse(){…} B.protectedvoiduse(){…} C.publicvoiduse(){…} D.以上语句都可以用在类SmallCup中 73.java接口的方法修饰符可以为?(忽略内部接口)D A.private B.protected C.final D.abstract 74.已知如下类说明: privatefloatf=1.0f; intm=12; staticintn=1; publicstaticvoidmain(Stringargs[]){ Testt=newTest(); 如下哪些使用是正确的(D) A.t.f=1.0 B.this.n C.Test.m D.Test.n 75.观察以下代码: classCarextendsVehicle publicstaticvoidmain(String[]args) newCar().run(); privatefinalvoidrun() System.out.println("Car"); classVehicle System.out.println("Vehicle"); 下列哪些针对代码运行结果的描述是正确的?A A.Car B.Vehicle C.Compilererroratline3 D.Compilererroratline5 E.Exceptionthrownatruntime 正确:31 错误:44 下: Java测试(下) 1、下面关于继承的描述正确的是A 2、下列说法哪个正确(C) A.不需要定义类,就能创建对象B.对象中必须有数据域和方法C.数据域可以是基本类型变量,也可以是一个对象D.数据域必须是基本类型变量 3、关于Socket通信编程,以下描述错误的是:(D) A.服务器端通过newServerSocket()创建TCP连接对象B.服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象C.客户端通过newSocket()方法创建通信的Socket对象D.客户端通过newServerSocket()创建TCP连接对象题解:Client通过newsocket(ip,端口号)来建立与服务端连接 4、BufferedReader的父类是以下哪个?D 5、给出以下代码 1 2 3 4 5 6 7 8 9 10 publicclassTestObj{ System.out.println(o.equals(“Fred”)); 请给出结果:(B) 6、在第16行插入哪段代码可以获得一个Point对象的坐标(D) 10.classLine{11.publicclassPoint{publicintx,y;}12.publicPointgetPoint(){returnnewPoint();}13.}14.classTriangle{15.publicTriangle(){16.//insertcodehere17.}18.} 7、下列关于容器集合类的说法正确的是?C A.LinkedList是继承自AbstractSequentialList(抽象类,实现了List接口)的,并且实现了List接口。所以A错误。 B.AbstractSet是实现了Set接口的,本身是一个抽象类。继承自AbstractCollection(抽象类,实现了Collection接口)。所以B错误。 C.HashSet是继承自AbstractSet,实现了Set接口。所以C正确。 D.WeakMap不存在于java集合框架的。只有一个叫做WeakHashMap(继承自AbstractMap)。 8、(多选)关于多线程和多进程,下面描述正确的是(AC): 题解:1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通常说的主线程)。2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。3、线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。4、处理机分给线程,即真正在处理机上运行的是线程。5、线程是指进程内的一个执行单元,也是进程内的可调度实体。 9、(多选)在java中重写方法应遵循规则的包括(BC) 10、Java语言中创建一个对象使用的关键字是(C) A.classB.interfaceC.newD.create 11、欲构造ArrayList类的一个实例,此类实现了List接口,下列哪个方法是正确的? 12、以下哪项不是java基础类型(C) 14、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为C 15、Java的Daemon线程,setDaemon(A)设置必须要? setDaemon()方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。 16、有这么一段程序: publicStringname="abc"; Testtest=newTest(); TesttestB=newTest(); System.out.println(test.equals(testB)+","+test.name.equals(testB.name)); 请问以上程序执行的结果是(C) 17、以下多线程对int型变量x的操作,哪几个不需要进行同步(D) 这个题只要看操作受不受多线程的影响,是否加锁 A,因为y的初值不确定,所以要加锁 B和C却需要执行2步操作,所以也需要加锁 只有D的结果不受多线程影响 所以选ABC 18、可以把任何一种数据类型的变量赋给Object类型的变量。A 19、事务隔离级别是由谁实现的?C 20、类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。(A) A.正确B.错误 21、 publicinterfaceIService{ StringNAME="default"; 与上面等价表示是哪一项(D)? 22、ArrayList和Vector主要区别是什么?A 23、面这条语句一共创建了多少个对象:Strings="welcome"+"to"+360;A 24、HashMap和HashTable的描述,错误的是?D 25、下列关于Java并发的说法中正确的是(B) A,CopyOnWriteArrayList适用于写少读多的并发场景 B,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥, 读与读之间可以并发执行。在读多写少的情况下可以提高效率 C,ConcurrentHashMap是同步的HashMap,读写都加锁 D,volatile只保证多线程操作的可见性,不保证原子性 26、(多选)下面选项中,哪些是interface中合法方法定义(ACD) 27、覆盖与重载的关系是(A) A.覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法和重载方法都可以不同名,也可以同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事 28、在Java中,main()方法的返回值的类型是:C A.publicB.staticC.voidD.String 29、下面是findSum(intm.intn)方法的定义,方法调用findSum(1,5)的返回结果是(D) intfindSum(intm,intn){ intsum=0; for(inti=m;i<=n;i++){ sum+=i; returnsum; 30、在java中,一个类(B) A.可以继承多个类B.可以实现多个接口C.在一个程序中只能有一个子类D.只能实现一个接口 A.voidset(inty)B.intset(intx,doubley)C.doubleset(intx,inty)D.voidset(intx,inty) 32、执行下列程序的输出结果为(D) 11 12 13 14 15 16 Strings1="HelloWorld"; Strings2=newString("HelloWorld"); if(s1==s2){ System.out.println("s1==s2"); System.out.println("s1!=s2"); if(s1.equals(s2)){ System.out.println("s1equalss2"); System.out.println("s1notequalss2"); 33、以下那个数据结构是适用于"数据必须以相反的顺序存储然后检索"(A) A.StackB.QueueC.ListD.LiinkList 34、下面哪个Set类是排序的?C TreeSet自然排序,LinkedHashSet按添加顺序排序 35、Strings=newString("xyz");创建了几个StringObject?A 36、以下J2EE中常用的名词解释错误的是?B J2EE中常用的名词解释 2.Webcontainer:实现J2EE体系结构中Web组件协议的容器。这个协议规定了一个Web组件运行时的环境,包括安全,一致性,生命周期管理,事务,配置和其它的服务。一个提供和JSP和J2EE平台APIs界面相同服务的容器。一个Webcontainer由Web服务器或者J2EE服务器提供。 3.EJB容器:Enterprisejavabean容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。一个实现了J2EE体系结构中EJB组件规范的容器。这个规范指定了一个Enterprisebean的运行时环境,包括安全,一致性,生命周期,事务,配置,和其他的服务。 4.JNDI:(JavaNaming&DirectoryInterface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。 5.JMS:(JavaMessageService)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。 6.JTA:(JavaTransactionAPI)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。 7.JAF:(JavaActionFrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。 8.RMI/IIOP:(RemoteMethodInvocation/internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。RMI-IIOP出现以前,只有RMI和CORBA两种选择来进行分布式程序设计。RMI-IIOP综合了RMI和CORBA的优点,克服了他们的缺点,使得程序员能更方便的编写分布式程序设计,实现分布式计算。首先,RMI-IIOP综合了RMI的简单性和CORBA的多语言性(兼容性),其次RMI-IIOP克服了RMI只能用于Java的缺点和CORBA的复杂性(可以不用掌握IDL)。 37、从以下哪一个选项中可以获得Servlet的初始化参数C 38、以下描述错误的一项是(C)? A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的B.原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的C.方法区用于存储JVM加载的类信息、常量、静态变量,即使编译器编译后的代码等数据,是线程隔离的D.Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的题解:Java运行时内存 1.程序计数器,线程私有。可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变整个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能。 程序计数器是唯一一个在Java虚拟机规范中没有规定任何OOM的区域。 2.Java虚拟机栈,线程私有。生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧。每个方法从调用到执行完成的过程,就对应着一个栈帧在虚拟机中入栈到出栈的过程。 3.本地方法栈,线程私有。和虚拟机栈的区别就在于一个是为了执行Java方法服务,一个是为了虚拟机使用到的Native方法服务。 4.堆,线程共享。存放对象实例和数组。 5.方法区,线程共享。存放已经被JVM加载的类信息,常量,静态变量,即时编译器编译后的代码。 39、以下哪项不属于java类加载过程?B 40、Math.floor(-8.5)=(D) 41、列哪个选项是正确计算42度(角度)的余弦值?C 42、下列关于构造函数说法正确的是(C) 43、下面有关重载函数的说法中正确的是C 44、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(C) 46、JavaApplication中的主类需包含main方法,以下哪项是main方法的正确形参?B A.StringargsB.String[]argsC.CharargD.StringBuffer[]args 47、如下Java语句doublex=2.0;inty=4;x/=++y;执行后,x的值是(C) A.0.5B.2.5C.0.4D.2.0 48、以下代码的输出的正确结果是D Strings="祝你考出好成绩!"; System.out.println(s.length()); 49、一个Java源程序文件中定义几个类和接口,则编译该文件后生成几个以.class为后缀的字节码文件。A 51.(多选)在java中重写方法应遵循规则的包括(BC) A.访问修饰符的限制一定要大于被重写方法的访问修饰符 B.可以有不同的访问修饰符 C.参数列表必须完全与被重写的方法相同 D.必须具有不同的参数列表 52.(多选)final、finally和finalize的区别中,下述说法正确的有?(AB) B.finally是异常处理语句结构的一部分,表示总是执行。 C.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件等。 D.引用变量被final修饰之后,不能再指向其他对象,它指向的对象的内容也是不可变的 53.(多选)下列说法哪个正确(ACD) A.abstract类只能用来派生子类,不能用来创建abstract类的对象。 B.final类不但可以用来派生子类,也可以用来创建final类的对象。 C.abstract不能与final同时修饰一个类。 D.abstract类定义中可以没有abstract方法。 A.defaultStrings B.publicfinalstaticnativeintw() C.abstractdoubled D.abstractfinaldoublehyperbolicCosine() 55.若有下列定义,下列哪个表达式返回false?(B) Strings="hello"; Stringt="hello"; charc[]={'h','e','l','l','o'}; A.s.equals(t);B.t.equals(c);C.s==t;D.t.equals(newString("hello"));题解:A、D选项是对字符串内容的比较。JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池。代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。所以返回true。C选项是引用地址的比较,同上也属于常量池的同一个字符串地址,所以相等返回true。 56.关于JAVA堆,下面说法错误的是(D)A.所有类的实例和数组都是在堆上分配内存的B.对象所占的堆内存是由自动内存管理系统回收C.堆内存由存活和死亡的对象,空闲碎片区组成D.数组是分配在栈中的题解:数组是一种对象,所有的对象类都是在堆内存中,基本数据类型在栈内存中57.java中,静态变量static在不同线程的不同实例中地址是否一样?他们储存在什么区域(C)A.地址一样,在堆栈区。B.地址不一样,在堆栈区。C.地址一样,在全局区。D.地址不一样,在全局区。题解:类信息、常量、静态变量等数据储存在方法区,只会在类加载的时候储存一次,地址一样。 因为方法区又称作为Non-Heap(非堆),直接把ABD都排除了,我也不知道全局区是个啥... 58.如果要建立一个java.scut.computer的包,叙述正确的是?(A)A.只需在代码中加入“packagejava.scut.computer;”一个语句,并且必须放在代码的第一行B.只需在代码中加入“packagejava.scut;”一个语句C.必须在代码中加入“packagejava.scut;”和“packagejava.scut.computer;”两个语句D.在代码中,不一定是第一句,只要是类定义前,加入package语句即可59.transient变量和下面哪一项有关(A)? A.SerializableB.CloneableC.RunnableD.ThrowableE.Comparable60.下列哪个说法是正确的(D) A.ConcurrentHashMap使用synchronized关键字保证线程安全B.HashMap实现了Collction接口C.Array.asList方法返回java.util.ArrayList对象D.SimpleDateFormat是线程不安全的61.当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?A A.CountDownLatchB.CyclicBarrierC.SemaphoreD.Future题解:CountDownLatch是等待一组线程执行完,才执行后面的代码。此时这组线程已经执行完。CyclicBarrier是等待一组线程至某个状态后再同时全部继续执行线程。此时这组线程还未执行完。62.如果希望监听TCP端口9000,服务器端应该怎样创建socketB A.newSocket("localhost",9000);B.newServerSocket(9000);C.newSocket(9000);D.newServerSocket("localhost",9000);题解:客户端:ServerSocket(intport) Createsaserversocket,boundtothespecifiedport. 服务端: Socket(InetAddressaddress,intport) CreatesastreamsocketandconnectsittothespecifiedportnumberatthespecifiedIPaddress. 63.(多选)下列有关java构造函数叙述正确的是(CD) A.构造器的返回值为void类型B.如果一个源文件中有多个类,那么构造器必须与公共类同名C.构造器可以有0个,1个或一个以上的参数D.每个类可以有一个以上的构造器64.下列js可以让一个input的背景颜色变成红色的是?A A.inputElement.style.backgroundColor='red';B.inputElement.backgroundColor='red';C.inputElement.style.backgroundColor='#0000';D.inputElement.backgroundColor='#0000';65.以下js表达式返回false的是(C)A.1==trueB.“”==falseC.false==nullD.null==undefined66.下面哪条语句可以获取元素e相邻的下一个元素(D) A.e.next()B.e.nextElement()C.e.nextElementSibling()D.e.nextSibling()67.老王去年种了一块菜地,今年他又新开发出了一块比去年大的正方形菜地,这块新地的卷心菜的产量比去年多211只。请问他今年总共可从这两块菜地上收获多少只卷心菜(假设面积相等的菜地去年和今年的产量一样)。A A.11235B.9874C.7934D.8216E.1318668.一个包里有5个黑球,10个红球和17个白球。每次可以从中取两个球出来,放置在外面。那么至少取_____A___次以后,一定出现过取出一对颜色一样的球。 A.16B.9C.4D.169.2个空瓶换1瓶水,1元钱买1瓶水,20元钱一共能够喝多少瓶水?(可以朝老板借水或者瓶子)D A.19 B.20 C.30 D.40 70.下列关于修饰符混用的说法,错误的是(D) A.abstract不能与final并列修饰同一个类B.abstract类中不建议有private的成员C.abstract方法必须在abstract类或接口中D.static方法中能直接处理非static的属性71.方法通常存储在进程中的哪一区(D) A.堆区B.栈区C.全局区D.方法区72.Web程序中,当前用户上下文信息应该保存在下面哪个对象中(C)A.pageB.requestC.sessionD.Applicatio73.在类设计中,类的成员变量要求仅仅能够被同一package下的类访问,请问应该使用下列哪个修饰词(D)A.protectedB.publicC.privateD.不需要任何修饰词74.JVM内存不包含如下哪个部分(D) A.StacksB.PC寄存器C.HeapD.HeapFrame75.关于访问权限,说法正确的是?(A)A.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testBB.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB