🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

845閲覧

String型とchar型の使いわけについて。

konkon.gitsune

総合スコア16

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/10/08 08:57

現在、Javaの研修を受けているものです。
そこで基本型を学習する中で文字リテラルを扱うchar型を学びました。
・char型は文字リテラルを格納できる型
・String型は文字列リテラルを格納できる型
と説明を受けました。
String型でも文字列リテラルを格納することはできると理解しているのですが、使い分ける理由がわたしの中で、曖昧です。
ご存じの方いらっしゃいましたらご教授いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

全部String型にしてしまっても問題無い気がするが、どうなのか?という質問だと理解しました。

実際、全てString型にしてもコーディングは可能でしょう。
既存のAPIと絡めるときに多少面倒になることは予想されますが、不可能では無いです。


ただし、敢えて表現力の狭い型を使用する意義は存在します。

例えば、intよりdoubleの方が数値の幅が広いですが、安直に代替することは避けるべきです。
なぜなら、変数が離散的/連続的な値を取ることを表明できるからです。

  • 人数なら整数型が適切でしょう。
  • 身長なら、たまたま○○cmジャストだったとしても、浮動小数点型を使うのが適切です。

char/Stringについても同じです。
文字を扱うのか、文字列(ときに長さ1になることもある)を扱うのかに依って使い分けます。

  • 頭文字ならば、char型が適切です。
  • ユーザ名ならば、中には x みたいな名前もあるかもしれませんが、String型が適切です。

メモリも若干節約できますが、余程ひっ迫した環境で無い限り意識することは少ないでしょう。

余談

Pythonのように文字型を持たない言語も存在します。
次のように遊べて楽しい(?)です。

Python

1>>> "A" # 'A'と書いても全く同じ意味 2'A' 3>>> "A"[0] 4'A' 5>>> "A"[0][0] 6'A' 7>>> "A"[0][0][0] 8'A' 9>>> "A"[0][0][0][0] 10'A'

投稿2019/10/08 09:30

LouiS0616

総合スコア35668

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konkon.gitsune

2019/10/16 03:13

ご教授ありがとうございます! 使い方については最終的にメモリに関係してくるのですね。
LouiS0616

2019/10/16 03:47

『意識することは少ない』というのは、『気にしなくて良い』という意味です。
konkon.gitsune

2019/10/16 04:05

スタック領域か、ヒープ領域かでメモリの管理場所が違うという認識でよろしいでしょうか。
LouiS0616

2019/10/16 04:13

そのような違いがあったとしても、PCの資源が潤沢である今日ではコーディングに支障が出ないということです。いわゆる富豪プログラミングで問題ありません。 ただし、組み込みなどメモリに気を遣う環境ではこの限りでは無いです。
konkon.gitsune

2019/10/16 11:42

なるほど!勉強になります! ご教授ありがとうございます!
guest

0

文字リテラルと
文字列リテラルは別のものです。

さらにいうと、
文字リテラルと
文字数(長さ)が1の文字列リテラルは、同じではありません。

投稿2019/10/08 09:00

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問