{"id":284,"date":"2017-09-15T01:18:03","date_gmt":"2017-09-14T22:18:03","guid":{"rendered":"http:\/\/melic.com\/wp1\/?p=284"},"modified":"2017-09-15T01:22:38","modified_gmt":"2017-09-14T22:22:38","slug":"java-nedir","status":"publish","type":"post","link":"https:\/\/melic.com\/wp1\/java-nedir\/","title":{"rendered":"Java Nedir?"},"content":{"rendered":"<p><strong>Java nedir?<\/strong><\/p>\n<p>San\u0131yorum bu sorunun cevab\u0131n\u0131 veren ve vermeye \u00e7al\u0131\u015fan bir ka\u00e7 y\u00fcz milyon sayfa vard\u0131r. Bende o milyonlarca sitenin aras\u0131ndan s\u0131yr\u0131l\u0131p da \u00f6n\u00fcn\u00fcze kadar geldi\u011fime g\u00f6re bunu en iyi \u015fekilde anlatma g\u00f6revi bana d\u00fc\u015ft\u00fc. Umar\u0131m hem akl\u0131n\u0131z\u0131 buland\u0131rmadan hemde can\u0131n\u0131 s\u0131kmadan bunu ba\u015farabilirim.<\/p>\n<p>Peki \u00f6nce s\u0131k\u0131lmaman\u0131z ad\u0131na geyi\u011fi k\u0131sa kesip konumuza h\u0131zla d\u00f6n\u00fcyorum.<\/p>\n<p>Java Nesne Y\u00f6nelimli bir dildir; de nesne y\u00f6nelim nedir dedi\u011finizi duyar gibi oluyorum.<\/p>\n<p>Hay\u0131r Java nedir diye soran ki\u015finin nesne y\u00f6nelimli programlama deyince duraksamas\u0131 elbette \u015fa\u015f\u0131lacak bir durum de\u011fil.O y\u00fczden hemen h\u0131zl\u0131ca Nesne y\u00f6nelimdi ne demek anlat\u0131p Java&#8217;m\u0131za d\u00f6nece\u011fim.<\/p>\n<p>\u0130ngilizce Object(nesne) Oriented(Y\u00f6nelimi) Programming(yok art\u0131k :P) olup k\u0131saltmas\u0131 OOP olarak bilinir.Etraf\u0131n\u0131zda insan taraf\u0131ndan yarat\u0131lan ne varsa esas\u0131nda nesne y\u00f6nelimli desem pek bir yalan olmaz. Neticede ne yap\u0131yorsak etraf\u0131m\u0131zda(environment) ne varsa ya \u015fekil olarak (Ku\u015f-u\u00e7ak\/at-araba)* ya da kendisinden yaralanarak yap\u0131yoruz (a\u011fa\u00e7-masa)*. Bir \u015fekilde bir nesneden iki tane de yapabilirsiniz mesela kumu \u00e7ok \u0131s\u0131tt\u0131n\u0131z ve cam yapt\u0131n\u0131z sonra bu erimi\u015f s\u0131v\u0131dan  iki tane bardak yapt\u0131n\u0131z. \u015eekil olarak birbirinin kusursuz birebir ayn\u0131s\u0131 bile olsa bu iki bardak esas\u0131nda asla ayn\u0131 de\u011fil; bu iki bardak farkl\u0131 iki bardak olmaktad\u0131r.\u0130ster isim olarak ilkBardak ve ikinciBardak  diyin isterseniz solBardak ve sagBardak diyin her halukarda birbirinden ay\u0131rmak i\u00e7in bir tan\u0131m yapacaks\u0131n\u0131z.Bir fabrikada milyonlarca ayn\u0131 \u015fekilde \u00fcretilmi\u015f ve hepsi ayn\u0131 malzemeden de olsa yap\u0131lm\u0131\u015f olsa temelde hepsi birbirinden farkl\u0131 NESNEler olacaklar. \u0130\u015fte bizde programlama dillerinde bu \u00f6zelli\u011fi kullanarak yaz\u0131l\u0131m yap\u0131lan dillere nesne y\u00f6nelimli diyoruz. Programlama \u00f6rnekleri verirdim ama bence ak\u0131l kar\u0131\u015ft\u0131r\u0131r nas\u0131lsa ileride bunu daha iyi anlayacaks\u0131n\u0131z.<\/p>\n<p>Bu arada tan\u0131mlama yaparken yukar\u0131da * koydu\u011fum tan\u0131mlar var ya onlar\u0131da nesneler aras\u0131 ili\u015fki olarak d\u00fc\u015f\u00fcn\u00fcn.\u0130leride \u00e7ok i\u015finize yarayacak bir terim ; bilin yeter.<\/p>\n<p>Java&#8217;ya d\u00f6nersek Java dilinin hemen hemen di\u011fer t\u00fcm dillerden en b\u00fcy\u00fck fark\u0131 yazd\u0131\u011f\u0131n\u0131z yaz\u0131l\u0131m\u0131n derlendikten(sompiled) sonra o Java kodu java&#8217;y\u0131 destekleyen herhangi bir makinada yeniden derlenmeden \u00e7al\u0131\u015fabiliyor olmas\u0131.JAva&#8217;c\u0131lar\u0131n en be\u011fendi\u011fi s\u00f6zde &#8220;Java&#8217;n\u0131n prensibinin bir kere yaz her yerde \u00e7al\u0131\u015ft\u0131r&#8221; s\u00f6z\u00fcd\u00fcr. (WORA &#8211; Write Once Run Anywhere). <\/p>\n<p>Java kodlar\u0131(class?!) derlendi\u011finde Java Sanal Makinesi (JVM) taraf\u0131ndan anla\u015f\u0131lan bir bitkoduna d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.B\u00f6ylelikle JVM \u00e7al\u0131\u015fan herhangi bir makinada \u00e7al\u0131\u015fabilmekte.Bu makinalara \u00f6rnek vermeye kalksak baya vaktinizi \u00e7almam laz\u0131m ama araban\u0131zdan,evinizdeki kap\u0131 ziline,bindi\u011finiz asans\u00f6rlerden tutunda ak\u0131ll\u0131 tak\u0131s\u0131n\u0131 ba\u015f\u0131na alm\u0131\u015f t\u00fcm alet edevatlar desek yalan olmaz.\u00d6zellikle Internet of Things (IOT) i\u00e7in bulunmaz nimettir Java.<\/p>\n<p>Ben bu yaz\u0131y\u0131 yazarken Java&#8217;n\u0131n \u015fu anda en son Java 9 s\u00fcr\u00fcm\u00fc yay\u0131mlanm\u0131\u015ft\u0131 (2017-05-24) <a href=\"https:\/\/docs.oracle.com\/javase\/9\/whatsnew\/\" target=\"_blank\">Java 9&#8217;da neler var ?<\/a><\/p>\n<p>Bu kadar \u00f6zetten sonra daha da \u00f6zet isterseniz Java (Yani Oracle) nesne y\u00f6nelimli, g\u00fcvenli, ta\u015f\u0131nabilir, dinamik ve t\u00fcm haf\u0131za ve cpu kanallar\u0131n\u0131 y\u00f6nebilen ve kullanabilen bir yaz\u0131l\u0131m olmaya \u00e7al\u0131\u015fmakta; demin verdi\u011fim linkte uzun uzun anlatm\u0131\u015flar , bir g\u00f6z at\u0131n derim.<\/p>\n<p><strong><em>&#8220;\u0130yi g\u00fczel de neden Java \u00f6\u011frenmeliyim ?&#8221;<\/em><\/strong> mi dedi birisi ?<br \/>\nBir \u00e7ok sebep saymak m\u00fcmk\u00fcn , mesela :<\/p>\n<ul>\n<li>En yayg\u0131n ve \u00e7ok kullan\u0131lan programlama dillerinden bir tanesi yani milyonlarca yaz\u0131l\u0131mc\u0131 Java&#8217;y\u0131 kullan\u0131yor diyebiliriz<\/li>\n<li>Bilgisayar,telefonlar,blu-ray oynat\u0131c\u0131lar,IoT vs gibi hemen hemen her yerde \u00e7al\u0131\u015f\u0131yor<\/li>\n<li>Yeni programlamaya ba\u015flayanlar i\u00e7in genel konsepti anlamak \u00e7ok kolay<\/li>\n<li>Statik bir yaz\u0131m\u0131 var , yani yaz\u0131l\u0131mda hatalar\u0131 \u00e7\u00f6zmeden derleyemiyorsunuz bu da uzun \u00e7al\u0131\u015ft\u0131rma s\u00fcrelerini yok ediyor<\/li>\n<li>Belirli bir seviyeye gelene kadar haf\u0131za y\u00f6netimi(memory management) yada \u00e7\u00f6p toplay\u0131c\u0131(garbage collector) gibi konular girmenize gerek yok \u00e7\u00fcnk\u00fc bunu otomatik yapabiliyor<\/li>\n<\/ul>\n<p>\u00d6zetle say say bitmez ; hi\u00e7 bir \u015fey bilmiyorsan\u0131z bile yaz\u0131l\u0131m hakk\u0131nda \u00f6\u011frenmek isteseniz bir ay\u0131n\u0131z\u0131 almaz ufak tefek \u015feyler yazmaya ba\u015flaman\u0131z.<\/p>\n<p>Ama \u015funu da belirtmeliyim ba\u015flamak ne kadar kolayda olsa ileri d\u00fczey bir Java yaz\u0131l\u0131mc\u0131s\u0131 olmak zaman , emek ama en \u00f6nemlisi sab\u0131r gerektiriyor. <\/p>\n<blockquote>\n<pre>\r\npublic class Main {\r\n    public static void main(String[] args) {\r\n        <strong>System.out.println(\"Selam, d\u00fcnyal\u0131 :P\");<\/strong>\r\n    }\r\n}\r\n<\/pre>\n<\/blockquote>\n<p>Hemen iki tane bilgi vereyim her komuttan sonra noktal\u0131 virg\u00fcl (;) koyman\u0131z \u015fart baz\u0131 yaz\u0131m \u015fartlar\u0131 d\u0131\u015f\u0131nda,daha ileride bunu detayl\u0131 bir \u015fekilde anlataca\u011f\u0131m ama sab\u0131r :D<\/p>\n<p>Bu kodu bir text dosyas\u0131na kay\u0131t edin ve ad\u0131n\u0131 <code>merhaba.java<\/code> diye de\u011fi\u015ftirin.<br \/>\nBu dosyay\u0131 kaydetti\u011finiz dizinde<br \/>\n<code>&gt;javac merhaba.java<\/code><br \/>\nyaz\u0131n ; ayn\u0131 dizinde<br \/>\n<code>merhaba.class<\/code><br \/>\ndiye bir dosya olu\u015facak.<br \/>\nYine ayn\u0131 dizinde<br \/>\n<code>&gt;java merhaba<\/code><br \/>\nyaz\u0131p enter&#8217;a bast\u0131\u011f\u0131n\u0131zda ilk java kodunuzu hem derlemi\u015f hemde \u00e7al\u0131\u015ft\u0131rm\u0131\u015f oldunuz.<br \/>\nAyr\u0131ca belirtmeliyim ki art\u0131k bu kodu Java&#8217;y\u0131 destekleyen herhangi bir makinada da \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>\u0130yi Java&#8217;lamalar :D<\/p>\n<p>Not: yazm\u0131\u015f oldu\u011funuz kodun \u00e7al\u0131\u015fmamas\u0131n\u0131n tek sebebi makinan\u0131zda Java deste\u011finin olmamas\u0131d\u0131r.Gerekli JVM ve ara\u00e7lar\u0131 \u015fu linkten indirip kurabilirsiniz :<a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/jdk8-downloads-2133151.html\" target=\"_blank\">JAVA SE Dev Kit<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java nedir? San\u0131yorum bu sorunun cevab\u0131n\u0131 veren ve vermeye \u00e7al\u0131\u015fan bir ka\u00e7 y\u00fcz milyon sayfa vard\u0131r. Bende o milyonlarca sitenin aras\u0131ndan s\u0131yr\u0131l\u0131p da \u00f6n\u00fcn\u00fcze kadar geldi\u011fime g\u00f6re bunu en iyi \u015fekilde anlatma g\u00f6revi bana d\u00fc\u015ft\u00fc. Umar\u0131m hem akl\u0131n\u0131z\u0131 buland\u0131rmadan hemde can\u0131n\u0131 s\u0131kmadan bunu ba\u015farabilirim. Peki \u00f6nce s\u0131k\u0131lmaman\u0131z ad\u0131na geyi\u011fi k\u0131sa&#8230;<\/p>\n","protected":false},"author":1,"featured_media":322,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54],"tags":[65,70,69,66,67,68],"class_list":["post-284","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programala-dilleri-ve-programlamaya-giris","tag-java","tag-java-giris","tag-java-ile-programlaya-giris","tag-java-nedir","tag-programlama","tag-yeni-baslayanlar"],"_links":{"self":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/comments?post=284"}],"version-history":[{"count":17,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/284\/revisions"}],"predecessor-version":[{"id":320,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/284\/revisions\/320"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media\/322"}],"wp:attachment":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media?parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/categories?post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/tags?post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}