1.以下哪一项正则能正确的匹配网址: http://www.bilibili.com/video/av21061574 ()
A./^(https?😕/)?([a-zA-Z\d]+).bilibili.com/?video/av(\D{1,8})/?KaTeX parse error: Undefined control sequence: \/ at position 13: / B./^(http:\̲/̲\/)?(\w+)\.bili…/
C./^(https?😕/)?(\w+).bilibili.com/?\w*KaTeX parse error: Undefined control sequence: \/ at position 13: / D./^(http:\̲/̲\/)?([a-zA-Z\d]…/
2.下列程序test 类中的变量c 的最后结果为
public class Test {
public static void main(String args[]) {
int a = 10;
int b;
int c;
if (a > 50) {
b = 9;
}
c = b + a;
}
}
3.关于下面的一段代码,输出的值为:
public static void main(String[] args) {
String a = new String("myString");
String b = "myString";
String c = "my" + "String";
String d = c;
System.out.print(a == b);
System.out.print(a == c);
System.out.print(b == c);
System.out.print(b == d);
}
4.以下哪些表达式返回为真()
String a="My field1";
String b="My field1";
String c=new String("My field1");
String d=new String("My field1");
A.ab
B.ac
C.c=d
D.a.equals(b)
E.a.equals©
5.有关静态初始化块说法正确的是?
A.无法直接调用静态初始化块
B.在创建第一个实例前或引用任何静态成员之前,将自动调用静态初始化块来初始化
C.静态初始化块既没有访问修饰符,也没有参数
D.在程序中,用户可以控制何时执行静态初始化块
6.在程序代码中写的注释太多,会使编译后的程序尺寸变大。
A.正确
B.错误
7.下面不是类及类成员的访问控制符的是( )。(不考虑内部类的情况)
A.public
B.private
C.static
D.protected
8.BufferedReader的父类是以下哪个?
A.FilterReader
B.InputStreamReader
C.PipedReader
D.Reader
9.String s = new String(“xyz”);创建了几个StringObject?
A.两个或一个都有可能
B.两个
C.一个
D.三个
10.某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( )
A.(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);
B.(500,+∞)
C.(500,+∞)、任意大于0小于500的非100倍数的整数;
D.(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);
(1)B
(2)编译出错
本题需要注意一点:a、b、c三个变量是定义在方法中的局部变量,使用前必须初始化,否则就会出现错误。
当我们新建一个对象时,Java会在Heap中申请一块内存区域用以存放类的数据。而成员变量就是类的数据,也是放在这块内存区域中的。初始化时只需要JVM在申请内存的时候顺便把整块区域都置为零即可完成。所以JVM会自动帮我们完成全局变量的初始化。
对于方法的局部变量,是在线程的Stack中,虽然Stack可以帮我们完成初始化,但这样是存在问题的,比如有些局部变量,在方法的一开始是没有的,有些在循环中的局部变量是要反复的声明多次的。有些局部变量作用域结束后,另一个局部变量又会占用这个局部变量的位置。
局部变量不自动初始化是一种约束,它会尽最大程度减少使用者犯错的可能。假使局部变量可以使用默认值,可能总会无意间忘记赋值,进而导致不可预期的情况出现。
(3)false false true true
字符串以非new形式创建时,会先在常量池寻找是否有相同字符;若有,则引用,若没有,则创建后引用。
(4)正确答案: A D E
a,b在常量池中,c,d是new出来的,在栈空间中且c,d的Hello那句在堆空间中,==比较的时候,引用数据类型比地址基本数据类型比值,所以a==b,c,d是new出来的地址不一样是false,equals重写了==,比较的是对象值,所以abcd任何两个用equals都true
(5)正确答案: A B C
静态内容只在类加载时执行一次,之后不再执行,因此不能直接调用。 子类初始化时,先默认调用父类的无参构造方法,可以在子类构造方法中利用super指定调用父类的哪个构造方法。
(6)B
在预处理阶段:展开头文件、宏替换、条件编译、去掉注释。到编译阶段时是没有注释的。
(7)C
类访问控制符只有三种:public ,private, protected
static和访问控制无关
(8)
(9) A
用new关键字创建字符串对象时,JVM会先检查字符串常量池中时候有存在的对应字符串,如果已经存在,则不会在字符串常量池中创建,如果没有存在,那么就会在字符串常量池中创建一个字符串对象,然后还会去堆内存中创建一份字符串对象,把常量池中的对象内容拷贝到内存中的字符串对象,然后返回堆内存中的字符串对象内存地址。综上所述,选项A正确。
(10)正确答案: D