复习中的知识点(一)

315 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

复习中的知识点(一)

1.Test中已定义Public float m(float a,float b),在类Test中增加( )方法将会编译错误

(1.0分)

  • A、public float m(float a,float b,float c)
  • B、public int m(float c,float d)
  • C、public int m(int a,int b)
  • D、均不会出现错误

答案:B

解析:关于方法重载和方法重写的知识点,函数名相同时,参数的类型和参数的个数不能同时相同,否则在调用函数传参时不清楚调用的是哪个方法;函数名不同时,随便变或者不变都行。关于A是方法重载

2.如下代码,( )可以使成员变量m被函数fun()直接访问

class Test{

​ private int m;

​ public static void fun(){

​ }

}

(1.0分)

  • A、将private int m改为protected int m
  • B、将private int m改为public int m
  • C、将private int m改为private static int m
  • D、将private int m改为 int m

答案:C

解析:static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

3.在switch(expression)语句中,expression的数据类型不能是( )

(1.0分)

  • A、double
  • B、int
  • C、char
  • D、byte

答案:A

解析:表达式expression只能返回:int、byte、short和char。同时还要注意,多分支结构中,case子句的值必须是常量,而且所有case子句中的值应是不同的,default子句是任选的。java 1.6(包括)以前,只是支持等价成int 基本类型的数据byte ,short,char,int(其他的都不可以),1.7加入的新特性可以支持String类型的数据。

4.下列类定义中,不能编译生成()文件

public class B{

class A{ }

}

class C{ }

(1.0分)

  • A、A.class
  • B、B.class
  • C、C.class
  • D、均可产生

答案:A

解析:对于Java中的内部类,其生成的文件应该是外$内.class,所以对于该题,内部类A只能生成文件B$A.class

相关博客-包含内部类的.java文件编译后生成几个.class文件

5.下列说法中,正确描述为( )

(1.0分)

  • A、所有类都必须定义一个构造函数
  • B、构造函数必须有返回值
  • C、构造函数不可以访问类的静态变量
  • D、构造函数可以初始化类的非静态变量

答案:D

解析:

A:所有类都会“有”构造函数,但是并不“必须定义”
B:构造函数没有返回值
C:构造函数可以访问所有的成员,无限制
D:构造函数不需要初始化类的所有数据成员,初始化成员可以在定义成员变量时初始化,可以在构造函数内初始化,也可以在使用时初始化(成员不为final时)

6.下面关于变量及其作用范围的陈述中,( )是错误的?

(1.0分)

  • A、实例变量是类的成员变量
  • B、实例变量是用关键字static声明
  • C、在方法中定义的局部变量在该方法被执行时创建
  • D、局部变量在使用前必须被初始化

答案:B

解析:方法分为实例方法(通过static修饰的)和类方法(非static修饰的方法),而实例变量是非静态的,所以不能被static声明

7.关于Java对象释放说法正确的是( )

(2.0分)

  • A、主动地用delete语句释放
  • B、垃圾回收器GC周期性地释放无用对象
  • C、程序控制垃圾回收器释放对象
  • D、用close语句释放

答案:B

8.当两个以上的线程同时访问一个变量可能引起死锁问题。

(1.0分)

答案:错误