2017-08-11 44 views
-1

很久以前,我讀到GC是可選的,因爲像信用卡芯片這樣的東西幾乎從不需要,因爲應用程序壽命不長。在Java中是否有定義好的'optional'或'implementation defined'特性/ API方法?

最近我被告知,流中的'peek()'函數不能保證始終可用。

也許Android的實現與桌面/服務器實現有很大不同。

一般來說,要實現「一次寫入,隨處運行」,我們必須寫入通用子集。沒有到處測試,有什麼方法可以實現呢?

E.g.當我使用'java。*'包時,是否有辦法知道哪些類或方法遠離我,如果我不想'調試到處'?

+1

對JavaDocs的看法? –

+2

通常情況下,JavaDoc清楚地說明一個操作可能不被一個接口的不同實現或不同平臺所支持。在'peek()'的情況下,你是指'java.util.Stream'?根據JavaDoc,該方法應該始終得到支持,但它首先用於調試目的。但是請注意,Android可能會有所不同,因爲雖然他們使用Java(現在也是Kotlin),但標準JVM和Dalvik/ART之間還是有很多不同之處。 – Thomas

+0

是的,它指的是java.util.Stream中的peek()。我試圖破譯「......主要是爲了支持調試......」在文檔中的含義。這個問題源於[另一個問題](https://stackoverflow.com/questions/45515798/does-java-stream-peek-happen-just-before-or-just-after-the-terminal-operation)我問。 – Jeevaka

回答

0

作爲每documentationStream.peek()API級24中加入(即的Android 7.0)...

0

可能存在的Android實現和其他Java實現之間的差。

例如,有專有的Oracle JDK和OpenJDK。請注意,OpenJDK是Oracle JDK的開源實現。理論上講,它們應該有相同的界面,但實際上可能會有一些細微之處。但是,無論具體實施如何,主要組件(如GC)都應始終可用。在這個問題上

的更多信息:What is the difference between JVM, JDK, JRE & OpenJDK?


(這可能是有益的編輯一起導致你問的信息引用您的問題,您正在尋找一個規範,明確定義的列表;如果答案能夠解決特定領域的問題,它可能也會有所幫助。)

相關問題