2019年11月5日_Java_2

考点1 数据库 关系模型和对象模型的匹配关系

一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?

  • A 表对应类
  • B 记录对应对象
  • C 表的字段对应类的属性
  • D 表之间的参考关系对应类之间的依赖关系
展开/折叠 正确答案: D

解析

一般关系数据模型和对象数据模型之间有以下对应关系:

  • 表对应类,
  • 记录对应对象,
  • 表的字段对应类的属性

目前ORMapping只是规定了数据结构和数据集的映射关系,还没到规定赖关系的阶段

考点2

已知有下列Test类的说明,在该类的main方法内,则下列哪个语句是正确的?()

1
2
3
4
5
6
7
8
9
10
public class Test
{
private float f = 1.0f;
int m = 12;
static int n = 1;
public static void main (String args[])
{
Test t = new Test();
}
}
  • A t.f;
  • B this.n;
  • C Test.m
  • D Test.f
展开/折叠 正确答案: A

解析

A的答案中变量虽然为private,但因为main函数在该类中,所以即使private也仍可使用

考点3

下面赋值语句中正确的是()

  • A double d=5.3e12;
  • B float f=11.1;
  • C int i=0.0;
  • D Double oD=3;

正确答案: A

解析

java中整型默认的是int,浮点默认的是double.
A: double类型遵循IEEE754标准(具体自己查一下),约为10^-30810^308和-10^-308-10^308,所以本题在范围里
B: double类型的11.1 转成 float,是需要强制转换的
C: double类型的0.0 转成 int,也是需要强制转换的
D: int 转为 封装类型Double,是无法编译的,int虽可以转换成double,但在类型转换时无法进行自动装箱,故错误

考点4

下列不属于Java语言性特点的是

  • A Java致力于检查程序在编译和运行时的错误
  • B Java能运行虚拟机实现跨平台
  • C Java自己操纵内存减少了内存出错的可能性
  • D Java还实现了真数组,避免了覆盖数据类型的可能

正确答案: D

解析

什么是真数组

程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。
实现了真数组为Java语言健壮性的特点之一。

真数组:
1、在内存中连续分配。
2、数组所存在的内存空间为数组专用,避免了数据被覆盖的问题。

是避免数据覆盖,而不是数据类型覆盖

考点5

在java语言中,如果你编写一个多线程序,可以使用的方法是()

  • A 扩展类Thread
  • B 实现Runnable接口
  • C 扩展类 Runnable
  • D 实现接口Thread

正确答案: AB

解析

Java多线程实现方式主要有四种:
1、继承Thread类
2、实现Runnable接口
3、实现Callable接口通过FutureTask包装器来创建Thread线程
4、使用ExecutorService、Callable、Future实现有返回结果的多线程

前两种方式线程执行完后都没有返回值,后两种是带返回值的。

考点6

下面哪几个语句正确的声明一个整型的二维数组()

  • A int a[][]=new int[][]
  • B int b[10][10]=new int[][]
  • C int c[][]=new int[10][10]
  • D int []d[]=new int[10][10]

正确答案: CD

解析

  1. 定义一维数组时,必须显式指明数组的长度;
  2. 定义多维数组时,其一维数组的长度必须首先指明,其他维数组长度可以稍后指定;
  3. 采用给定值初始化数组时,不必指明长度;
  4. “[]” 是数组运算符的意思,在声明一个数组时,数组运算符可以放在数据类型与变量之间,也可以放在变量之后。

一维数组中,[]在变量名arr前还是后,这个写法没有固定的要求,
二维数组中,[][]a这三个元素其实可以作全排列,不论怎么排都不影响最后的编译结果,写法没有固定的要求。
在实际编程中,但最好统一。

考点7

有以下程序段, 则下面正确的选项是()

1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyThead extends Thread{
public static void main(String[] args) {
MyThead t=new MyThead();
MyThead s=new MyThead();
t.start();
System.out.println("one.");
s.start();
System.out.println("two.");
}
public void run() {
System.out.println("Thread");
}
}
  • A 编译失败
  • B 程序运行可能结果为: one. Thread two. Thread
  • C 程序运行可能结果是: one. two. Thread Thread
  • D 程序运行结果不稳定

正确答案: BCD

解析

同一个线程中的输出顺序是确定的,main线程中的输出语句确定,也就是,只要one在two前面输出,thread在其后面那个位置输出无所谓。

考点8

java8中,忽略内部接口的情况,不能用来修饰interface里的方法的有( )

  • A private
  • B public
  • C protected
  • D static

正确答案: AC

解析

java8 接口新特性:可以定义:

  • 静态方法(有方法体) 和
  • default方法(有方法体

考点9

有关线程的叙述正确的是()

  • A 可以获得对任何对象的互斥锁定
  • B 通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
  • C 线程通过使用synchronized关键字可获得对象的互斥锁定
  • D 线程调度算法是平台独立的

正确答案: CD

解析

A,“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象吗?
B,前半句话讲的是创建线程的方式,后半句讲的是锁定,驴头不对马嘴。
C,正确。
D,线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。
以上,选CD