Deeper into String
メニューを表示するにはスワイプしてください
JavaにおけるStringの実際の仕組み
もともと、JavaのString値はcharの配列として保存されていましたが、後にbyteの配列に変更されました。その理由はメモリ効率です。charは2バイトを使用しますが、byteは1バイトを使用します。byteを使うことでメモリ使用量が大幅に削減され、文字列がより少ないスペースで保存できるようになりました。
では、Stringはどのようにしてさまざまな文字(非数値文字も含む)を扱うのでしょうか?その仕組みはchar変数と似ています。ASCII tableを利用し、数値データを特定の文字にマッピングすることで、String内で幅広い文字を表現できるようになっています。
次に、String値「Hello」を表す図を見てみましょう。
セルには型byteの要素が含まれており、これらはASCII tableから取得されます。コード上でも、byte変数に格納されている正確なString配列を確認できます。これはgetBytes()メソッドを使用して行えます。
Main.java
12345678910111213141516package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }
byte の値が上記の図に示されているものと同一であることが確認できます。さらに、興味があれば、ASCII テーブルを参照し、各要素のコードと対応する値を比較することもできます。
この byte[] オブジェクトから取得した String 配列を操作することができます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 1