1. Bellek nasıl düzenlenir?
Her bilgisayarın dahili belleği vardır . Nedir? Hangi özelliklere sahiptir? Ve en önemlisi, bize nasıl bir faydası var?
Her program ( Java ile yazılmış programlar dahil) çalıştırılmadan önce ana belleğe yüklenir . Ana bellek, program kodunu (işlemci tarafından yürütülen) ve ayrıca program verilerini (yani programın kendisinin belleğe koyduğu verileri) içerir.
Hafıza nedir ve nasıldır?
Bir Excel elektronik tablosu hücrelerden oluşur . Her hücrenin kendi benzersiz tanımlayıcısı vardır ( A1
, A2
, ... B1
, B2
). Bir hücrenin tanımlayıcısını biliyorsanız , o zaman hücreye her zaman bir değer yazabilir veya orada saklanan değeri alabilirsiniz. Bilgisayar belleği çok benzer bir şekilde düzenlenir.

Program ve program verileri , program çalışırken hafızada saklanır . Tüm bilgisayar belleği, bayt adı verilen küçük hücrelerden oluşur . Her hücrenin kendisiyle ilişkilendirilmiş benzersiz bir tanımlayıcısı veya numarası vardır: 0
, 1
, 2
, 3
, ...; (numaralandırma sıfırdan başlar). Bir hücrenin numarasını biliyorsak , ona veri kaydedebiliriz. Veya ondan veri alın. Bazı hücreler programın kodunu, yani işlemci için komut dizisini saklar. Diğerleri program tarafından kullanılan verileri saklar. Hücre numarasına hücre adresi de denir .
İşlemci, belleğe yüklenmiş komutların nasıl yürütüleceğini bilir. Hemen hemen tüm işlemci komutları , bazı hücrelerden veri almak , onlarla bir şeyler yapmak ve sonucu diğer hücrelere göndermek gibi bir şeydir .
Karmaşık ve kullanışlı komutlar elde etmek için yüzlerce basit komutu birleştiriyoruz.
Kodda bir değişken bildirildiğinde, halihazırda kullanılmayan bir bellek parçası onun için ayrılır. Bu genellikle birkaç bayttır. Bir değişken bildirmek, programın içinde depolayacağı bilgilerin türünü belirtmenizi gerektirir: sayılar, metin veya diğer veriler. Ne de olsa, depolanacak bilginin türünü bilmiyorsanız, değişken için ne kadar büyük bir bellek bloğunun ayrılması gerektiği açık değildir.
Bilgisayar çağının şafağında, programlar doğrudan bellek adresleriyle çalışıyordu, ancak daha sonra programcıların rahatlığı için hücrelere adlar verilmeye başlandı. Benzersiz bir değişken adı, her şeyden önce programcıların rahatlığı içindir, çünkü program düz bellek adreslerini gayet iyi işler.
2. Hafızadaki değişkenler
Toplamda, Java'nın tamsayıları depolamak için 4 veri türü vardır. Bunlar byte
, ve . short
_int
long
Tip | Bayt cinsinden boyut | Türün adının kökeni |
---|---|---|
byte |
1 |
bayt , bit ile karışıklığı önlemek için ısırmanın kasıtlı olarak yeniden yazılmasıdır |
short |
2 |
Kısa Tamsayı için Kısa |
int |
4 |
Tamsayı için Kısa |
long |
8 |
Uzun Tamsayı için Kısa |
Ek olarak, Java'nın gerçek sayılar için 2 türü vardır: float ve double:
Tip | Bayt cinsinden boyut | Türün adının kökeni |
---|---|---|
float |
4 |
Kayan Noktalı Sayının kısaltması |
double |
8 |
Double Float'ın kısaltması |
Program yürütme, bir değişken oluşturmak için bir komuta her ulaştığında, bunun için küçük bir bellek bloğu ayrılır (boyut, değişkenin türüne bağlıdır).
Java programlarının doğrudan belleğe erişmesine izin verilmez. Bellekle yapılan her türlü çalışma yalnızca Java sanal makinesi aracılığıyla gerçekleşir.
3. String
Hafızadaki tip
Tür String
, yalnızca bir veri türü değil, tam teşekküllü bir sınıf olduğu anlamına gelen büyük miktarda veri depolayabilir.
Nesne String
, metnin depolandığı başka bir bellek bloğunun adresini saklayan tahsis edilmiş bir bellek bloğuna yerleştirilir.
Değişken baytları int
a
kaplar 4
ve değeri depolar 1
.
Değişken baytları int
b
kaplar 4
ve değeri depolar 10,555
. Binlik ayırıcı olarak virgül kullanıyoruz. Ve ondalık ayırıcı olarak nokta kullanıyoruz.
Değişken baytları double
d
kaplar 8
ve değeri depolar 13.001
.
Değişken baytları String
str
kaplar ve metni içeren bellek bloğunun ilk hücresinin adresi olan 4
değeri saklar .G13
Bir metin, String
object
ayrı bir bellek bloğunda saklanır. İlk hücresinin adresi değişkende saklanır str
.
4. Programlamada numaralandırma neden sıfır ile başlar?
İnsanlar genellikle programcıların neden neredeyse her zaman sıfırdan saymaya başladığını merak eder. Gerçek şu ki, sıfırdan saymanın daha uygun olduğu birçok durum vardır (tabii ki, sıfırdan saymanın daha uygun olduğu durumlar da vardır 1
).
Bunun en basit örneği bellek adreslemedir. Değişkeninize bellek baytları tahsis edilmişse ve bunun ilk baytın adresi olduğunu 4
biliyorsanız , o zaman her baytın adresi nedir? , , , . Bu kadar basit, , , , dizinleriyle erişilebilen bir bayt grubumuz var .X
X+0
X+1
X+2
X+3
0
1
2
3
Bir veri bloğu içinde göreceli bir adres düşündüğümüzde, anlamlı olan sıfırdan indekslemedir. Sıfırdan saymanın temel nedeni budur .
GO TO FULL VERSION