最近、インタビュアーにオブジェクトとプリミティブの違いを定義するように依頼しました。すべての言語がプリミティブで始まることを考えると、奇妙な質問のように見えました。この質問にどのように答えましたか?
また、このインタビューはフロントエンドの開発職向けであったため、彼が言及していた言語(おそらく)はJavaScriptであったことにも注意してください。
プリミティブは、他のデータ型で構成されておらず、これ以上分解できないデータ型です。それはプログラミングシナリオのアトムのようなものです。 atom atomは物質の基本単位であり、そこから導き出せるものは何もないためです。
つまり、Cのint
を小さなデータ型に分解することはできません。一方、オブジェクトは、複数のプリミティブタイプで構成される分子と考えることができます。たとえば、string
はC++標準ライブラリの一部として提供されます。ただし、これはオブジェクトであり、内部でより小さなデータ型で構成され、メソッドが含まれています。
すべてのオブジェクト指向言語がクラスベースであるとは限らない(Javascriptなど)ことに注意することが重要です。JavaScriptでクラスを定義することはできないため、オブジェクトはここではまったく異なります。 JavaScriptのすべてがオブジェクト(Rubyも)であるにもかかわらず、Numberオブジェクトは実際には内部プリミティブのラッパーです。
Javaの視点から:
プリミティブは、int、string(組み込みデータ型など)のようにこれ以上分割できないと思います。逆に、オブジェクトは配列や構造のような小さな断片に分割できます。
私は学生です。これは私の意見です。
私の答えが間違っていると思われる場合は、私を修正できます。
ありがとう
プリミティブ
1)プリミティブデータタイプは、少量のメモリを使用して単一のデータ項目を表します。同じプリミティブ型のすべてのデータは同じサイズです。
例:プリミティブ型intは、32ビットを使用する整数を表します。 int型のすべての変数は32ビットを使用します。
2)Javaには、byte、short、int、long、float、double、char、およびbooleanの8つのプリミティブデータタイプしかありません。 Javaプログラムは他のプリミティブデータ型を定義できません。
オブジェクト
オブジェクトは、データを処理するためのメソッド(小さなプログラム)とともに大量のデータを含む可能性のある大きなメモリの塊です。 Javaには標準で付属しているオブジェクトクラスが数千あり、プログラマは簡単に追加のクラスを作成できます。 (何千もの標準クラスがありますが、このコースでは、十数ほどのクラスに慣れる必要があります。)