1、以下代码将打印出
public static void main (String[] args) {
String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
System.out.println(classFile);
}
正确答案: C
com. jd
com/jd/MyClass.class
///MyClass.class
com.jd.MyClass
选C
由于replaceAll方法的第一个参数是一个正则表达式,而".“在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成”/“。如果想替换的只是”.“,那么久要写成”\.".
2、以下哪几个是java中的集合类型?
正确答案: A B D
Vector
Set
String
List
String为引用数据类型
3、下列哪些操作会使线程释放锁资源?
正确答案: B C
sleep()
wait()
join()
yield()
1.sleep会使当前线程睡眠指定时间,不释放锁
2.yield会使当前线程重回到可执行状态,等待cpu的调度,不释放锁
3.wait会使当前线程回到线程池中等待,释放锁,当被其他线程使用notify,notifyAll唤醒时进入可执行状态
4.当前线程调用 某线程.join()时会使当前线程等待某线程执行完毕再结束,底层调用了wait,释放锁
4、下列关于包(package)的描述,正确的是()
正确答案: D
包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。
import语句将所对应的Java源文件拷贝到此处执行。
包(package)是Eclipse组织Java项目特有的一种方式。
定义在同一个包(package)内的类可以不经过import而直接相互使用。
1、为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错
2、import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错
3、Java提供的包机制与IDE没有关系。C错 4、定义在同一个包(package)内的类可以不经过import而直接相互使用。
5、下面哪一项不是加载驱动程序的方法?
正确答案: A
通过DriverManager.getConnection方法加载
调用方法 Class.forName
通过添加系统的jdbc.drivers属性
通过registerDriver方法注册
答案:A DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的
6、
java中 String str = "hello world"下列语句错误的是?
正确答案: A B C
str+=’ a’
int strlen = str.length
str=100
str=str+100
A. ‘a’是字符,’ a’这个是空格和a,必须要用" a"才可以;
B.String有length()方法
C.int 无法直接转成String类型
D.尾部添加字符串”100“
7、以下程序执行的结果是:
class X{
Y y=new Y();
public X(){
System.out.print("X");
}
}
class Y{
public Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y=new Y();
public Z(){
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
正确答案: C 你的答案: C (正确)
ZYXX
ZYXY
YXYZ
XYZX
答案C 初始化过程
- 初始化父类中的静态成员变量和静态代码块 ;
- 初始化子类中的静态成员变量和静态代码块 ;
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y (2)再执行父类的构造方法;输出X (3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
(4)再执行子类的构造方法;输出Z 所以输出YXYZ**
8、下面有关JSP内置对象的描述,说法错误的是?
正确答案: C
session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
application对象:多个application对象实现了用户间数据的共享,可存放全局变量
response对象:response对象包含了响应客户请求的有关信息
application服务器就创建了一个,C选项后面错误了,不是多个
9、Which statement declares a variable a which is suitable for referring to an array of 50 string objects?
下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?
正确答案: B C F
char a[][];
String a[];
String[] a;
Object a[50];
String a[50];
Object a[];
BCF 在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。
如下,1,2,3可以通过编译,4,5不行。而String是Object的子类,所以上述BCF均可定义一个存放50个String类型对象的数组。
- String a[]=new String[50];
- String b[];
- char c[];
- String d[50];
- char e[50];
10、Which lines of the following will produce an error?
byte a1 = 2, a2 = 4, a3;
short s = 16;
a2 = s;
a3 = a1 * a2;
正确答案: A
Line 3 and Line 4
Line 1 only
Line 3 only
Line 4 only
答案:A short类型转为byte类型出错
a1*a2结果为int类型,转为byte类型出错
11、有如下一段代码,请选择其运行结果()
public class StringDemo{
private static final String MESSAGE="taobao";
public static void main(String [] args) {
String a ="tao"+"bao";
String b="tao";
String c="bao";
System.out.println(a==MESSAGE);
System.out.println((b+c)==MESSAGE);
}
}
正确答案: C
true true
false false
true false
false true
答案:C 要注意两个问题: 1,字符串在java中存储在字符串常量区中
2,判断的是对象引用是否是同一个引用,判断字符串相等要用equals方法 首先判断aMESSAGE
同一份字符串常量在内存中只有一份,因此是同一地址,返回true 再次比较(b+c)==MESSAGE 这相当于 new
String(b+c)==MESSAGE 这里new了一个String对象,所以返回false
12、下面关于面向对象的一些理解哪些是错误的( )
正确答案: C
面向对象的最重要的特性是支持继承、封装和多态
系统设计应该遵循开闭原则,系统应该稳定不可修改,但应支持通过继承、组合等方式进行扩展
函数式的语言必然是面向对象的语言
面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
Java和C++都是静态类型的面向对象编程语言
13、在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )
正确答案: B
正确
错误
方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放
14、以下语句返回值为 true 的是()
正确答案: A B
选A,B. Integer a1 = 17; 语句执行的是valueOf()方法 public static Integer
valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.***[i + (-IntegerCache.low)]; return new
Integer(i); } 对于-128到127之间的数, Integer直接从数组中取, 故a1, a2指向的是同一个对象, A正确.
其余都是new出来的对象, 显然地址都不相同. int类型与Integer类型比较时, 先将Integer拆箱, 再比较值, 故B正确.
15、下面的Java赋值语句哪些是有错误的 ()
正确答案: B F
int i =1000;
float f = 45.0;
char s = ‘\u0639’;
Object o = ‘f’;
String s = “hello,world\0”;
Double d = 100;
b:小数如果不加 f 后缀,默认是double类型。double转成float向下转换,意味着精度丢失,所以要进行强制类型转换。
c:是使用unicode表示的字符。 d:‘f’ 字符会自动装箱成包装类,就可以向上转型成Object了。
f:整数默认是int类型,int类型不能转型为Double,最多通过自动装箱变为Integer但是Integer与Double没有继承关系,也没法进行转型。