【Java Silver】基本データ型・文字列操作【初心者】
初心者エンジニア(の末端)がJava Silverに挑戦するためにもくもく勉強します
Java Silverのテストにも出題される内容をまとめていますので、同じような境遇の方の参考になれば幸いです
Qiitaの方でも0からアプリケーション実装をしているので、
もし良かったら参考にしてください
こんな本で勉強しています
今回は、データ型と文字列操作の内容のトピックです
全体的な文法についてはQiitaにまとめていますので参考にしてください
qiita.com
リテラル
整数リテラルのルール
- 先頭が0bであれば 2進数 (0b0111111)
- 先頭が0であれば8進数 (0413)
- 先頭が0xであれば 16進数 (0x10B)
- 桁数の多い数値を見やすくするためにアンダーバーで区切ることができます
(注)リテラルの先頭と末尾・記号の前後には記述できません
//NG例 int a = _123_; float b = 3_.14_F; int h = 0x_52;
文字リテラルと文字列リテラル
- 文字リテラル(char型)は、'a'のようにシングルクォーテーションでくくります
- 文字列リテラルは、"abc"のようにダブルクォーテーションでくくります
- Unicodeの文字符号化形式を使った場合、\uの後に16進数の4桁をつけて、1文字を表すことができます
- 🌟char型の変数に代入できるのは、'でくくった文字リテラル、Unicode文字、0~65535までの数値
- nullは代入できません(nullは何も参照しないことを表す)
char c = "\u30A2"; //カタカナのア char d = 65; //アルファベットのA
識別子
- 識別子とは、変数やメソッド、クラスの名前のことです
識別子の命名規則
- 予約語を識別子に使うことはできません (for,void,intなど)
- 使える記号はアンダーバーと通貨記号($)のみ ※$以外の通貨記号は文字化けの可能性あり
- 数字から始めてはいけません (1abcなど)
- 識別子内に{}や.は使えません
//OK例 int $a = 123; float _0 = 3.14; //NG例 int ${a} = 123; float a.b = 3.14;
型推論(var)
- 変数宣言時にJavaがローカル変数のデータ型をいい感じに推測してくれます
- 'var a = 1;'のように宣言することで、コンパイル時にコンパイラが代入演算子=の右辺から変数の型を予測し、そのデータ型に置き換えます
- リテラルのみではなく、メソッドの戻り値を受け取る際に、メソッドの定義から戻り値の型推論を行うことができます ※ラムダ式では推論できない
- ジェネリクスのダイアモンド演算子(<>)では変数宣言時の型パラメータを参照します。 もし型情報がなかったら、Object型として型パラメータが与えられます
var e = new ArrayList<>(); var e = new ArrayList<Object>();
- varの型推論はローカル変数の宣言に使えて、フィールド変数には使えません
public class Main { //フィールド変数(メンバ変数) private String FieldNeko = "tama"; public static void main(String[] args) throws Exception { //クラスをインスタンス化してMethodを呼び出す new Main().Neko(); } public void Neko(){ //ローカル変数(このメソッド内でのみ有効)では型推論可能 var neko = 1; //フィールド変数はメソッド内からアクセス可(this.valueでもOK) System.out.println(FieldNeko); //tama } }
- 引数の型宣言にも型推論が使えません
//NG public class Neko{ public void test(var value) System.out.println(value); }
今日の問題
次のうち、コンパイルエラーにならないものはどれでしょうか
var a; var b = null; var c = () -> {}; var d = {1, 2, 3}; var e = new ArrayList<>();
- 正解はeでした!(Object型として型パラメータが与えられます)
本日もお疲れ様です