1丶下列关于计算机系统和Java编程语言的说法,正确的是()
A. 计算机是由硬件、操作系统和软件组成,操作系统是缺一不可的组成部分
B. Java语言编写的程序源代码可以不需要编译直接在硬件上运行。
C. 在程序中书写注释不会影响程序的执行,可以在必要的地方多写一些注释。
D. Java的集成开发环境(IDE),如Eclipse,是开发Java语言必需的软件工具。
解析:A.计算机是由硬件和软件组成;B.java是先编译为class文件即字节码文件,然后再交由JVM执行;D.使用IDE只是为了开发方便
2丶JAVA属于( )。
A. 操作系统
B. 办公软件
C. 数据库系统
D. 计算机语言
3丶A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:
1. A a0=new A();
2. A a1=new B();
3. A a2=new C();
问以下哪个说法是正确的?()
A. 只有第一行能通过编译
B. 1、2行能通过编译,但第3行编译出错
C. 1、2、3行能通过编译,但第2、3行运行时出错
D. 第1行,第2行和第3行的声明都是正确的
解析:父类的引用可以指向子类的实例化对象,这种方式叫做向上转型
4丶以下 _____ 不是 Object 类的方法
A. clone()
B. finalize()
C. toString()
D. hasNext()
解析:下图为所有Object类中方法
hasNext()属于迭代器里的方法
5丶System.out.println(10%3*2);打印为
A. 1
B. 2
C. 4
D. 6
6丶选项中哪一行代码可以添加 到题目中而不产生编译错误?
public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() {
}
}
A. public abstract void method(int a);
B. constInt = constInt + 5;
C. public int method();
D. public abstract void anotherMethod() {}
解析:抽象方法只有声明部分,没有方法体;不同方法定义必须包含声明部分和方法体;B项语句在类中不允许这样表达,可以在方法中表达
7丶下面程序的运行结果是
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
A. true
B. false
C. exception
D. 无输出
解析:对于字符串而言,==比较的是对象的内存地址(hashcode),equals比较的是内容。字符串,比如“abc”,是放在常量池里,相同的字符串不会另辟空间存储,在编译期已确定;而new String()这种方式在堆里开辟的空间,在JVM运行时才可以确定。
8丶如果希望监听TCP端口9000,应该怎样创建socket?
A. new Socket("localhost",9000);
B. new ServerSocket(9000);
C. new Socket(9000);
D. new ServerSocket("localhost",9000);
解析:ServerSocket(int port) 是服务端绑定port端口,调accept()监听等待客户端连接,它返回一个连接队列中的一个socket。
Socket(InetAddress address , int port)是创建客户端连接主机的socket流,其中InetAddress是用来记录主机的类,port指定端口。
9丶Choose the correct ones from the following statements:
A. A class can implement more than one interfaces
B. A class can extend more than one class
C. An interface has at least one method declared.
D. An abstract class which has no abstract methods declared is legal