📗

JavaSilverの勉強過程で新たに知ったことや覚えておくべきこと、気付いたことや疑問点をまとめる場所

2025/02/19に公開

この記事の概要

  • この記事は私のJavaSilver学習進捗に従いどんどん追記、改訂されます。

  • JavaSilverの資格取得のために以下のことをアウトプットし、復習用に整理します。
     - 新たに知ったこと
     - 覚えておくべきこと
     - 気付いたこと
     - 疑問点

  • 学習開始日:2025年2月14日

1章 簡単なJavaプログラムの作成

  • パッケージ宣言はソースコードの先頭行に記載すること。
  • ただし、コメントのみはパッケージ宣言よりも前に記述できる。
  • インポート宣言時にアスタリスク「*」を使用することで、そのパッケージに属するクラスをすべてインポートできる。
//コメントはパッケージ宣言よりも前に記述できる。
package sample; //パッケージ宣言はソースコードの先頭行へ
import aaa.*;
public class Test{
    // any code
}

2章 Javaの基本データ型と文字列操作

  • リテラルとは、ソースコード中に記述する値のこと。
  • 整数リテラルは10進数の他に2進数や8進数、16進数でも表現できる。それぞれ、接頭辞により何を表しているかが変わる。
  • 「0b」→2進数、「0」→8進数、「0x」→16進数
  • 整数リテラルには、見た目を整える目的の為にアンスコ「_」を使用できる。
    • アンスコ「_」はリテラルの先頭と末尾には記述できない
    • アンスコ「_」は記号の前後には記述できない。
      int   i = _123;        //NG
      int   i = 123_;        //NG
      float i = 3_.14F;      //NG
      long  i = 111111111_L; //NG
      int   i = 0x_9A;       //NG
      

3章 演算子と判定構造

  • Objectクラスのequalsメソッドは同一性を判定する。

    • オーバーライドされていないObjectクラスのequalsメソッドは「==」と全く同じ動作
    • 通常オーバーライドして使用する。後述するStringクラスのequalsメソッドも、オーバーライドしたもの
    //trueを返す場合
    Object obj1 = new Object();
    Object obj2 = obj1; // obj1とobj2は同じ参照を持つ
    System.out.println(obj1.equals(obj2)); // true
    
    //falseを返す場合① 異なるオブジェクトを比較した場合
    Object obj1 = new Object();
    Object obj2 = new Object();
    System.out.println(obj1.equals(obj2)); // false
    
    //falseを返す場合② nullと比較した場合
    Object obj = new Object();
    System.out.println(obj.equals(null)); // false
    
  • Stringクラスのequalsメソッドは同値性を判定する。

    //trueを返す場合① 文字列の内容が同じ場合
    String str1 = new String("hello");
    String str2 = new String("hello");
    System.out.println(str1.equals(str2)); // true
    
    //trueを返す場合② 同じ参照を比較した場合
    String str1 = "hello";
    String str2 = str1;
    System.out.println(str1.equals(str2)); // true
    
    //trueを返す場合③ 文字列リテラルが同じ場合
    String str1 = "hello";
    String str2 = "hello";
    System.out.println(str1.equals(str2)); // true
      
    
  • 同じ文字列を持つStringのインスタンスが複数あったとき、internメソッドは結局どこを参照するの?文字列はメモリ上のそれぞれ別の場所に保存されていると思うけど、そのうちのどれか?

⇒確認して整理する。

5章 配列の操作

  • 配列型変数は大カッコ「[]」を使って宣言する。
  • 大カッコはデータ型の後ろに書いてもいいし、変数名の後ろに書いてもよい。
  • 大カッコはデータ型と変数名でそれぞれ分けて記述してもよい。
int[] array;   //データ型の後ろに書いてもOK
int array[];   //変数名の後ろに書いてもOK
int[] array[][]; //データ型と変数名にそれぞれ書いてもOK。この場合は3次元配列となる。

Discussion