VerifyError
Core , Java / 04 Kasım 2019

Uzun bir aradan sonra merhaba değerli Java dostları, Yine kısa bir yazı ile karşınızda olacağım. Bu yazıda Java’ da nadir de olsa karşılaşabileceğimiz VerifyError hatası ile ilgileneceğiz. Malumunuz Java’ nın gerek derleme gerekse de koşma sırasında çok sıkı güvenlik önlemleri bulunuyor. VerifyError, runtime sırasında verilen bir hata ve temel iki nedeni var. Class dosyalarını oluşturduğunuz Java sürümü ile çalıştırdığınız Java sürümleri birbirileri ile uyumlu değildir. Örneğin Java 8 ile class dosyası oluşmuşken bunu Java 13 ile koşmaya çalışmak. Class dosyaları derlendikten sonra Java’ nın kurallarına aykırı olacak şekilde source code üzerinde değişiklik yapıp sadece bu dosyayı veya dosyaları derlemek. Örnek verecek olursak Paylas    

Java JIT Compiler
Core / 18 Ekim 2016

Merhaba değerleri Java dostları, bu yazımda adını sıkça duyduğumuz JIT compiler (Just In Time) hakkında birşeyler yazmak istiyorum. Compiler nedir olaylarına hiç girmek istemiyorum; çünkü bence bu ayrı bir yazı olabilecek kadar geniş bir konu. Bundan dolayı bu yazımda daha çok JIT compiler konusuna yoğunluşmak istiyorum. Malumunuz her yazılım dili bir compiler aracılığı ile makine diline dönüştürülür. Java gibi WORA – Write Once Run Anywhere – diller ise bu işi ara bir katman ile yapar. Java’ da yazdığımız kodun çalışma süreci şöyledir. Paylas    

Immutable Nesne
Core , Java / 28 Eylül 2016

Merhaba değerli Java dostları, bu kısa yazımda basit ama bir o kadar net anlaşılmayıp sadece terim olarak bilinen bir konuya değinmek istiyorum. Konumuz immutable nesne yani değişmez nesneler. Immutable nesne bir defa oluşturulduktan sonra değeri veya içerisindeki alanların değerleri değiştirilemeyen nesnedir. Peki böyle bir duruma niçin ihtiyacımız olur diye bir soru sorarsak, cevabı thread safe konusudur. Immutable nesnelerin değerleri değişmeyeceği için üzerinde kaç tane thread çalışırsa çalışsın hep aynı değerler üzerinden işlem yapılacaktır. Immutable nesnelerin dezavantajı ise, değerin değişmesini istiyorsak yeni bir nesne oluşturmamız gerekiyor. Bu da zaman, bellek ve garbage collector anlamında maliyet demektir. Şimdi örnek kodlarımızı inceleyelim. Sırası ile mutable yani değişen, immutable sınıflar ve Java içerisinden bir örnek. package anajavatica.object; Paylas