ホームページ  >  記事  >  Java  >  Java データ型と文字セットの概要

Java データ型と文字セットの概要

不言
不言転載
2018-11-16 15:45:593010ブラウズ

この記事は Java のデータ型と文字セットについて説明したもので、必要な方は参考にしていただければ幸いです。

データ型とは

簡単に理解すると、データの種類です。 ##################何?データはどのようにして型を持つことができるのでしょうか?データって0か1のバイトコードだけじゃないの?

はい、コンピューターには 0 か 1 しか保存できません。つまり、ストレージの観点からは、それらに型などというものは存在しません。 0 または 1 だけ。バイトコードで構成されます。

なぜデータ型があるのでしょうか?

型は、理解と計算を容易にするためにデータをさまざまな型に分割するプログラマ (人) に相当するためです。

例:

 int a = 0x61;
 char b = 0x61;
 float c = 0x61;
 double d = 0x61;
 System.out.println(a+" "+b+" "+c+" "+d);

出力結果は次のようになります: 97 a 97.0 97.0。

4 つの異なるタイプの変数には同じバイトコード 0x61 が与えられますが、実際の出力は異なります。なぜ?

プログラマ (人々) が 16 進数 0x61 に型を割り当てたり、意味を与えたりしているからです。

なぜタイプ (意味) を割り当てる必要があるのでしょうか?その目的は、0 または 1 のバイトコードでより具体的なものを表現できるようにするか、人間が理解できるものにマッピングできるようにすることです。

型を設定しなくても、0x61 という数字に対してさまざまな操作を行うこともできます。 。 。どういう意味ですか?

整数の加算、減算、乗算、除算には実質的な意味がありますが、文字を小文字から大文字に変更することには意味がありません。 。人に理解できないものには意味がありません。

#それでは、データ型とは何でしょうか?

これは、人々がデータをどのように見るか、人々がデータを理解する方法、そして人々がデータを指定する方法です。

データに型がある理由は、データ自体ではなく人々の意見に依存します。データ自体には型がありません。

#上記のプログラムの出力が異なるのはなぜですか?

出力とは、データを

人が望む形式に変更して、他の人に表示することだからです。 コンピューターは人々がどのような形式を望んでいるのかをどのようにして知るのでしょうか?
データ型別!

0x61 が int 型として指定されると、コンピューターは 10 進数 6*16 1 = 97 を表示する必要があることを認識します。

0x61 が char 型として指定されている場合、コンピュータは、10 進数 6*16 1 = 97 で表される ASCII コードに対応する文字「a」を表示する必要があることを認識します。 コンピュータでは同じバイトコード 0x61 ですが、人間がタイプを指定するため、コンピュータは異なる結果を返します。

#コーディングとデコーディングの観点から


エンコーディングとは、情報をある形式または形式から別の形式または形式に変換することです。プロセスの形式であるデコードは、エンコードの逆です。

具体的に言うと、エンコードは人間が理解できるものをコンピュータが理解できるものに変換すること、デコードはコンピュータが理解できるものを人間が理解できるものに変換することです。

コンピュータは何を理解するのでしょうか?私たちは0と1しか理解できませんが、人間はどうなのでしょうか?ほとんど全て。
両者間の変換のための

ブリッジ

とは何ですか?

はデータ型です。

データの種類を規定し、人間が理解できるものをコンピュータが理解できるバイトコードに変換する方法を規定するだけで、この変換を完了できます。

例:

97という数字は、人間は10進数として理解できますが、コンピュータは0か1しか理解できません。では、コンピュータに97を理解させるにはどうすればよいでしょうか?コード97。どうやって?バイナリ エンコードを使用すると、97 は数値 1100001 になります。このようにして、コンピュータは理解できる (記憶し、計算できる) のですが、人はバイナリ コード 1100001 をどのように理解するのでしょうか?コンピュータが「1100001」という数字を表示すると、それをバイナリデコードすると「97」となり、人間がそれを理解できるのは、バイナリのエンコードとデコードのルールが規定されており、整数であると規定されているからです。 「a」という文字については、人は小文字の a として理解しますが、どうすればコンピュータに理解できるでしょうか。それともコーディング?どのようなコードですか? ASCII コードをコーディングします。「a」の ASCII コードは 1100001 です。このようにして、コンピューターは 1100001 を理解して デコードすることができます。 ASCII デコードは「a」になるので、人々は再び理解できるようになります。 。 異なるものは、異なるエンコード方法を使用すると同じバイナリ コードを取得する可能性があり、異なるデコード方法を使用すると、同じバイナリ コードが異なるものとして理解される場合があります。

そもそもデータ型とは何でしょうか?

は、実際にはデータをエンコードおよびデコードする方法です。 ! !

最後に、文字セットとは何ですか?

は文字をエンコードおよびデコードする方法です。

異なる文字セットは、文字のエンコード (文字を 2 進数に変換する) 方法とデコード (2 進数を文字に変換する) 方法を指定します。

System.out.println("你好".getBytes("utf-8") );
System.out.println("你好".getBytes("gbk") );
出力:
[B@677327b6[B@14ae5a5

異なる文字セット (utf-8 と gbk) が同じ中国語を入力していることがわかります。 「Hello」は別のバイナリ コードにエンコードされます。

もちろん、上記の出力は 0 と 1 ではなく、明らかにバイナリ コードではありません。 。 。これは、コンピュータがバイナリ コードを表示するときに ASCII コードを使用してバイナリ コードをデコードするためです。 。 。すべて ASCII 文字に変換されました。なぜ?デコードしたくないのですが、displaydecoding です! ! !

もちろん、いくつかの手法を使用してバイナリ文字列を出力することもできますが、これは重要ではないため、ここでは説明しません。

最後の 1 つ

#コンピュータが最初にエンコードとデコードを適用したのはどの分野ですか?


アセンブリ言語!

コンピュータのコマンドもバイナリ コードです。アセンブリ言語の英語の単語をバイナリ コードに変換することはエンコードであり、バイナリ コードをアセンブリ言語の単語に変換することはデコードです。


以上がJava データ型と文字セットの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。