2019年10月29日_java_4

考点1 java main方法

在Java中,main()方法的返回值的类型是:

  • A public
  • B static
  • C void
  • D String
展开/折叠 正确答案: C

解析

main方法的格式讲解:

1
public static void main(String[] args) {...}
  • public:公共的,访问权限是最大的。由于main方法是被jvm调用,所以权限要够大。
  • static:静态的,不需要创建对象,通过类名就可以。方便jvm的调用。
  • void:方法的返回值是返回给调用者,而main方法是被jvm调用。你返回内容给jvm没有意义。
  • main:是一个常见的方法入口。我见过的语言都是以main作为入口。
  • String[] args:这是一个字符串数组。这个东西早期是为了接收键盘录入的数据的。

考点2 多线程 同一个对象作为锁的情况

执行如下程序,输出结果是( )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Test
{
private int data;
int result = 0;
public void m()
{
result += 2;
data += 2;
System.out.print(result + " " + data);
}
}
class ThreadExample extends Thread
{
private Test mv;
public ThreadExample(Test mv)
{
this.mv = mv;
}
public void run()
{
synchronized(mv)
{
mv.m();
}
}
}
class ThreadTest
{
public static void main(String args[])
{
Test mv = new Test();
Thread t1 = new ThreadExample(mv);
Thread t2 = new ThreadExample(mv);
Thread t3 = new ThreadExample(mv);
t1.start();
t2.start();
t3.start();
}
}
  • A 0 22 44 6
  • B 2 42 42 4
  • C 2 24 46 6
  • D 4 44 46 6
展开/折叠 正确答案: C

解析

只要注意这里锁住的是对象就可以了
这里只创建了一个对象Test mv = new Test();
如果换成synchronized(Test.class)锁住的就是这个类,执行的结果就不一样了
这里是同一个对象锁 所以一个线程执行完另一个线程才能访问
三个线程传输的是同一个mv,而且加了同步锁synchronized(mv),所以执行的时候按照顺序执行即可

考点3 访问修饰符

下列哪个对访问修饰符作用范围由大到小排列是正确的?

  • A private>default>protected>public
  • B public>default>protected>private
  • C private>protected>default>public
  • D public>protected>default>private
展开/折叠 正确答案: D

解析

考点4 访问修饰符

下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( )

  • A public
  • B private
  • C static
  • D final
展开/折叠 正确答案: C

解析

考点5 包装类之间的比较

1
2
3
Integer i = 42; 
Long l = 42l;
Double d = 42.0;

下面为true的是

  • A (i == l)
  • B (i == d)
  • C (l == d)
  • D i.equals(d)
  • E d.equals(l)
  • F i.equals(l)
  • G l.equals(42L)
展开/折叠 正确答案: G

解析

考点6 for循环语句

设m和都是int类型,那么以下for循环语句的执行情况是( )

1
2
for (m = 0, n = -1; n = 0; m++, n++)
n++;
  • A 循环体一次也不执行 循环体执行一次 是无限循环 有限次循环 循环结束判断条件不合法 运行出错
  • B 循环体执行一次 是无限循环
  • C 有限次循环
  • D 循环结束判断条件不合法
展开/折叠 正确答案: D

解析

循环条件:n = 0是int类型,不是boolean型的。
所以语法错误

1
2
3
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}

考点7 String 常量池

String s = new String("xyz");创建了几个StringObject?

  • A 两个或一个都有可能
  • B 两个
  • C 一个
  • D 三个
展开/折叠 正确答案: A

解析

  • 如果在常量池中已经存在“xyz”,那么只创建一个new String(“xyz”)的对象。
  • 如果常量池中没有“xyz”,则会创建两个对象,一个是常量池中的对象“xyz”,一个是new String(“xyz”)的对象。

考点8 Object类方法

java中下面哪些是Object类的方法()

  • A notify()
  • B notifyAll()
  • C sleep()
  • D wait()
展开/折叠 正确答案: ABD

解析

考点9 Java继承

java中关于继承的描述正确的是()

  • A 一个子类只能继承一个父类
  • B 子类可以继承父类的构造方法
  • C 继承具有传递性
  • D 父类一般具有通用性,子类更具体
展开/折叠 正确答案: ACD

解析

子类不可以继承父类的构造方法,只可以调用父类的构造方法。