跳轉到內容

Java 程式設計/問答

來自華夏公益教科書,開放的書籍,開放的世界


導航 專案頁面 主題: v  d  e )
歡迎來到 Java 程式設計問答頁面。


在學習 Java 程式設計時,請隨時釋出您遇到的任何問題。如果您對本書有任何疑問,請在 Java 程式設計討論頁面 上釋出。如果您知道問題的答案,或者可以改進任何答案,請直接進行操作。


從 Java 1.5 開始,Java 語言中添加了一項新功能,稱為 泛型。它類似於 C++ 模板。為什麼將名稱 Generics 賦予此功能?有誰知道?
泛型來自其他語言,有關更多資訊,請參見 w:泛型程式設計 上的文章。
泛型來自其他語言,有關更多資訊,請參見 w:泛型程式設計 上的文章。
什麼是 Corba?Corba 的元件有哪些?並討論 Corba 的工作原理?RMI 和 CORBA 有什麼區別?
CORBA 是與語言無關的“遠端方法呼叫”,類似於 RMIRMI 僅適用於 Java,CORBA 可用於任何語言。有關更多資訊,請參見:w:通用物件請求代理體系結構

RMI 比 CORBA 更易於使用,因此在僅限 Java 的環境中應該使用 RMI。

如果您需要在不同的語言環境之間呼叫方法,請使用 CORBA。使用 CORBA,Java 客戶端可以呼叫 C++ 伺服器,反之亦然,C++ 客戶端可以呼叫 Java 伺服器。使用 RMI 無法實現這一點。
CORBA 是與語言無關的“遠端方法呼叫”,類似於 RMIRMI 僅適用於 Java,CORBA 可用於任何語言。有關更多資訊,請參見:w:通用物件請求代理體系結構

RMI 比 CORBA 更易於使用,因此在僅限 Java 的環境中應該使用 RMI。

如果您需要在不同的語言環境之間呼叫方法,請使用 CORBA。使用 CORBA,Java 客戶端可以呼叫 C++ 伺服器,反之亦然,C++ 客戶端可以呼叫 Java 伺服器。使用 RMI 無法實現這一點。
Vector 可以支援非同類資料嗎?
Vector 類可以接收任何物件(因此不能接收基本型別),即使是在同一個 Vector 中的不同型別的資料。

Vector 和 Hashtable 類是來自 Java 1.0 版本的遺留類,它們強制執行同步方法,導致在不需要此特性的系統上出現效能問題。在 1.2 版本中添加了其他類,它們是 ArrayList 和 HashMap,沒有同步。同步和非同步版本分別實現 List 和 Map 介面。

從 Java 1.5 開始,有了泛型,它允許您指定您想要一個容器(例如 ArrayList)只包含特定型別的元素。這使您可以保證您從容器中獲取到的元素在編譯時是特定型別,而無需顯式地將其強制轉換為該型別。這樣更安全(您避免了在執行時出現型別轉換錯誤),並使您的程式碼更易讀和易懂。您應該儘可能使用泛型。
Vector 類可以接收任何物件(因此不能接收基本型別),即使是在同一個 Vector 中的不同型別的資料。

Vector 和 Hashtable 類是來自 Java 1.0 版本的遺留類,它們強制執行同步方法,導致在不需要此特性的系統上出現效能問題。在 1.2 版本中添加了其他類,它們是 ArrayList 和 HashMap,沒有同步。同步和非同步版本分別實現 List 和 Map 介面。

從 Java 1.5 開始,有了泛型,它允許您指定您想要一個容器(例如 ArrayList)只包含特定型別的元素。這使您可以保證您從容器中獲取到的元素在編譯時是特定型別,而無需顯式地將其強制轉換為該型別。這樣更安全(您避免了在執行時出現型別轉換錯誤),並使您的程式碼更易讀和易懂。您應該儘可能使用泛型。
如何在 PC 上執行 Java 程式?
如果 Java 應用程式位於 .JAR 或 .JNLP 包中,則可以像執行任何其他程式一樣執行它們。如果您嘗試執行 .class 檔案,只需開啟命令列提示符並鍵入 java MyClass,其中 MyClass 是您嘗試啟動的類檔案的檔名。
如果 Java 應用程式位於 .JAR 或 .JNLP 包中,則可以像執行任何其他程式一樣執行它們。如果您嘗試執行 .class 檔案,只需開啟命令列提示符並鍵入 java MyClass,其中 MyClass 是您嘗試啟動的類檔案的檔名。
Java 中的 String 函式與 BASIC 中的 LEFT()、MID()、RIGHT() 函式等效嗎?
Java String 類提供了 substring() 方法,應該可以滿足您的需求。例如,Visual Basic 中的 mid(str, a, b) 等效於 str.substring(a, a+b)。
Java String 類提供了 substring() 方法,應該可以滿足您的需求。例如,Visual Basic 中的 mid(str, a, b) 等效於 str.substring(a, a+b)。
什麼是類?它是如何實現資料隱藏的?
類是建立物件的模板。宣告為私有的方法和變數無法在類外部訪問。它們只能在內部訪問,這意味著它們對外部隱藏。這使得程式設計更簡單,因為它保證這些內部資訊不會被外部程式碼弄亂。
類是建立物件的模板。宣告為私有的方法和變數無法在類外部訪問。它們只能在內部訪問,這意味著它們對外部隱藏。這使得程式設計更簡單,因為它保證這些內部資訊不會被外部程式碼弄亂。
可以將關鍵字用作變數名嗎?
不能。關鍵字由編譯器保留,不能用於變數。
不能。關鍵字由編譯器保留,不能用於變數。
Java 中有哪些可用的跳轉語句?
Java 沒有跳轉語句。

goto 是保留字,但未使用。

break 語句類似於跳轉語句,但跳轉的目標是明確定義的。它從迴圈或 switch 語句中退出/跳出。
Java 沒有跳轉語句。

goto 是保留字,但未使用。

break 語句類似於跳轉語句,但跳轉的目標是明確定義的。它從迴圈或 switch 語句中退出/跳出。
什麼是自動型別轉換?
建構函式可以是私有的嗎?
可以。單例建構函式是私有的。當建構函式是私有的時,該類的物件無法在該類外部建立。如何以及何時建立該類的物件由該類定義。
可以。單例建構函式是私有的。當建構函式是私有的時,該類的物件無法在該類外部建立。如何以及何時建立該類的物件由該類定義。
組合和聚合有什麼區別?
為什麼在 Java 中 char 使用 2 位元組記憶體,而在 C++ 中只佔用 1 位元組?
Java 使用 unicode,而 C++ 使用 ASCII。Unicode 包含大約 100,000 個字元的字元集,遠遠超過 ASCII 字元集所能表示的字元數量。另請參見 Java 程式設計/語法/Unicode 原始碼
Java 使用 unicode,而 C++ 使用 ASCII。Unicode 包含大約 100,000 個字元的字元集,遠遠超過 ASCII 字元集所能表示的字元數量。另請參見 Java 程式設計/語法/Unicode 原始碼
如何在 Java 程式設計中獲取值?
您可以使用 System.out.print() 和 System.out.println() 函式顯示任何變數的值。
您可以使用 System.out.print() 和 System.out.println() 函式顯示任何變數的值。
Java 語言的介紹是什麼?
Java 語言從 這裡 開始介紹。 Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
Java 語言從 這裡 開始介紹。 Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
如何從 CD 中開啟 Java 檔案?如何從類中建立物件?out 是 PrintStream 類的物件,那麼為什麼 Java 在 System 類中定義 out?要列印訊息,我們使用 System.out.print() 方法,如果 out 在 PrintStream 中定義,我們也可以使用該方法,例如 PrintStream.out.print() 嗎?
  • 位於 CD 上的 Java 檔案應該與硬碟上的 Java 檔案以相同的方式開啟。您應該使用 CD 上檔案的路徑。如果您想從命令列或提示符中開啟檔案,請使用 cd 命令移動到資料夾並將 Java 檔案作為文字檔案開啟。
  • 不要混淆類的物件和類的欄位。outSystem 類的欄位,outPrintStream 類的物件。
  • 只有 System 類中的 out 在 Java 啟動時連結到標準輸出。這就是您必須使用 System 類的原因。
Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
  • 位於 CD 上的 Java 檔案應該與硬碟上的 Java 檔案以相同的方式開啟。您應該使用 CD 上檔案的路徑。如果您想從命令列或提示符中開啟檔案,請使用 cd 命令移動到資料夾並將 Java 檔案作為文字檔案開啟。
  • 不要混淆類的物件和類的欄位。outSystem 類的欄位,outPrintStream 類的物件。
  • 只有 System 類中的 out 在 Java 啟動時連結到標準輸出。這就是您必須使用 System 類的原因。
Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
大家好。請詳細說明 JVM 代。在“System.out.println()”這一行中,System 和 out 的確切含義是什麼?如何在 Java 中宣告類?謝謝,此致,Hema26
JVM 不是生成的。您下載 JRE 或 JDK,安裝完成後,如 這裡 所述啟動 JVM。System 是一個類。它是一個類的靜態使用。outSystem 類的靜態欄位。本書介紹瞭如何建立類 這裡Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
JVM 不是生成的。您下載 JRE 或 JDK,安裝完成後,如 這裡 所述啟動 JVM。System 是一個類。它是一個類的靜態使用。outSystem 類的靜態欄位。本書介紹瞭如何建立類 這裡Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
如何跟蹤簡單的 Java 程式?
記錄程式碼最簡單的方法是列印到標準輸出,也就是說使用 System.out.println();Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
記錄程式碼最簡單的方法是列印到標準輸出,也就是說使用 System.out.println();Ftiercel (討論貢獻) 19:29, 11 March 2013 (UTC)
編寫一個 Java 程式,在三個類中分別計算三角形、正方形和矩形的形狀?編寫一個 Java 程式,輸入 2 個數字並執行計算器的所有基本運算?
要計算形狀的周長或面積,請使用java.lang.Math類的 方法,如 此處 所述。要繪製此類形狀,可以使用 Swing,如 此處 所述。 Ftiercel (討論貢獻) 2013年3月11日 (UTC) 19:29
要計算形狀的周長或面積,請使用java.lang.Math類的 方法,如 此處 所述。要繪製此類形狀,可以使用 Swing,如 此處 所述。 Ftiercel (討論貢獻) 2013年3月11日 (UTC) 19:29
我想使用 T 類引用獲取方法 main() 和 a() 的詳細資訊。
使用 Eclipse,您可以透過按住Ctrl鍵點選方法宣告來訪問方法宣告。您可以使用 反射 來訪問程式中類的功能。BlueJ 不是最受歡迎的 IDE,因此 IDE 部分 中沒有太多關於它的資訊。 Ftiercel (討論貢獻) 2013年3月11日 (UTC) 19:29
public class A{
 public void a(){
  System.out.println("Hello1");
 }
}

public class T{
 public static void main(String... args){
  A a = new A();
  a.a();
 } 
}
使用 Eclipse,您可以透過按住Ctrl鍵點選方法宣告來訪問方法宣告。您可以使用 反射 來訪問程式中類的功能。BlueJ 不是最受歡迎的 IDE,因此 IDE 部分 中沒有太多關於它的資訊。 Ftiercel (討論貢獻) 2013年3月11日 (UTC) 19:29
public class A{
 public void a(){
  System.out.println("Hello1");
 }
}

public class T{
 public static void main(String... args){
  A a = new A();
  a.a();
 } 
}
如何在 BlueJ 中建立和執行 .jar 程式?
只需轉到“匯出專案”選單並選擇此格式。
只需轉到“匯出專案”選單並選擇此格式。

程式設計程式碼..

[編輯 | 編輯原始碼]

在 java 中可以使用什麼程式碼來顯示以英尺 (int) 和英寸 (int) 為單位的高度?

(!)為什麼這不起作用,請儘快幫忙(!)

[編輯 | 編輯原始碼]

import java.util.Random; import java.util.Scanner; class Main {

 public static void main (String[]args)
 {
   Scanner scanner = new Scanner (System.in);
   Random random = new Random ();
   {
     int rock = 0;
     int paper = 0;
     int scissors = 0;
     int loop = 0;
     int no = 0;
     while (loop == 0)

no = random.nextInt (3) + 1;

     if (no == 1)

rock = 1;

     if (no == 2)

paper = 1;

     if (no == 3)

scissors = 1;

   }
   System.out.
     println ("Pick rock paper scissors\nRock = 1 Paper = 2 Scissors = 3: ");
   int cho = scanner.nextInt ();
   {
     if (cho == 1 & no == 3 | cho == 2 & no == 1 | cho == 3 & no == 2)

{ System.out.println ("You Win"); loop++; }

     if (cho == 1 & no == 2 | cho == 2 & no == 3 | cho == 3 & no = 1)

{ System.out. print ("You loose want to play again? Type 0 to play again or type 1 to Exit: "); loop = scanner.nextInt (); }

     if (cho == 1 & no == 1 | cho == 2 & no == 2 | cho == 3 & no == 3)

System.out.println ("Tie try again");

   }
 }

}

編寫一個程式,根據使用者輸入計算當前支票賬戶餘額。


輸入

詢問使用者帳戶號碼和姓名。

詢問使用者開戶餘額。

詢問使用者最多 5 筆借記交易,使用者可以透過輸入 -1 停止輸入。

詢問使用者最多 5 筆貸記交易,使用者可以透過輸入 -1 停止輸入。


處理

計算新的餘額。


輸出

[帳號] - [客戶名] [客戶姓]

原始餘額: [原始餘額]

借記: [借記次數]

借記總計: [借記總計]

貸記: [貸記次數]

貸記總計: [貸記總計]

餘額: [當前賬戶餘額]

華夏公益教科書