Net de iki çeşit veri tipi vardır:
- Değer tipleri (value type)
- Referans tipleri(reference type)
Değişkenler bellekte bulunan verilerdir. Bir değişkeni kullandığımız zaman o değişkenin bellekte bulunduğu yerdeki bilgiyi kullanırız. Değer tipleri belleğin "stack" bölgesinde saklanır ve veriyi direkt olarak bellek bölgesinden alırken referans tipleri bellekte "heap" alanında saklanır. Yani referans tipleri içinde veri değil bellekteki "heap" alanının adres bilgisini tutarlar.
int, double, float gibi veri tipleri değer tiplerine örnek gösterilebilir. Herhangi bir sınıf türü ise referans tipine örnek gösterilebilir. Değer tipleri birbirine eşitlenirken değişkenin barındırdığı değer bir diğer değişkene kopyalanır. Böylece iki farklı bağımsız değişken oluşur. Referans tipleri ise eşitleme sırasında değişkenlerin taşıdıkları veri değil "heap" bölgesinde işaret ettikleri adres kopyalanır. Böylece eğer iki referans değişkeni birbirine eşitledi isek ve daha sonra bunlardan birinde bulunan veriyi değiştirdi ise otomatik olarak diğer referans değişkeninin değeri de değişir. Çünkü adresde bulunan veri değişince bu adresi işaret eden iki değişkende yeni veri bilgisine ulaşır. Toplam 15 veri tipi vardır bunlardan 13"ü değer tipindedir, 2"si ise referans tipindedir.