13 Temmuz 2007 Cuma

Javada temel bir kac sey

Java hakkında kısaca bir kaç temel bilgi verelim bu yazıda, başlangıç olsun.
Java teknolojisi nasıl çalışıyor? Bir Java kodumuz hani aşamalardan geçiyor ? Farklı olan yapı ne?
Kisaca bahsedecek olursak Java da kaynak kodumuzu .java uzantili text dosyalarina yaziyoruz ve derleyici(javac compiler) bu dosyalarimizi .class uzantili Java'ya ozel bi dosya formatina ceviriyor. '.class' uzantili dosylarda "bytecode" dedigimiz JVM makina diline ait ifadeler var. Ve Java kodunu en son islettigimizde JVM bu .class uzantili dosyalari isletime aliyor. JVM nin her turlu platformda bulunabilmesi ve kolaylikla kurulabilmesi sizin java programinizin farkli farkli ortamlarda da "uygulanabilir" olmasini sagliyor. Javanin slogani da bu zaten :) "Bi kere yaz, her yerde calisir"
Java platformu(JRE + API) hakkında temel kısa bilgiler için :

http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html

Javada temel programlama bilgileri icin Lewis&Loftus un "Java Software Solutions" adli kitabi bence cok yardimci olacaktir. Cok yalin ve guzel bir anlatimi var ve anlamaniz icin iyi bi ingilizcenizin olmasi da gerekmiyor. Bilkent Universitesinde Java dersinde de bu kitap tercih ediliyor. Ben cok istifade etmistim acikcasi. Benim onerim bu ama pdf i var mi bilmiyorum. Aramak lazim :)

Java'da Garbage Collector
Javanın farklı yapılarından biri de Garbage Collector(GC).
C de program yazarken mesela kullandıgınız bellek alanını (memory allocation) eger free etmezseniz bazı döngülerde hata alabilirsiniz
Ve belleğin verimsiz kullanılmasına sebep olursunuz.
O yüzden programcı aldığı her bellek alanını ""free" etmekle yükümlüdür aynı zamanda.
Hatta bulunması zor olan hatalardan biri de bu tip hatalardır. Programcı kullandıgı bellek alanını free etmeyi eğer bi yerde unuttuysa ve bunu farkedemzse hatayı başka yerlerde arayarak ciddi uğraşlar verebilir çoğu zaman. (Ben çok tecrübe ettim :> )
Java da garbage collector mekanizması ile programcı bellek alanıyla ugrasmaktan kurtulmuş oluyor.
GC JVM icersinde JVM(Java Virtual Machine-Java uygulamanizin her ortamda calismasina olanak saglayan sanal makina) tarafindan calistirilan bir mekanizma. Arka planda çalışan garbage collector kullanılmayan, program içerisinde bi yere bağlantısı kalmayan(referansı olmayan) nesneleri kendisi otamatik siliyor.
O yüzden "free()" işlemine gerek kalmıyor. Kısaca Java daki "çöpçü" oluyor garbage collector :)

Biraz ayrintiya inerek benim de yeni okudugum GC nin yonetimi hakkinda bi kac seyden daha bahsedelim burda.
Suncucu tabanli gelsitirilen Java uygulamalarinda, uygulama sunucusunun uzerindeki yuku azaltmak icin GCnin calismasinin kontrol edilmesi gerekebilir. Yani GC nin cok sik devreye girip fazla yuke sebep olmamasi icin bazi onlemler almak mumkun (Bazi JVM parametrelerini kullanmak ve buyuk boylu Java nesnelerinin kullanimindan uzak durmak gibi). Ben bunu hic tecrube etmedim ama asagidaki linkte GCViewer in kullanimiyla GCnin performansi nasil etkileyebileceginin grafiksel olarak izlenmesi hakkinda Mustafa Tan in yazdigi guzel bir yazi mevcut :
(GCViewer, JVM de kullanilan hafizayi ve GC'nin çalisma sıklığını izliyebilecegimiz guzel bir uygulama)

http://mustafatan.blogspot.com/2007/07/java-hafza-problemleri-ve-gcviewer.html

[ "Adama bak yaa 'Javada temel bilgiler' diye başlık atıyo, gelmiş bi de GCViewer'dan bahsediyo" diyebilirsiniz ama demeyin :) ]

10 Temmuz 2007 Salı

Turkcell "macerası" :)

Turkcell'de staj yapıyorum bu yaz. Ama stajdan daha çok bi macera gibi. Su anda da mesai bitimi yaklaşıyo ve Turkcellden "bizim mekan"dan yazıyorum En alt kattaki stajyer eğitimlerinin yapıldığı bazen cok sıcak bazen de soguk(-_-) toplantı odasından. Böyle diyorum çünkü odadaki klimayla alakalı fenaaa bi durum bu :)

Yaz geleli çok oldu. Okul bitti ve ben ilk defa bu yaz meslek adına ciddi bir ugras vermekteyim Genelde yaz dönemlerim fazla rahat geçerdi onceden normal olarak Ama artık öyle olmayacak. 3. sınıf bitmek uzere Ogrencilik bitmeye yaklasti.

Burda Turkcell'de gerçekten sıcak bi ortam var. İnsan ilişkileri çok iyi, bi samimiyet var ve her şeyden önemlisi ilgi, uğraş ve verilen değer cok güzel. Kaç kurum vardır ülkemizde stajyerleriyle bu şekilde ilgilenen bilmiyorum.
Bunları biraz da stajyer adayları için yazıyorum diyebilirim.
Turkcell'de stajyerlere asgari ücret veriliyor mesela. Çoğu yerde yok ücretli uygulama. Extra olarak yemekler için verilen ticketlar var(Aylık 240 ytl civarı gibi)
Ve Turkcellin servis ağı çok geniş İstanbulun hemen hemen her yerine servisleri var. Mesai saatleri de 8.00-17.00 arası. Ctesi Pazar tatil tabii.

Stajyer olarak öğleden önce mesai, öğleden sonra da Oracle eğitimleri var burda. Eğitimlerden sonra mesaiye devam.. Ben Platform Services bölümünde çalışıyorum ve Gebze'deyim.. Asn.1 Compiler geliştiriyorum. Bana verilen iş bu. Bir çok open source asn.1 compiler var ama java'da yazılmış open source iyi bir compiler yok. Amaç ortaya böyle bir yazılım çıkartmak. Şimdilik iyi gidiyor çalışmalarım.

Benim durumum genelden biraz farklı burda.. Çünkü Turkcell Tech (Turkcell Teknoloji) stajyeriyim ben ve öğleden önce taaa Gebzedeyim. Turkcell Tech Gebze'de yapılanıyo yeni yeni. Öğleden sonra da Gebzeden Kartala geliyoruz stajyer eğitimleri için. "Taaa Gebze" diyorum çünkü sabahları saat 5.30'da kalkmam gerekiyo Gebze servisini yakalayabilmek için Fatih'ten

Turkcell stajı hakkında anlatacak çok şey olur aslında daha Vakit ayırabilirsem yazarım

7 Temmuz 2007 Cumartesi

Merhaba..

Yeni olusturdum blogumu..
Zamanla yazarım diye umuyorumm