Для JDK6 вы можете скачать исходники с java.net. Для java.lang
история начинается по адресу j2se/src/share/native/java/lang/
, а затем ищите... JDK7 немного перестраивает структуру каталогов.
Некоторые методы, такие как Object.hashCode
, могут быть реализованы с помощью hotspot вместо или в дополнение к JNI/Java.
JDK6 свободно лицензируется через Java Research License (JRL) и Java Internal Use License (JIUL). JDK7 и OpenJDK6 лицензированы по GPL 2 с исключением CLASSPATH (грубо говоря, вы можете ссылаться на него, не заразившись вирусом GNU). Я не юрист.
(BTW: Настоящие юристы хотели бы отметить, что я все еще являюсь сотрудником Sun Microsystems. Sun UK больше нет. Это теперь Oracle.)
Обновление (Добавление местоположения для Thread.c): http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/native/java/lang/Thread.c
Вы можете посмотреть исходный код для OpenJDK (под лицензией GPLv2 с исключением пути к классам ). Вероятно, лучший способ изучить внутреннее устройство реализации JDK, если только вы не хотите быть связаны Java Research License , и в этом случае вы можете получить доступ к фактическому исходному тексту JDK 6 .