LoginSignup
4
6

More than 5 years have passed since last update.

Java8 Silver試験の備忘録

Last updated at Posted at 2018-02-16

Javaで開発していても、良く知らずに使っている箇所が多い。

配列

初期化

int[] arrayInt = new int[2];
System.out.println(arrayInt .length); // 2が表示される
for (int i : arrayInt ) {
    System.out.println(i); // 0が表示される
}

String[] arrayStr = new String[2];
System.out.println(arrayStr.length); // 2が表示される
for (String str : arrayStr) {
    System.out.println(str); // nullが表示される
}
int[] arrayInt = new int[2] { 1, 2 }; // コンパイルエラー

参照渡し

int[] array1 = new int[1];
int[] array2 = { 1, 2, 3 };
array1 = array2;
for (int i : array1) {
    System.out.println(i); // 1, 2, 3と表示される
}

コピー

int[] array1 = { 1 };
int[] array2 = array1.clone();
array2[0] = 2;
System.out.println(array1[0]); // 1が表示される
System.out.println(array2[0]); // 2が表示される

比較

StringBuilder sb = new StringBuilder(5);
String str = "";
System.out.println(sb.equals(str)); // 参照の比較のためfalse
System.out.println(sb.toString().equals(str)); // 値の比較のためtrue

ポリモーフィズム

interface A {
    void test1(); // publicが自動でつけられる
    void test2(); // publicが自動でつけられる
}

abstract class B implements A{
    abstract void test3(); // publicは自動でつけられない
                           // privateの修飾は不可
}

class C extends B{
    public void test1(){} // 定義しないとコンパイルエラー
    public void test2(){} // 定義しないとコンパイルエラー
    public void test3(){} // 定義しないとコンパイルエラー
}

public class test {
    public static void main(String[] args) {
        A a = new A(); // コンパイルエラー
        B b = new B(); // コンパイルエラー
        C c = new C();
    }
}

オーバーロード

public static void main(String[] args) {
    test(1, 2);
}

private static void test(int... i) {
    System.out.println("A");
}

private static void test(int i, int j) { // 呼び出される
    System.out.println("B");
}

ループ

whileの省略形式

int i = 0;
do
    System.out.println("A");
    i++; // 省略形式では、複数行書けないためコンパイルエラー
while (i < 3);

forの初期化

for (int i = 0, j = 0; i < 5; i++) {
    System.out.println("A");
}

for (int i = 0, int j = 0; i < 5; i++) { // コンパイルエラー
    System.out.println("A");
}
4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6