Basit anlamda;
Type Casting: Bir tipin doğal olarak uyumlu olduğu diğer bir tip olarak kullanımı. Örneğin, float bir sayıdır, int de sayıdır. Double da sayıdır. Elimizdeki bir int değişkeni/değeri float ya da double olarak kullanabilmemize casting diyoruz. Peki float değeri int olarak alabilir miyiz? Cevap evet. Yalnızca bir küçük "fakat" koşulu var. float kesirli bir sayı olduğundan 17,1 değeri varsa int kullanımda 0,1 değerini kaybediyoruz. Bu 0,1 direk kesiliyor. Aşağı ya da yukarı yuvarlamak için ceil, round gibi komutlar kullanılabilir. Casting kullanabileceğimiz diğer bir alan ise inheritance. Upcasting ve downcasting yapabiliriz. Upcasting ve downcasting için başka bir sorumuz zaten vardı onun linkinden bakabilirsiniz.
http://hasscript.com/38/upcasting-ve-downcasting-nedir
Type conversion: Programlamaya aşina arkadaşlar zaten string ile int farkını biliyordur.Ama bilmeyenler için küçük bir bilgi geçeyim. Elimizde değeri 50 olan iki değişken olsun birisi string birisi integer. Farkları nedir?
int i = 50;
String s = "50";
Farkları şudur. Int 50 dediğimiz değer sayı olarak 50 dir yani i + 5 dersek sonuç 55 çıkar. Matematiksel olarak normal.
String 50 dediğimiz değer ise 5 ve 0 harflerinin yanyana gelmiş halidir. Yani 50 değeri için iki karakter vardır. s + 5 dediğimiz zaman sonuç 55 değil 505 çıkacaktır. Keza 5, 0 değerlerinin yanına bir tane daha 5 geldi. Burdan anlayacağımız matematiksel işlemler için string 50 kullanamayacağız. Aynı şekilde metin işlemleri için de int 50 kullanamayız. Bunları birbirine cast etmek istersek bunların birbiri yerine kullanılamayacağına dair bir hata mesajı alırız.Bu yüzden bu değerleri birbirine dönüştürmemiz gerekir. Yani type conversion. Java için Integer.parseInt("50") dediğimiz zaman bize int bir değer dönderir bu da matematiksel olarak 50 olacaktır.
Kısaca, birbiri yerine kullanılabilen değişkenleri/değerleri kullanabilmek için yaptığımız işlem casting. Birbirinin yerine direk olarak kullanılamayan değerleri kullanılabilir hale getirdiğimiz işleme ise conversion diyoruz. Dikkat edilecek sorun "55a" yazan değer bir sayı değildir, bunu conversion işleminden geçirirsek yine hata alacağız.
İyi çalışmalar.