web-dev-qa-db-ja.com

Stringは、AndroidまたはJavaのプリミティブまたはオブジェクトですか?

Android API http://developer.Android.com/guide/topics/data/data-storage.html#pref

それは言う:

共有設定を使用すると、プリミティブデータタイプの永続的なキーと値のペアを保存および取得できます。 SharedPreferencesを使用して、任意のプリミティブデータ(ブール値、浮動小数点数、整数、長整数、文字列)を保存できます。

文字列はプリミティブデータ型ですか、それともオブジェクトですか?

19
Krishna Prasad

Javaプログラミング言語を考慮する限り、

プリミティブ型は言語によって事前定義されており、予約済みキーワードによって名前が付けられています。

上記の8つのプリミティブデータ型に加えて、Javaプログラミング言語は、Java.lang.Stringクラスを介して文字列の特別なサポートも提供します。

-から Java™チュートリアル-プリミティブデータ型

したがって、Javaの本のように、キーワードでもプリミティブでもありません。 SharedPreferencesは依然としてプリミティブの1つと呼ぶかもしれませんが、それはJavaの本からのものではないため、int、float、charなどの基本的な型のセットの1つであることが原因である可能性があります私たちは遭遇します。

19
Swapnil

JLSから直接:

A string literal is a reference to an instance of class String

つまり、それはnotプリミティブです。

20
Narendra Pathai

Android SharedPreferencesを使用する場合、getStringとputStringを(SharedPreferences.Editorと共に)使用します。この場合、両方ともJava String Objects。Javaドキュメンテーションは、文字列は技術的にはプリミティブではないことを説明していますが、文字列は構文的に1つとして扱われることが多く、普及しているため、プリミティブと呼ばれることがあります。Androidおそらくこの定義を使用します( http://docs.Oracle.com/javase/tutorial/Java/nutsandbolts/datatypes.html)を参照

3
Aea

文字列は、AndroidまたはJava it is n't)のオブジェクトです。文字列を使用して保存できます。 SharedPreferences。

3
Ajit

文字列は、Stringクラス(Java.lang.String)のオブジェクトです。他のプログラミング言語では、ご存知のように、文字列は言語を通じて提供されなかったため、ユーザーは文字の配列を使用して文字列を表す必要がありました。これが、文字列がプリミティブデータ型ではなく、無数の属性(int長、char [position]など)である理由です。

文字列の重要性のため、Javaの作成者は、文字列を_String message = ḦEllo World;_で簡単に作成できるようにしました。何も問題はありません。多くの人がStringクラスのオブジェクトを(インスタンス化)そのように...しかし、次のように言うこともできます..._char[] arr = {'a','b','c'};_ String myString = new String(arr);これは_String myString = ¨abc¨;_と同じですこれは、前述のように、文字列は単なる一連の文字だからです。 Stringクラスの内部には、文字の配列をパラメーターとして受け入れるコンストラクター(新しいキーワードに続き、クラス名と一致するもの)があります。

短い答え:文字列はクラスプリミティブデータ型ではありません。文字列オブジェクトを作成するとき、文字列クラスをインスタンス化しています

1
Brenann

Stringはオブジェクトですが、SharedPreferencesで使用できます。文字列もキーと値のペアとして保存されます

0
pvn