2013-09-30 61 views
0

例如,如果我有關閉掃描儀或重新分配掃描儀更有效率嗎?

Scanner scan = new Scanner(System.in); 
scan.close(); 
scan = new scanner(new File("file.txt")); 

那會是比

Scanner scan = new Scanner(System.in); 
scan = new scanner(new File("file.txt")); 

更快或者是基本相同的運行時間,並使用相同的資源?

感謝

+2

注意'Scanner#close()'關閉了它的底層'InputStream',所以除非你想關閉'System.in',否則不要這樣做。對於任何其他'InputStream'來源,推薦並且必須關閉它。 –

+0

哦,你是對的,謝謝 –

+0

這不是一個選擇。你必須關閉舊的掃描儀。僅僅重新分配引用它的變量不會這樣做。 – EJP

回答

1

當你做scan.close()你釋放底層的資源。不調用函數的速度會更快(即使它是無操作的,與執行調用和返回有一定的關聯時間),但可能會導致資源被程序保持打開(並可能被鎖定),直到您的程序退出。

+0

謝謝,這是我正在尋找。 –