选择题1
1.设有定义 int a=3 ,b=4,c=5; 则以下的表达式中 , 值为 false 的是 ()
正确答案: D
A.a < b && b < c
B.a <= b
C.a < ( b + c )
D.! ( a < b )
解析:
a < b && b < c
true && true
true a <= b
true a <( b + c )
true ! ( a < b )
!true false
选择题2
2.代码String str=”123456a”;int i=Integer.parseInt(str);会报异常的是()
正确答案: B 你的答案: A (错误)
A.java.lang.NullPoninterException
B.java.lang.NumberFormatException
C.java.lang.RuntimeException
D.java.lang.ArrayindexOutOfBoundsException
解析:非纯数字的字符串转化为Integer对象会报数字格式异常。
选择题3
3.下面的输出结果是:
public class Test { public static void main(String[] args) {
Father a = new Father();
Father b = new Child();
}
} class Father { public Father() {
System.out.println("我是父类");
}
} class Child extends Father { public Child() {
System.out.println("我是子类");
}
}
正确答案: A 你的答案: B (错误)
A.我是父类
我是父类
我是子类
B.我是父类
我是子类
我是子类
C.我是父类
我是父类
我是父类
D.我是父类
我是父类
解析:
这道题,首先没有初始化对象根本没有输出。
其次,即使初始化了对象,也该是输出
我是父类
我是父类
我是子类
选择题4
4.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了属性和方法的被访问范围,private修饰符则缩小了这种范围。
正确答案: A 你的答案: A (正确)
A.正确
B.错误
选择题5
5.下面程序的运行结果是
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
正确答案: B 你的答案: A (错误)
A.true
B.false
C.exception
D.无输出
解释:String str1 = “hello”;这里的str1指的是方法区的字符串常量池中的“hello”,编译时期就知道的;
String str2 = “he” + new
String(“llo”);这里的str2必须在运行时才知道str2是什么,所以它是指向的是堆里定义的字符串“hello”,所以这两个引用是不一样的。
如果用str1.equal(str2),那么返回的是True;因为两个字符串的内容一样。
==值和地址相等返回true
equal 值相等返回true
选择题6
6.中的数据域使用private修饰为私有变量,所以任何方法均不能访问它。
正确答案: B 你的答案: B (正确)
A.正确
B.错误
选择题7
7.假定AB为一个类,则执行 “AB ab = new AB(a,5);”语句时将自动调用该类的( )。
正确答案: A 你的答案: A (正确)
A.带参构造函数
B.无参构造函数
C.拷贝构造函数
D.重载赋值运算
选择题8
8.以下有关构造方法的说法,正确的是:()
正确答案: A 你的答案: B (错误)
.A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其他方法调用
D.构造方法可以和类同名,也可以和类名不同
解释:
A一个类有多个构造方法便是重载的表现。重载参数列表不同。所以A是正确的。
B构造方法是在对象创建时就被调用,用于初始化。
C构造方法是给与之对应的对象进行初始化,初始化的动作只执行一次。
D构造方法必须与所在类的名称同名。
选择题9
9.关于finally,下面哪个描述正确? ()
正确答案: B 你的答案: C (错误)
A.在catch块之前但在try块之后执行finally块
B.finally块会被执行无论是否抛出异常
C.只有在执行catch块之后才执行finally块
D.都不是
选择题10
10.以下程序的运行结果是()
public class Increment
{
public static void main(String args[])
{
int a;
a = 6;
System.out.print(a);
System.out.print(a++);
System.out.print(a);
}
}
正确答案: B 你的答案: B (正确)
A.666
B.667
C.677
D.676
解释:a++可以理解为当访问a之后再对a进行加一操作
选择题11
11.基本的Java语言函数存储在以下哪个java包中?()
正确答案: A 你的答案: D (错误)
A.java.lang
B.java.io
C.java.net
D.java.util
解释: java.lang包包含 包装类 String 类 Math 类 —— 包含函数 Class 类 Object 类
选择题12
12.如果一个list初始化为{5,3,1},执行以下代码后,其结果为()?
nums.add(6);
nums.add(0,4);
nums.remove(1);
正确答案: B 你的答案: B (正确)
A.[5, 3, 1, 6]
B.[4, 3, 1, 6]
C.[4, 3, 6]
D.[5, 3, 6]
解释:
list{5,3,1} nums.add(6); //往后边加一个6,{5,3,1,6}
nums.add(0,4);//往下标为0的数加一个4,{4,5,3,1,6}
nums.remove(1); // 移除下标为1的元素,{4,3,1,6}
选择题13
13.关于下面程序,哪些描述是正确的: ( )
public class While {
public void loop() {
int x= 10;
while ( x ) {
System.out.print("x minus one is " + (x - 1)); x -= 1;
} } }
正确答案: B 你的答案: B (正确)
A.行1有语法错误
B.行4有语法错误
C.行5有语法错误
D.行6有语法错误
E.行2有语法错误,loop是关键字
F.程序能够正常编译和运行
解释: while()括号里参数必须是布尔类型,要么true要么false,不能为具体的int值
选择题14
14.以下不是修饰符final的作用的是( )。
正确答案: C 你的答案: D (错误)
A.修饰常量
B.修饰不可被继承的类
C.修饰不可变类
D.修饰不可覆盖的方法
选择题15
15.以下代码的输出的正确结果是
以下代码的输出的正确结果是
public class Test {
public static void main(String args[]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}
正确答案: D 你的答案: D (正确)
A.24
B.16
C.15
D.8
解释:汉语字符串长度也是一个汉字长度为1,标点符号也是长度为1
选择题16
16.以下 _____ 不是 Object 类的方法
正确答案: D 你的答案: A (错误)
A.clone()
B.finalize()
C.toString()
D.hasNext()
选择题17
17.以下程序的输出结果是
public class Print{
static boolean out(char c){
System.out.println(c);
return true;
}
public static void main(String[] argv){
int i = 0;
for(out('A');out('B') && (i<2);out('C')){
i++;
out('D');
}
}
}
正确答案: A 你的答案: D (错误)
A.ABDCBDCB
B.BCDABCD
C.编译错误
D.运行错误
首先执行out(‘A’) 输出A;
然后执行out(‘B’)&&(i<2)此时输出B,i=0,判断条件为真,执行for循环的循环体;
执行i++,out(‘D’),输出D i=1; 执行out(‘C’),输出C
然后执行out(‘B’)&&(i<2) 此时输出B,i=1
判断条件为真 ,执行for循环的循环体;
执行i++,out(‘D’),输出D i=2; 执行out(‘C’),输出C
然后执行out(‘B’)&&(i<2) 此时输出B,i=2,不满足i<2 判断条件为假 ,跳出循环;
所以结果为ABDCBDCB
选择题18
18.下列说法正确的是( )
正确答案: C 你的答案: C (正确)
A.volatile,synchronized 都可以修改变量,方法以及代码块
B.volatile,synchronized 在多线程中都会存在阻塞问题
C.volatile能保证数据的可见性,但不能完全保证数据的原子性,synchronized即保证 了数据的可见性也保证了原子性
D.volatile解决的是变量在多个线程之间的可见性、原子性,而sychroized解决的是多个线程之间访问资源的同步性
解析:
synchronized: 具有原子性,有序性和可见性;(三个都有)
volatile:具有有序性和可见性(缺一个原子性)
synchronized关键字和volatile关键字的不同点:
粒度不同,volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。
多线程访问volatile关键字不会发生阻塞,而synchronized关键字可能会发生阻塞。
volatile只能保证可见性和有序性不能保证原子性,而synchronized则三者都能保证
volatile关键字主要用于解决变量在多个线程之间的可见性,而synchronized解决的则是多个线程之间访问资源的同步性
Volatile只能修饰变量,而synchronized可以修饰方法及代码块。
选择题19
19.Java数据库连接库JDBC用到哪种设计模式?
正确答案: B 你的答案: A (错误)
A.生成器
B.桥接模式
C.抽象工厂
D.单例模式
选择题20
20.在jdk1.5之后,下列 java 程序输出结果为______。
int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));
正确答案: B 你的答案: A (错误)
A.true,false
B.true,true
C.false,true
D.false,false
E.对于不同的环境结果不同
F.程序无法执行
解释:
i==j ,这个是基本类型与 Integer 的比较, j 会自动拆箱成 int 类型,然后比较的是值。因此返回真。
j.equals(i) ,调用 equals 方法后,这个 i 会自动装箱成 Integer 类型,然后再比较值,所以也返回真。
选择题21
21.下列哪个说法是正确的()
正确答案: D 你的答案: A (错误)
A.ConcurrentHashMap使用synchronized关键字保证线程安全
B.HashMap实现了Collction接口
C.Array.asList方法返回java.util.ArrayList对象
D.SimpleDateFormat是线程不安全的
选择题22
22.SP分页代码中,哪个步骤次序是正确的?
正确答案: A 你的答案: D (错误)
A.先取总记录数,得到总页数,最后显示本页的数据。
B.先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。
C.先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。
D.先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。
选择题23
23.下面代码的输出是什么?
public class Base
{
private String baseName = "base";
public Base()
{
callName();
}
public void callName()
{
System. out. println(baseName);
}
static class Sub extends Base
{
private String baseName = "sub";
public void callName()
{
System. out. println (baseName) ;
}
}
public static void main(String[] args)
{
Base b = new Sub();
}
}
正确答案: A 你的答案: B (错误)
A.null
B.sub
C.base
解释:
1.首先,需要明白类的加载顺序。
(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)
(2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
(3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
(4)父类构造函数
(5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
(6) 子类构造函数
其中:类中静态块按照声明顺序执行,并且(1)和(2)不需要调用new类实例的时候就执行了(意思就是在类加载到方法区的时候执行的)
2.其次,需要理解子类覆盖父类方法的问题,也就是方法重写实现多态问题。Base b = new Sub();它为多态的一种表现形式,声明是Base,实现是Sub类, 理解为 b 编译时表现为Base类特性,运行时表现为Sub类特性。
当子类覆盖了父类的方法后,意思是父类的方法已经被重写,
题中父类初始化调用的方法为子类实现的方法,子类实现的方法中调用的baseName为子类中的私有属性。
由1.可知,此时只执行到步骤4.,子类非静态代码块和初始化步骤还没有到,子类中的baseName还没有被初始化。所以此时
baseName为空。 所以为null。
选择题24
24.如果希望监听TCP端口9000,服务器端应该怎样创建socket?
正确答案: B 你的答案: D (错误)
A.new Socket(“localhost”,9000);
B.new ServerSocket(9000);
C.new Socket(9000);
D.new ServerSocket(“localhost”,9000);
选择题25
25.下面属于java引用类型的有?
正确答案: A D 你的答案: A (错误)
A.String
B.byte
C.char
D.Array
选择题26
26.以下哪些方法是Object类中的方法
正确答案: A B C D 你的答案: D (错误)
A.clone()
B.toString()
C.wait()
D.finalize()
选择题27
27.下列选项中是正确的方法声明的是?()
正确答案: A B C D 你的答案: C (错误)
A.protected abstract void f1();
B.public final void f1() {}
C.static final void fq(){}
D.private void f1() {}
选择题28
28.下列可作为java语言标识符的是()
正确答案: A B C 你的答案: C (错误)
A.a1
B.$1
C._1
D.11
解释:java中标识符的组成:由52个字母A-Z ,a-z ,数字0-9 ,下划线_ , 美元符$ 组成
选择题29
29.有关线程的哪些叙述是对的()
正确答案: B C D 你的答案: B D (错误)
A.一旦一个线程被创建,它就立即开始运行。
B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
D.当一个线程因为抢先机制而停止运行,它可能被放在可运行队列的前面。
D.一个线程可能因为不同的原因停止并进入就绪状态。
选择题30
30.hibernate 开发中,关于 POJO 类对象的状态说法正确的是()。
正确答案: A B C 你的答案: B (错误)
A.自由状态(Transient):实体在内存中自由存在,与数据库中的记录无关
B.持久状态(Persistent):实体处于由Hibernate框架所管理的状态,对应了数据库中的一条记录,同时与某个session实例发生了关联
C.游离状态(Detached):在session 关闭之后,可以使对象从持久状态转换到游离状态。
D.不能将对象从游离状态转换成持久态