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_intlong

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).

Bir değişkenin adresi, ayrılan bellek bloğunun ilk hücresinin adresidir.

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. StringHafı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 akaplar 4ve değeri depolar 1.

Değişken baytları int bkaplar 4ve 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 dkaplar 8ve değeri depolar 13.001.

Değişken baytları String strkaplar ve metni içeren bellek bloğunun ilk hücresinin adresi olan 4değeri saklar .G13

Bir metin, String objectayrı 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 4biliyorsanız , o zaman her baytın adresi nedir? , , , . Bu kadar basit, , , , dizinleriyle erişilebilen bir bayt grubumuz var .XX+0X+1X+2X+30123

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 .