1.以下类定义中的错误是什么?()
abstract class xy
{
abstract sum (int x, int y) { }
}
A.没有错误
B.类标题未正确定义
C.方法没有正确定义
D.没有定义构造函数
2.关于抽象类叙述正确的是? ( )
A.抽象类不能实现接口
B.抽象类必须有“abstract class”修饰
C.抽象类必须包含抽象方法
D.抽象类也有类的特性,可以被实例化
3.我们在程序中经常使用“System.out.println()”来输出信息,语句中的System是包名,out是类名,println是方法名。
A.对
B.错
4.如果要导入一个java.scut.computer的包,叙述正确的是? ( )
A.只需在代码中加入“import java.scut.computer;”一个语句,并且必须放在代码非注释的第一行
B.只需在代码中加入“import java.scut;”一个语句
C.必须在代码中加入“import java.scut;”和“package java.scut.computer;”两个语句
D.在代码中,不一定是第一句,只要是类定义前,加入package语句即可
5.以下描述错误的一项是( )?
A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行 到了第几行,是线程隔离的
B.原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的
C.方法区用于存储JVM加载的类信息、常量、静态变量,即使编译器编译后的代码等数据,是线程隔离的
D.Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
6.关于Java中参数传递的说法,哪个是错误的?
A.在方法中,修改一个基础类型的参数不会影响原始参数值
B.在方法中,改变一个对象参数的引用不会影响到原始引用
C.在方法中,修改一个对象的属性会影响原始对象参数
D.在方法中,修改集合和Maps的元素不会影响原始集合参数
7.关于下面的程序Test.java说法正确的是( )。
public class Test {
static String x="1";
static int y=1;
public static void main(String args[]) {
static int z=2;
System.out.println(x+y+z);
}
}
A.3
B.112
C.13
D.程序有编译错误
8.存根(Stub)与以下哪种技术有关
A.交换
B.动态链接
C.动态加载
D.磁盘调度
9.int,String,*point,union哪些不是 Java 的数据类型?
A.int
B.String
C.*point
D.union
10.在Java线程状态转换时,下列转换不可能发生的有()?
A.初始态->运行态
B.就绪态->运行态
C.阻塞态->运行态
D.运行态->就绪态
(1)C
1、抽象方法不能有方法体,这是规定
2、该方法缺少返回值,只有构造没有返回值
(2)正确答案: B
1抽象类是可以实现接口的,而且抽象类也可以继承自抽象类
2有抽象方法的类一定是抽象类,抽象类不一定包含抽象方法
3抽象类和接口都是不能被实例化的,只有具体的类才可以被实例化
(3)错
System是java.lang中的一个类,out是System内的一个成员变量,这个变量是一个java.io.PrintStream类的对象,println呢就是一个方法了。
(4)正确答案: A
(5)
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)
栈区:
每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中
每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
堆区:
存储的全部是对象实例,每个对象都包含一个与之对应的class的信息(class信息存放在方法区)。
jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身,几乎所有的对象实例和数组都在堆中分配。
方法区:
又叫静态区,跟堆一样,被所有的线程共享。它用于存储已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
(6)正确答案: D
在方法中,改变一个对象参数的引用不会影响到原始引用
//引用传参:本质是传的是地址:会使该形参引用指向原对象;同时修改该形参就会修改原对象
不过B选项说的是原引用,那根本就没关系,原引用不会受到影响
(7)D
被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量
(8)B
存根类是一个类,它实现了一个接口,它的作用是:如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦。
RMI 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端***,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端对象stub来完成的。
每个远程对象都包含一个对象stub,当运行在本地Java虚拟机上的程序调用运行在远程Java虚拟机上的对象方法时,它首先在本地创建该对象的对象stub, 然后调用对象上匹配的方法。每一个远程对象同时也包含一个skeleton对象,skeleton运行在远程对象所在的虚拟机上,接受来自stub对象的调用。这种方式符合等到程序要运行时将目标文件动态进行链接的思想
(9)正确答案: C D
java中数据类型分为:基本数据类型和引用数据类型,其中基本数据类型有8种,byte,short,int,long, boolean,char,float,double 引用数据类型有字符串,数组,类等
(10)正确答案: A C
准备–就绪–运行–阻塞,就绪和运行可相互转,运行到阻塞,再进就绪