2016-07-28 22 views
0

我是一名初中高級Java程序員,對於下列哪種方法在Java中更高效,我遇到了內部衝突。如果您正在使用Java導入單個類,那麼按慣例導入它比效率更高,例如import java.util.Scanner;,或者使用該導入語句作爲掃描程序聲明的一部分,如java.util.Scanner scan = new java.util.Scanner(System.in);中所述。在Java中導入更高效的是什麼?

我知道第一個更常見,看起來更好,但如果您只需要一個掃描儀對象呢?如果這個問題是重複的,我很抱歉;我不知道如何在我的搜索中正確說出這個問題,看看它是否已經存在。

+1

正如大家所說,在這種情況下的表現是相同的。但總的來說,不要擔心這樣的性能 - 絕大多數時候,可讀/可維護的代碼優於高效的代碼。請記住,這個行業的重點是,我們正在讓計算機爲我們做這項工作......如果你爲了節省計算機的麻煩而走出困境,可能會出現一些倒退的情況。 :) –

回答

4

import語句爲導入的符號創建一個編譯器時間別名。也就是說,這只是輸入全名的快捷方式 - 它在運行時對程序沒有影響。編譯後的代碼在兩種情況下都是相同的。

0

導入一個類沒有增加的開銷,因此將所有導入放在標題中是很有意義的,任何查看代碼的人都可以很容易地看到程序中使用了哪些類。如果您稍後決定想要擁有多個scanner對象或來自java.util的多個類別,則也可以使用import java.util.*

0

挑選兩者更具可讀性。性能沒有差異,在一天結束時,它們都被編譯成完全相同的字節碼。

0

效率在於您可能需要多長時間寫出該類型的包/類/符號路徑。如果您確定只使用一次,則不使用導入功能。

但是,這是唯一的好處。避免導入語句有多種缺點,包括可讀性,易於查看此代碼文件中使用哪些類,以及在需要添加更多引用時需要額外輸入。編譯器完全中立,因爲任何一種方式都會編譯成相同的JVM代碼。