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