jls

Dlaczego nie ma metod statycznych w interfejsach, ale pola statyczne i klasy wewnętrzne OK? [pre-Java8]

Zadano tu kilka pytań o to, dlaczego nie można zdefiniować statycznych metod w interfejsach, ale żadne z nich nie odnosi się ... va powinna albo nie obsługiwać żadnych statyk jakiejkolwiek formy w interfejsie, albo powinna być spójna i pozwalać na nie.

Dlaczego x == (X = y) nie jest tym samym co (x = y) = = x?

Rozważ następujący przykład: class Quirky { public static void main(String[] args) { int x = 1; int y = ... = y; return oldX == y; Które, będąc jeszcze prostsze niż instrukcja x86 CMPXCHG, zasługiwało na krótsze wyrażenie w Javie.

Skutecznie finał vs finał-różne zachowania

Do tej pory myślałem, żeefektywnie final ifinal są mniej lub bardziej równoważne i że JLS traktowałby je podobnie, jeśli ni ... zachowuje się tutaj inaczej (nie chcę używać tego fragmentu w prawdziwym kodzie, po prostu jestem ciekaw innego zachowania).

Rozróżnianie wielkości liter nazw klas Java

Jeśli zapiszemy dwie publiczne klasy Javy o tej samej nazwie bez rozróżniania wielkości liter w różnych katalogach, to obie k ... m)? czy jest jakiś sposób, aby załadować HotSpot a i A jednocześnie? Czy napisanie niestandardowego class loadera zadziała?

Wyrażenie Lambda i metoda przeciążania wątpliwości

OK, więc przeciążenie metody jest-a-bad-thing™. Teraz, gdy to zostało ustalone, Załóżmy, że rzeczywiście chcę przeciążyć met ... d kompilatora)? Bonus: dlaczego tak się rozstrzygnęło? Aktualizacja: Z jdk1.8. 0_40, powyższe kompiluje i działa dobrze

Jeśli Nadpisz pole w podklasie klasy, podklasa ma dwa pola o tej samej nazwie (i innym typie)?

Mam 3 klasy: public class Alpha { public Number number; } public class Beta extends Alpha { public String number; ... assertEquals("its a string", a.number); assertEquals(13, ((Alpha) a).number); assertEquals(42, ((Gama) a).number); }

Kiedy będzie dostępna specyfikacja języka Java, 4th edition?

Teraz, gdy JDK 7 developer preview jest już dostępny, można pomyśleć, że nadszedł czas na nowy JLS. W końcu nastąpiły zmiany w języku, choć niewielkie. Jeszcze nic nie znalazłem. Kiedy będzie dostępny nowy JLS i skąd będzie można go dostać?

Dlaczego Java wiąże zmienne w czasie kompilacji?

Rozważ następujący przykładowy kod class MyClass { public String var = "base"; public void printVar() { Sy ... owej. Dlaczego Wiązanie zmiennych odbywa się w czasie kompilacji, a nie w czasie pracy? Czy to tylko ze względu na wydajność?

Jak utworzyć klasę znanego typu: Class>

Weź następujące: public Class<List<String>> getObjectType() { // what can I return here? } Jakiej klasy d ... gSource, a więc wiosna 3.0.1 spowoduje zmianę typu zwracanego getObjectType() na Class<?>, co pozwoli uniknąć problemu.

Czy to prawda, że każda wewnętrzna Klasa wymaga zamkniętej instancji?

Termin Klasa wewnętrzna jest konwencjonalnie rozumiany jako "klasa zagnieżdżona, która wymaga instancji zamykającej". Jednak ... nej instancji zmienne. Podczas gdy w powszechnym użyciu najwyższy poziom jest uważany za przeciwieństwo zagnieżdżonego .

Testowanie bezpieczeństwa inicjalizacji końcowych pól

Próbuję po prostu przetestować bezpieczeństwo inicjalizacji końcowych pól gwarantowane przez JLS. To do pracy, którą piszę. ... 1000, 100000, a nawet milion. Nadal bez porażki. Zawsze widzę 3 i 4 dla obu wartości. Jak Mogę sprawić, że to się nie uda?

Zwraca wartość operatora przypisania w kodzie współbieżnym

Podano następującą klasę: class Foo { public volatile int number; public int method1() { int ret = number = 1; ... h method1() i method2() jednocześnie na tej samej instancji Foo, czy wywołanie metody1() może zwrócić cokolwiek innego niż 1?