(i alle fall den delen som er skrevet i Java)
Hvis du har installert Java SDK har du allerede kildekoden!
Filen src.zip i mappa hvor Java er installert. Så hvordan finner vi den?
unzip $(/usr/libexec/java_home)/src.zip -d ~/Desktop/JavaSource
cd /snacks/encap/jdk-1.8.0.*/opt/jdk/
unzip src.zip -d ~/JavaSource
Gå til "C:/Program Files/Java/" (eller det tilsvarende)
Velg mappa som begynner med "jdk"
Pakk ut "src.zip" et passende sted
JavaSource/java/lang/System.java
Hvis JavaSource er mappen der du pakket ut kildekoden:
public final class System {
/* register the natives via the static initializer.
* ...
*/
private static native void registerNatives();
static {
registerNatives();
}
...
native betyr at denne metoden er ikke skrevet i Java (og er sannsynligvis forskjellig på Windows og Linux)
static-blokker kjøres første gang en klasse brukes
public void addName(String name) {
synchronized(this) {
lastName = name;
nameCount++;
}
nameList.add(name);
}
Objektet man vil ha låsen til. (this her tilsvarer synchronized på ikke-statiske metoder)
public String readOption(String prompt, String... options) {
while (true) {
System.out.print(prompt + ": ");
String input = new Scanner(System.in).nextLine();
for (String option : options) {
if (option.equals(input)) return input;
}
}
}
String[] directions = new String[] {"N", "S", "E", "W"};
readOption("Direction", directions);
readOption("Continue(Y/N)", "yes", "y", "no", "n");
public static void main(String... args) { // !!!
Generics + Arrays
Iterator
ConcurrentLinkedQueue
Node
sortering
jdk.internal.misc.Unsafe
UNSAFE
Unsafe tilbyr funksjonalitet til kompilatoren som vi ikke bør bruke i vår egen "vanlige" kode, som å behandle Java-referanser som "rå" C-pekere.