当前位置:网站首页 > Java基础 > 正文

java变量基础选择题



一、 单选题 (共 30 道试题,共 60 分)

1.下列不可作为java语言修饰符的是()

A.a1

B.$1

C._1

D.11   //数字开头

正确答案:D

2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是()

A.a1.java

B.a1.class

C.a1

D.都对

正确答案:A

3.整型数据类型中,需要内存空间最少的是()

A.short

B.long

C.int

D.byte

正确答案:D

4.Java 类可以作为()

A.类型定义机制

B.数据封装机制

C.类型定义机制和数据封装机制

D.上述都不对

正确答案:C

5.在创建对象时必须()

A.先声明对象,然后才能使用对象

B.先声明对象,为对象分配内存空间,然后才能使用对象

C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象

D.上述说法都对

正确答案:C

6.在调用方法时,若要使方法改变实参的值,可以()

A.用基本数据类型作为参数

B.用对象作为参数

C.A和B都对

D.A和B都不对

正确答案:B

7.Java中()

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C.一个子类可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

正确答案:C  //儿子有一个父亲,父亲有多个儿子

8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?()

A.安全性

B.多线性

C.跨平台

D.可移植

正确答案:B

9.Character流与Byte流的区别是()

A.每次读入的字节数不同

B.前者带有缓冲,后者没有

C.前者是字符读写,后者是字节读写

D.二者没有区别,可以互换使用

正确答案:C

10.以下声明合法的是()

A.default String s; //变量不需要权限修饰符

B.public final static native int w( )

C.abstract double d;变量不需要权限修饰符

D.abstract final double hyperbolicCosine( )  //abstract final  他俩不能在一起

java变量基础选择题正确答案:B

11.关于以下application的说明,正确的是( )

1. class StaticStuff

2. {

3. static int x=10;

4. static { x+=5;}   //15

5. public static void main(String args[ ])

6. {

7. System.out.println(“x=” + x);

8. }

9. static { x/=3;}  //15 / 3

10. }

A.4行与9行不能通过编译,因为缺少方法名和返回类型

B.9行不能通过编译,因为只能有一个静态初始化器

C.编译通过,执行结果为:x=5

D.编译通过,执行结果为:x=3

正确答案:C

12.关于以下程序代码的说明正确的是( )

1.class HasStatic{

2. private static int x=100;

3. public static void main(String args[ ]){

4. HasStatic hs1=new HasStatic( );

5. hs1.x++;

6. HasStatic hs2=new HasStat )ic(;

7. hs2.x++;

8. hs1=new HasStatic( );

9. hs1.x++;

10. HasStatic.x- -;

11. System.out.println(“x=”+x);

12. }

13. }

A.5行不能通过编译,因为引用了私有静态变量

B.10行不能通过编译,因为x是私有静态变量

C.程序通过编译,输出结果为:x=103

D.程序通过编译,输出结果为:x=102

正确答案:D

13.以下选项中循环结构合法的是( )

A.while (int i<7) { i++; System.out.println(“i is “+i); }

B.int j=3; while(j) { System.out.println(“ j is “+j); }

C.int j=0; for(int k=0; j + k !=10; j++,k++) { System.out.println(“ j is “+ j + “k is”+ k); }

D.int j=0; do{ System.out.println( “j is “+j++); if (j = = 3) {continue loop;} }while (j<10);

正确答案:C

14.14. 类Test1定义如下:

1.public class Test1{

2. public float aMethod(float a,float b){ }

3.

4.}

将以下哪种方法插入行3是不合法的。( )

A.public float aMethod(float a, float b,float c){ }

B.public float aMethod(float c,float d){ }   //同样的方法,不是重载

C.public int aMethod(int a, int b){ }

D.private float aMethod(int a,int b,int c){ }

正确答案:B

15.类Test1、Test2定义如下://考察重写

1. public class Test1

2.{ public float aMethod(float a,float b) throws

3. IOException { }

4. }

5. public class Test2 extends Test1{

6.

7.} 将以下哪种方法插入行6是不合法的。( )

A.float aMethod(float a,float b){ }

B.public int aMethod(int a,int b)throws Exception{ }

C.public float aMethod(float p,float q){ }

D.public int aMethod(int a,int b)throws IOException{ }

正确答案:A?

在Java中,子类可以覆盖(override)父类的方法,但需要满足以下条件:

方法名、参数列表和返回类型(对于协变返回类型,可以是父类返回类型的子类型)必须相同。
访问修饰符不能比父类中被覆盖的方法的访问修饰符更严格(即子类方法可以是public,但父类方法不能是private)。
子类方法抛出的异常类型应该是父类方法抛出的异常类型或其子类型,或者根本不抛出异常(即子类方法可以抛出更少的异常或不抛出异常)。

16.关于以下程序段,正确的说法是( )

1. String s1=”abc”+”def”;

2. String s2=new String(s1);

3. if(s1= =s2)

4. System.out.println(“= = succeeded”);

5. if (s1.equals(s2))

6. System.out.println(“.equals() succeeded”);

A.行4与行6都将执行

B.行4执行,行6不执行

C.行6执行,行4不执行  // == 比较的是地址, eques比较的是内容

D.行4、行6都不执行

正确答案:C

17.Java application中的主类需包含main方法,main方法的返回类型是什么?( )

A.int

B.float

C.double

D.void

正确答案:D

18.以下哪个方法用于定义线程的执行体? ( )

A.start()

B.init()

C.run()

D.synchronized()

正确答案:C

19.以下标识符中哪项是不合法的( )  ???

A.const  //A. const:在许多编程语言中,const 是一个关键字,用于声明常量。因此,它不能用作标识符(变量名、函数名等),因为它已经被语言保留用于特定目的。

B.$double

C.hello

D.BigMeaninglessName

正确答案:A

20.以下哪个关键字可以用来为对象加互斥锁?( )

A.transient

B.static

C.serialize

D.synchronized

正确答案:D

21.有以下程序片段,下列哪个选项不能插入到行1。( )

1.

2.public class Interesting{

3https://blog.csdn.net/erqwert/article/details//do sth

4. }

A.import java.awt.*;  // 这是一个导入语句,它用于导入一个包(在这种情况下是java.awt包)中的类。导入语句通常放在类的外部,即在所有类定义之前,但在包声明之后(如果有的话)

B.package mypackage;//这是一个包声明,它应该出现在任何类定义之前,包括import语句之前

C.class OtherClass{ }  // 在Java中,一个.java文件可以包含多个类定义,但只能有一个公共类(如果有的话),并且这个公共类的名称必须与文件名相同。因此,你可以在同一文件中定义多个类,包括非公共类

D.public class MyClass{ }  // 
这是另一个公共类定义。根据Java的规则,一个.java文件中只能有一个公共类,并且这个公共类的名称必须与文件名相同。由于这里已经有一个公共类Interesting,因此不能在同一文件中再定义一个公共类MyClass,

正确答案:D

22.以下哪项是接口的正确定义?( )???

A.interface B { void print() { } ;}

B.abstract interface B { void print() ;}

C.abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };}

D.interface B { void print();}

正确答案:D

在Java中,接口(interface)是一种引用类型,它是完全抽象的,即接口中的方法不能有实现(从Java 8开始,可以使用默认方法和静态方法,但它们仍然不是“抽象”的常规方法)。

现在,让我们分析每个选项:

A. interface B { void print() { } ;}
这是不正确的。在Java中,接口中的方法不能有任何实现(从Java 8开始之前)。从Java 8开始,虽然可以有默认方法和静态方法,但它们需要使用default或static关键字,并且它们的实现是可选的。

B. abstract interface B { void print() ;}
这是不必要的。在Java中,接口本身就是抽象的,所以abstract关键字在接口定义中是多余的

C. abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };}
这也是不正确的。首先,接口中的方法不能有abstract关键字(因为它是默认的)。其次,方法体({ };)在接口中是不允许的(除非它是默认方法或静态方法)。最后,extends用于继承其他接口是正确的,但方法的定义是错误的。

所以,正确答案是D。

23.下面哪个函数是public void aMethod(){...}的重载函数?( )???

A.void aMethod( ){...}

B.public int aMethod(){...}

C.public void aMethod ( ){...}

D.public int aMethod ( int m){...}

正确答案:D

在Java中,方法的重载(Overloading)是指在同一个类中定义多个方法名相同但参数列表不同的方法。参数列表的不同可以是参数类型、参数个数或参数顺序的不同。返回类型不参与方法的重载判断。

24.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:??

1. A a0=new A();

2. A a1 =new B();

3. A a2=new C();

问以下哪个说法是正确的? ( )

A.只有第1行能通过编译

B.第1、2行能通过编译,但第3行编译出错

C.第1、2、3行能通过编译,但第2、3行运行时出错

D.第1行、第2行和第3行的声明都是正确的

正确答案:D

25.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( )

class A {

int i;

static String s;

void method1() { }

static void method2() { }

}

A.System.out.println(a.i);

B.a.method1();

C.A.method1();

D.A.method2()

正确答案:C

26.有如下代码段: 1) 2) { if(unsafe()){//do something…} 3) else if(safe()){//do the other…} 4) } 其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )

A.public IOException methodName()

B.public void methodName()

C.public void methodName() throw IOException

D.public void methodName() throws IOException

正确答案:D

在Java中,关于继承和多态性的一个基本规则是,子类对象可以被赋值给其超类类型的变量。这是多态性的一个关键部分,允许我们编写更通用的代码,这些代码可以与超类类型的变量一起工作,而不管这些变量实际上引用的对象是什么具体的子类类型。

现在,我们分析给出的三个声明:

27.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个比特位。

A.8

B.16

C.32

D.64

正确答案:C

28.以下关于继承的叙述正确的是( )。

A.在Java中类只允许单一继承

B.在Java中一个类只能实现一个接口

C.在Java中一个类不能同时继承一个类和实现一个接口

D.在Java中接口只允许单一继承

正确答案:A

29.给出下面代码,关于该程序以下哪个说法是正确的?( )

public class Person{

static int arr[] = new int[5];

public static void main(String a[]) {

System.out.println(arr[0]);

}

}

}

A.编译时将产生错误

B.编译时正确,运行时将产生错误

C.输出零

D.输出空

正确答案:C

30.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。

A.private

B.protected

C.private protected

D.public

正确答案:D

二、 多选题 (共 10 道试题,共 20 分)

1.Java程序的种类有()

A.类(Class)

B.Applet

C.Application

D.Servlet

正确答案:BCD

Java程序的种类主要包括以下几种:

Application(应用程序):

Java Application是最常见的Java程序类型,是可以独立运行的Java程序。它们由Java解释器控制执行,并且不需要其他环境(如Web浏览器)来运行。

Applet(小应用程序):

Java Applet是嵌入到Web页面中的Java程序。它们不能独立运行,而是需要Java兼容的浏览器来执行。Applet可以在网页上产生动态和交互式的图形效果。

Servlet:

Servlet是运行在Web服务器上的Java程序,用于处理来自Web浏览器或其他HTTP客户端的请求。它们作为客户端和服务器之间的中间层程序,用于扩展Web服务器的功能。

2.下列说法正确的有()

A.环境变量可在编译source code时指定  //环境变量通常在操作系统级别设置,它们影响操作系统上运行的所有程序,而不仅仅是Java编译器。

B.在编译程序时,所能指定的环境变量不包括class path///????

这是不正确的。实际上,classpath是一个可以在编译时通过命令行参数-classpath或-cp指定的环境变量

C.javac一次可同时编译数个Java源文件

D.javac.exe能指定编译结果要置于哪个目录(directory)

正确答案:BCD

3.下列标识符不合法的有()

A.new

B.$Usdollars

C.1234

D.car.taxi

正确答案:ACD

在Java中,标识符是用来给类、方法、变量等命名的。关于这些标识符,有一些基本的规则:

标识符必须以字母、美元符号($)或下划线(_)开始。
标识符的其他部分可以是字母、数字、美元符号($)或下划线(_)。
标识符是区分大小写的。
标识符不能是Java关键字或保留字。
现在我们来看每个选项:

4.下列说法错误的有()

A.数组是一种对象

B.数组属于一种原生类

C.int number=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

正确答案:BCD

关于给出的选项,我们可以这样评估:

A. 数组是一种对象

这是正确的。在Java中,数组是对象,它们继承自Object类,

B. 数组属于一种原生类

这是错误的。在Java中,数组不是原生类(primitive class)。原生数据类型包括byte、short、int、long、float、double、char和boolean。数组是由这些原生数据类型或任何其他类型的对象构成的引用类型。

C. int number[]={31,23,33,43,35,63}

这是错误的。虽然在Java中,数组的定义可以有两种形式:int number[] 和 int[] number,但是在初始化时,我们通常使用int[] number = {31,23,33,43,35,63}这种形式。选项C中的int number[]={...}语法是不正确的。

D. 数组的大小可以任意改变

这是错误的。在Java中,数组的大小在创建时就已经确定,并且之后不能改变。如果你需要一个可以改变大小的类似数组的结构,你应该使用ArrayList或其他集合类。

因此,选项B、C和D都是错误的。

5.不能用来修饰interface的有()

A.private

B.public  //只能用它修饰

C.protected

D.static

正确答案:ACD

6.下列正确的有()

A.call by value不会改变实际参数的数值  // 实参的值被拷贝到形参中。因此,对形参的任何修改都不会影响实参的值。这是正确的。

B.call by reference能改变实际参数的参考地址

C.call by reference不能改变实际参数的参考地址 //实参的引用(或地址)被传递给形参。这意味着形参和实参引用的是同一个内存位置。在“call by reference”中,我们改变的是引用所指向的内容,而不是引用的地址本身。

D.call by reference能改变实际参数的内容  //由于形参和实参引用的是同一个内存位置,因此我们可以通过形参来改变实参的内容。这是正确的

正确答案:ACD

7.下列说法错误的有( ).

A.在类方法中可用this来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

正确答案:ACD

8.下列说法错误的有( ).

A.Java面向对象语言容许单独的过程与函数存在

B.Java面向对象语言容许单独的方法存在

C.Java语言中的方法属于类中的成员(member)??

D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

正确答案:AB C

A. Java 是一种纯面向对象的语言,它不支持像 C 或 C++ 那样的全局函数或过程。所有的代码(包括方法)都必须属于某个类。因此,A 选项的说法是错误的。

B. 同样地,由于 Java 是纯面向对象的,所有的方法(即函数)都必须属于某个类。它们不能单独存在。所以 B 选项的说法也是错误的。

C. Java 语言中的方法确实属于类中的成员。这是正确的,因为方法是类定义的一部分,它们与类的状态(字段)和行为(方法)一起定义了类的完整功能。

D. Java 语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同(在面向对象编程的上下文中)。这也是正确的,因为即使方法是通过对象实例调用的,它们最终还是属于定义该方法的类。调用方法与过程或函数在概念上是相似的,但在面向对象编程中,我们通常使用“方法”这个术语来指代类中的函数。

9.下列说法错误的有( ).

A.能被java.exe成功运行的java class文件必须有main()方法

B.J2SDK就是Java API

C.Appletviewer.exe可利用jar选项运行.jar文件

D.能被Appletviewer成功运行的java class文件必须有main()方法

正确答案:BCD

A. 正确。能被 java.exe 成功运行的 Java class 文件(或者说 Java 应用程序)必须有一个 main() 方法作为程序的入口点。

B. 错误。J2SDK(Java 2 Software Development Kit)是 Java 开发工具包的旧称(现在通常称为 JDK),它包含了编译、运行 Java 程序的工具(如 javac.exe 和 java.exe)以及 Java API(Application Programming Interface)。Java API 是一系列类和接口的集合,用于开发 Java 应用程序,但它不是 J2SDK 的全部。

D. 错误。能被 Appletviewer 成功运行的 Java class 文件(即 Applet)不需要有 main() 方法。Applet 是嵌入在 HTML 页面中的 Java 应用程序,它们通过 Applet 类的 init(), start(), stop(), destroy() 和 paint() 等方法来控制其生命周期和绘制。main() 方法对于 Applet 来说是可选的,并且即使存在也不会被 Appletviewer 或浏览器调用。

10.执行下列代码后,哪个结论是正确的 String[] s=new String[10];

A.s[10] 为 "";

B.s[9] 为 null;

C.s[0] 为 未定义

D.s.length 为10

正确答案:BD

三、 判断题 (共 10 道试题,共 20 分)

1.“//”即可以表示单行注释,也可以表示多行注释。( )

A.对

B.错

正确答案:B

2.2. 方法System.out.println只在命令窗口中显示(或打印)一行文字。( )

A.对

B.错

正确答案:B

3.“//”即可以表示单行注释,也可以表示多行注释。( )

A.对

B.错

正确答案:B

4.方法System.out.println只在命令窗口中显示(或打印)一行文字。( )

A.对

B.错

正确答案:B

5.构造方法用于给类的private实例变量赋值。( )

A.对

B.错

正确答案:B

A.对

解释:构造方法(也称为构造函数)在Java中是一种特殊的方法,它在创建类的对象时被自动调用,通常用于初始化对象的状态。由于类的private实例变量只能被该类的其他成员访问(包括构造方法和其他方法),因此构造方法经常被用于给这些private实例变量赋初值。所以,构造方法确实用于给类的private实例变量赋值。

6.在定义变量和方法时,必须清楚地在起面前标**问权限修饰符。( )

A.对

B.错

正确答案:A

7.类和方法一般可以实现满足所有用户需要的错误处理。( )

A.对

B.错

正确答案:B

B.错

解释:类和方法本身并不直接实现满足所有用户需要的错误处理。错误处理通常是通过异常处理机制来实现的,包括try-catch-finally块和抛出异常(throw)。

8.当资源不再需要时,一个执行程序却不能恰当地释放他,就会出现资源泄露。( )

A.对

B.错

正确答案:A

9.程序员必须创建System .in,System .out和System .err对象。( )

A.对

B.错

正确答案:B

B.错

解释:在Java中,System.in、System.out和System.err是System类中的三个静态成员,它们分别代表标准输入流、标准输出流和标准错误流。这些流对象是由Java虚拟机(JVM)在启动时创建的,而不是由程序员手动创建的。

10.如果顺序文件中的文件指针不是指向文件头,那么必须先关闭文件,然后在再打开它才能从文件头开始读。( )

A.对

B.错

版权声明


相关文章:

  • 图书管理系统java基础代码2024-10-21 13:34:04
  • java最基础的算法2024-10-21 13:34:04
  • java11基础讲解2024-10-21 13:34:04
  • JAVA基础选择题考点2024-10-21 13:34:04
  • java基础变量作用域2024-10-21 13:34:04
  • java基础编程图片2024-10-21 13:34:04
  • egret引擎java零基础2024-10-21 13:34:04
  • java基础篇第十六章答案2024-10-21 13:34:04
  • java基础容器原理2024-10-21 13:34:04
  • java利用了面向对象的技术基础2024-10-21 13:34:04