O dawna chodziła mi po głowie wspólna z wami analiza, jakie klasy i intefejsy są wbudowane w kompilator "na twardo".
String. Ma literały, ma specyficzny operator +, i literał już jest obiektem. Generalnie w każdym języku oprócz asemblera jest "jakiś string".
Tablica implementuje to i owo, nie wiem ściśle co. Można sprawdzić długość itd, wziąć z niej iteratory.
Metoda Main() raczej jest to atrybut programu wykonawczego java, a nie kompilatora javac
Typy arytmetyczne, logiczny i boxingi
Wielki nieobecny: nawet nie BigDecimal, ale bardzo (mi) brakuje jakiegoś NormalDecimal wbudowanego w język. W pewnej mojej prywatnej klasyfikacji Java jest bliska PHP, w kategorii "języki nie mające decimala", tu ratuje silnie zestandaryzowana biblioteka standardowa.
Iterable jest konieczny do pętli for each
java.lang.AutoCloseable i java.io.Closeable bo try with resources
lambdy pewnie czegoś wymagają? Ale nie byłbym zdziwiony, jesli było by to zrobione jawnie (bez twardego patchowania kompilatora), przez klasy i metody.
liczne featuresy wersji > 9
Kolejny wielki nieobecny: Optonal, @NotNull & Company gdyby były silnie egzekwowane (była tu dyskusja)
pamiętam jak Kubuś Puchatek, że coś zapomniałem, jakich ?
Generalnie z masakrowaniem kompilatora nie jest chyba źle. Moje największe przerażenie to Borland C++, ale i np standardowy C/C++ masakruje return z main'a