jls

    2熱度

    2回答

    參考Why i am getting type mismatch: cannot convert from int to byte,我試着在JLS中快速搜索,找到它在哪裏提到,byte操作數之間的加法結果自動擴大爲int。 我發現的最好的是這個tutorial,但我並沒有在JLS中找到任何東西。 Conversions這一章沒有提到有關加法運算符的任何內容,至少我找不到東西。 Additive O

    3熱度

    1回答

    我遇到了一個例子,表明擦除在方法簽名和方法上做了不同的處理,但我不知道爲什麼/如何。所述JLS §8.4.8.3狀態: 它是一個編譯時間錯誤,如果一個類型聲明T具有構件的方法m1和存在或T中聲明的方法平方米T使得的超類型,所有以下的條件成立: m1和m2具有相同的名稱。 m2可從T.訪問 m1的簽名不是m2的簽名的子簽名(第8.4.2節)。 m1或某些方法m1覆蓋(直接或間接)的簽名與m2的簽名或

    36熱度

    4回答

    此代碼: interface Config { int MAX_CONN = 20; } 編譯並擔任我的預期。它看起來像這樣: interface Config { public static final int MAX_CONN = 20; } 對於Java接口中的常量,「公共靜態final」是多餘的嗎?對於Java 1.1,1.2,1.3,1.4,...,1.8

    6熱度

    3回答

    以下(Java)代碼是否合法? class Test { Object foo() {return "";} boolean bar() {return foo() == true;} } 它不會針對JDK 6進行編譯,但在7+上看起來不錯。規範改變了嗎?是一個錯誤修復?我一直在討論http://bugs.eclipse.org/bugs/show_bug.cgi?id=

    0熱度

    3回答

    我正在通過this link。據此: 類鎖實際上是作爲對象鎖實現的。當JVM加載一個類文件時,它創建一個類java.lang.Class的實例。當你鎖定一個類時,你實際上鎖定了該類的Class對象。 但是根據Java規範,堆上相同類型(類)的所有對象共享單個Class對象。 那麼對於多線程同步訪問Objects的情況如何呢?

    4熱度

    1回答

    相關:How can I compile "import pack.*" with ant/javac, when there are no such classes? 假設我們有一個給定的封裝結構 parent | ---a ---b 所在的包parent只包含兩個subpackges a和b(無級是下包parent)。 位於除了parent之外的包中的代碼import parent.

    10熱度

    2回答

    爲什麼JVM規範聲明接口必須有super_class的java/lang/Object,即使接口不能擴展java/lang/Object? 我專門指的是JVM規範,它說的§4.1: 對於接口方面,super_class項的值必須始終是有效的索引到constant_pool表。該索引處的constant_pool條目必須是表示類Object的CONSTANT_Class_info結構。 尚未在JLS

    3熱度

    3回答

    請檢閱Oracle Specification - Chapter 5。 這條線: 一個寬元轉換不會丟失關於數值的 總體規模的信息。 跟着,只是2線以下,這條線說,幅度信息可以會丟失。 從浮子加寬原語轉換到加倍是不 strictfp可能丟失關於 轉換值的總大小的信息。 這似乎是一個明顯的矛盾;這是一個錯誤嗎?

    3熱度

    2回答

    下面的文字是從JLS http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.5.3 Even then, there are a number of complications. If a final field is initialized to a compile-time constant expressio

    3熱度

    1回答

    下面的代碼 import java.util.*; import java.io.*; @SuppressWarnings("unchecked") List<Serializable> list = (List<Serializable>) (List<?>) Collections.singletonList(new Object()); for (Object el :