以下關于構造函數的描述錯誤的是 ( )
A、每個類有且隻能有一個構造函數。
B、構造函數是類的一種特殊函數,它的方法名必須與類名相同
C、構造函數的主要作用是完成對類的對象的初始化工作
D、一般在建立新對象時,系統會自動調用構造函數
解析
構造函數是一種特殊的函數,它必須與類同名,而且預設每個類都帶有一個無參的構造函數,此外還可以根據我們的需要自定義多個構造函數,而構造函數的功能主要用于建構對象并初始化。
參考答案
A
假設 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();
解析
在 Java 中,非靜态方法隻能是通過類的執行個體對象來調用,但不能直接通過類名調用。但靜态(
static
)方法既可以通過執行個體對象來調用,也可以通過類名調用,當然,為了避免不必要的麻煩,我們一般都是推薦直接使用類名來調用。
參考答案
C
下列類定義中哪些是合法的抽象類的定義?()
A、
abstract Animal{abstract void growl();}
B、
class abstract Animal{abstract void growl();}
C、
abstract class Animal{abstract void growl();}
D、
abstract class Animal{abstract void growl(){System.out.println( “growl”);};}
解析
無論是抽象類還是其他類,關鍵字
class
都必須在類名之前,而修飾符都應該在
class
之前。
另一方面,對于抽象類中的抽象方法,是不能有方法體的。
參考答案
C
以下 J2EE 中常用的名詞解釋錯誤的是?
A、EJB 容器:Enterprise Java bean 容器
B、JNDI:Java 事務服務。提供各種分布式事務服務。應用程式隻需調用其提供的接口即可。
C、JMS:Java 消息服務。主要實作各個應用程式之間的通訊。包括點對點和廣播。
D、JAF:Java 安全認證架構。提供一些安全控制方面的架構。
解析
EJB 容器:Enterprise Java bean 容器。更具有行業領域特色。他提供給運作在其中的元件 EJB 各種管理功能。隻要滿足J2EE 規範的 EJB 放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現成的接口來獲得系統級别的服務。例如郵件服務、事務管理。
JNDI:(Java Naming & Directory Interface)Java 命名目錄服務。主要功能:提供一個目錄系,讓其它各地的應用程式在其上面留下自己的索引,進而滿足快速查找和定位分布式應用程式的功能。
JMS:(Java Message Service)Java 消息服務。主要實作各個應用程式之間的通訊。包括點對點和廣播。
JAF:(Java Action FrameWork)Java 安全認證架構。提供一些安全控制方面的架構。讓開發者通過各種部署和自定義實作自己的個性安全控制政策。
參考答案
B
以下哪個區域不屬于新生代?
A、eden 區
B、from 區
C、中繼資料區
D、to 區
解析

堆是 JVM 中最大的一塊記憶體,主要用于存放各種類的執行個體對象,一般被劃分為新生代(Young)和老年代(Old)。其中新生代又分為三個區域:Eden、From Survivor、To Survivor,三者所占大小比例為 Eden : From : To = 8 : 1 : 1。
參考答案
C
一個檔案中的資料要在控制台上顯示,首先需要( )。
A、
System.out.print (buffer[i]);
B、
FileOutputStream fout = new FileOutputStream(this.filename);
C、
FileInputStream fin = new FileInputStream(this.filename);
D、
System.in.read(buffer);
解析
InputStream
是 Java 标準庫所提供的最基本的輸入流,是所有輸入流的超類,如果我們要從檔案中讀取相應資料,則應該使用
FileInputStream
。
OutputStream
是 Java 标準庫所提供的最基本的輸出流,是所有輸出流的超類,如果我們要将若幹個位元組寫入檔案流,我們則需要使用
FileOutputStream
。
參考答案
C
下面對靜态資料成員的描述中,正确的是
A、靜态資料成員可以在類體内進行初始化
B、靜态資料成員不可以被類的對象調用
C、靜态資料成員不受
private
控制符的作用
D、靜态資料成員可以直接用類名調用
解析
靜态屬性僅可以被靜态方法調用,但隻能被本類中的方法(可以是非靜态)調用,在外部類中建立該類的對象或直接使用該類通路都是非法的。此外,靜态屬性也可以用
private
所修飾。
參考答案
A
下列在 Java 語言中關于資料類型和包裝類的說法,正确的是()
A、基本(簡單)資料類型是包裝類的簡寫形式,可以用包裝類替代基本(簡單)資料類型
B、
long
和
double
都占了64 位(64bit)的存儲空間。
C、預設的整數資料類型是
int
,預設的浮點資料類型是
float
。
D、和包裝類一樣,基本(簡單)資料類型聲明的變量中也具有靜态方法,用來完成進制轉化等。
解析
基本資料類型:
byte、short、char、int、long、float、double、boolean
。
對應的包裝類:
Byte、Short、Character、Integer、Long、Float、Double、Boolean
。
預設整數資料類型均為
int
,而浮點數預設為
double
。
基本資料類型沒有任何方法,但其對應的包裝類有。
參考答案
B
下面代碼的運作結果是( )
public class Arraytest
{
int a[] = new int[6];
public static void main ( String arg[] ) {
System.out.println ( a[0] );
}
}
複制
解析
a
是一個非靜态屬性,
main
是一個靜态方法,而靜态方法中是無法通路非靜态屬性的,是以如果要在靜态方法中通路非靜态屬性,必須将非靜态屬性聲明為靜态屬性,否則将會導緻編譯錯誤。
參考答案
C
給出下面的代碼段:
public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a;
y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;
z=c;
}
}
複制
在代碼說明
// assignment x = a, y = b
處寫入如下哪幾個代碼是正确的?()
A、
Base(a,b);
B、
x=a, y=b;
C、
x=a; y=b;
D、
this(a,b);
解析
對于 A,如果我們要調用構造方法,則應該這樣
new Base(a, b)
。
對于 B,文法錯誤,不能使用
,
。
對于 C,正确,即指派操作。
對于 D,
this
關鍵字表示調用本類的構造方法,是以效果和 C 一樣。
參考答案
C、D
總結
以上所有題目整理自牛客網