Java Basic

Null 和 0 的差異

List a == null是指List位址是空,而List a == 0 是List 位址為0xFDJJLJDKLASJDLA,空間已經開出來了裡面卻沒放東西

Prefix-increment and post increment 前置遞增和後置遞增的差異

public class UnaryOperatorDemo {
    public static void main(String[] args) {
        int age = 10;
        int var = age++;
        System.out.println(age);
        System.out.println(var);
    }
}

age++是後置算法,等同於

var = age;
age = age + 1;

age先指定給value後才遞增,所以輸出是11, 10

Reference

overloading & overriding

  • overloading: 藉由接收的參數串列之型態或數量之不同,以求達到多個函式可共用相同函式名稱 (回傳值可不同)。目的為降低所需命名的函式名稱

  • overriding: 子類別將父類別函式重新定義以符合自身所需(回傳值必須相同)。目的為利用父類別來動態操作子類別的函式,以達多型的效果。

記憶體

  1. Java中-128127之間在裝箱後會存在記憶體中被重複使用。以外的值則是程式在運行時才會建立一個新的物件

  2. 比較兩個物件大小必須使用equals(),使用==則是比較兩個物件是否比較到同一個參考名稱

Reference

Class使用方式比較

表格

Random

String 經常變動使用 StringBuilder

Comparator and Comparable

  1. Comparable: 類別本身繼承comparable,改寫compareTo,實現在類別內部

  1. Comparator: 指定comparator告知類別如何排序,改寫compare,實現在類別外部

  • 使用binarySearch必須指定Comparator

    Collection.binarySearch(Object, target, CompGPA)

Last updated

Was this helpful?