1. 記憶がどのように整理されるか
すべてのコンピュータには内部メモリが搭載されています。それは何ですか?どのような特性があるのでしょうか? そして最も重要なことですが、それは私たちにどのような利益をもたらすのでしょうか?
すべてのプログラム ( Java で書かれたプログラムを含む) は、実行前にメイン メモリにロードされます。メイン メモリには、プログラム コード (プロセッサによって実行される) とプログラム データ (つまり、プログラム自体がメモリに格納するデータ) が含まれています。
記憶とは何ですか、またそれはどのようなものですか?
Excel スプレッドシートはセルで構成されます。各セルには独自の一意の識別子( A1
、A2
、 ... B1
、B2
) があります。セルの識別子がわかっている場合は、いつでもセルに値を書き込んだり、そこに格納されている値を取得したりできます。コンピューターのメモリも非常によく似た方法で構成されています。
プログラムとプログラム データは、プログラムの実行中にメモリに保存されます。すべてのコンピュータ メモリは、バイトと呼ばれる小さなセルで構成されています。各セルには、固有の識別子または番号が関連付けられています: 0
、1
、2
、3
、 ...; (番号はゼロから始まります)。セルの番号がわかれば、そこにデータを保存できます。またはそこからデータを取得します。一部のセルにはプログラムのコード、つまりプロセッサに対する一連のコマンドが格納されます。プログラムで使用されるデータを保存するものもあります。セルの番号はセルアドレスとも呼ばれます。
プロセッサは、メモリにロードされたコマンドを実行する方法を知っています。ほとんどすべてのプロセッサ コマンドは、いくつかのセルからデータを取得し、それに対して何かを実行し、その結果を他のセルに送信するようなものです。
何百もの単純なコマンドを組み合わせて、複雑で便利なコマンドを作成します。
変数がコードで宣言されると、まだ使用されていないメモリのチャンクがその変数に割り当てられます。通常、これは数バイトです。変数を宣言するには、プログラムが変数に格納する情報の種類 (数値、テキスト、その他のデータ) を指定する必要があります。結局のところ、保存する情報の種類が分からない場合、変数にどのくらいの大きさのメモリ ブロックを割り当てる必要があるのかが明確になりません。
コンピューター時代の黎明期、プログラムはメモリーアドレスを直接操作していましたが、その後、プログラマーの便宜を図るために、セルに名前が付けられるようになりました。プログラムはプレーンなメモリ アドレスを適切に処理するため、一意の変数名は何よりもプログラマの利便性を考慮して付けられます。
2. メモリ内の変数
Java には、整数を格納するためのデータ型が合計 4 つあります。これらはbyte
、、、、short
およびint
ですlong
。
タイプ | バイト単位のサイズ | 型名の由来 |
---|---|---|
byte |
1 |
byte はbit との混同を避けるために、bite を意図的に書き換えたものです。 |
short |
2 |
短い整数の略 |
int |
4 |
整数の略称 |
long |
8 |
長い整数の短縮形 |
さらに、Java には実数として float と double の 2 つの型があります。
タイプ | バイト単位のサイズ | 型名の由来 |
---|---|---|
float |
4 |
浮動小数点数の略称 |
double |
8 |
Double Floatの略称 |
プログラムの実行が変数を作成するコマンドに到達するたびに、小さなメモリ ブロックが変数に割り当てられます (サイズは変数のタイプによって異なります)。
Java プログラムはメモリに直接アクセスすることはできません。メモリを使用するすべての作業は、Java 仮想マシンを通じてのみ行われます。
3.String
メモリ内のタイプ
このString
型は大量のデータを格納できます。これは、それが単なるデータ型ではなく、本格的なクラスであることを意味します。
オブジェクトString
は、テキストが格納されている別のメモリ ブロックのアドレスを格納する、割り当てられたメモリ ブロックに配置されます。
変数はバイトをint
a
占有し4
、値を格納します1
。
変数はバイトをint
b
占有し4
、値を格納します10,555
。千の位の区切り文字としてカンマを使用します。また、小数点の区切り文字としてピリオドを使用します。
変数はバイトをdouble
d
占有し8
、値を格納します13.001
。
変数はバイトをString
str
占有し、テキストを含むメモリ ブロックの最初のセルのアドレスである4
値を格納します。G13
のテキストはString
object
メモリの別のブロックに保存されます。最初のセルのアドレスはstr
変数に格納されます。
4. プログラミングにおいて番号付けがなぜゼロから始まるのか
プログラマーがほとんどの場合、なぜゼロから数え始めるのか不思議に思う人がよくいます。実際のところ、ゼロから数えたほうが便利な状況はたくさんあります(もちろん、 から数えたほうが便利な状況もあります1
)。
最も単純な例はメモリのアドレス指定です。変数にメモリのバイトが割り当てられており、それが最初のバイトのアドレスであることが4
わかっている場合、各バイトのアドレスは何になるでしょうか? 、、、、。_ _ 非常に単純ですが、インデックス、、、を使用してアクセスできるバイトのグループがあります。X
X+0
X+1
X+2
X+3
0
1
2
3
データ ブロック内の相対アドレスを考えると、ゼロからインデックスを付けるのが理にかなっています。これが、ゼロからカウントする主な理由です。
GO TO FULL VERSION