Javanın Tarihçesi;
Java 1995'li yıllarda Solaris İşletim sistemini,SPARC ıda üreten bir Amerikan Şirketi olan Sun Microsystem mühendislerinden James Gosling tarafından geliştirmeye başlamıştır.Java dili ismini,Javayı geliştiren 5 adet mühendisin bir kafede aralarında konuşurken içtikleri kahvenin isminden alınmıştır.
Teknolojinin ilerlediği 1990'li yıllarda programlama,bilgisayarın haricinde gömülü sistemlerde ve temeli atılan mobil cihazlarda da kullanılıyordu.Programcılar ise bilgisayarın doğuşundan beri her yerde çalışabilecek, az ve verimli kod yazmaya olanak sağlayan bir dil icat etmeye odaklandılar.
Java haricinda kalan tüm diller derlendiklerinde makine diline çevrilirler,Bu da yazılan programların tek bir mimariye bağımlı olmalarına neden olur ancak Java dilinde yazılan programlar derlendiklerinde direk makine diline değil bytecode adı verilen ara makine diline çevrilirler.Ancak bytecode halindeki dosyalar herhangi bir işletim sisteminde direk olarak çalıştırılmazlar.Bu ara kodun tam olarak derlenmesi için kullanılacak bilgisayarlarda Java Sanal Makinesi adındaki mekanizmanın yüklü olması gereklidir.
Javanın yukarıdaki özelliği aslında diğer dillere göre olan en büyük avantajıdır.
Bu özelliği sayesinde Java,"Bir kere yaz her yerde çalıştır" özelliğine sahip tek dildir.Yıllardan beri istenilen bu özelliği fazlasıyla sağlayan Java programlama dili ise 1995 yıllarından günümüze kadar büyük bir gelişim sağlamış ve hiç şüphesiz sağlamaya da devam edecektir.
"Java;
Kod:
outer:
for (int i = 2; i < 1000; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
continue outer;
}
System.out.println (i);
}
ByteCode;
Kod:
0: iconst_2
1: istore_1
2: iload_1
3: sipush 1000
6: if_icmpge 44
9: iconst_2
10: istore_2
11: iload_2
12: iload_1
13: if_icmpge 31
16: iload_1
17: iload_2
18: irem
19: ifne 25
22: goto 38
25: iinc 2, 1
28: goto 11
31: getstatic #84; // Field java/lang/System.out:Ljava/io/PrintStream;
34: iload_1
35: invokevirtual #85; // Method java/io/PrintStream.println:(I)V
38: iinc 1, 1
41: goto 2
44: return
(Tırnak İçindekiler alıntıdır. // https://en.wikipedia.org/wiki/Java_bytecode )