iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

🦖Java 常見資料型態

常見的 Data type 有 :

Data Type discrption note
int Integer 整數,用 32bits 儲存數據 通常用這個
long 整數,用 64bits 儲存數據 大數據用
double 帶有小數的數,用 64bits 儲存數據,精準度較高 通常用這個
float 帶有小數的數,用 32bits 儲存數據
char Character 單一字母 用單引號 是 基本型別
String a sequence of characters 字串 用雙引號 是 class
boolean true 或 false 存進去變數
var variable 的縮寫
+可以用在任何資料型別 不能用在fields
不能用在沒有初始值的變數

1 Byte = 8 Bits
"bits" 是 "binary digits" 的縮寫是 0 or 1
1 bit ⇒ 0 or 1
2 bit ⇒ 00 or 01 or 10

是 2 的 31次方 ~ -2 的 31次方 -1
2的31次方等於 2,147,483,648
二進制的資料可以跟十進制做交換

每個**char**
都由一個16位元的Unicode字符表示,因此**char**
型別可以表示65536個不同的字符

public class Main {
    public static void main(String[] args) {
        char lastName = 'R';
        char firstName = 'asdfasg'; //error : Too many characters in character literal
        String myLastName = "Rose";
    }
}
public class Main {
    public static void main(String[] args) {

        var x; //error : Cannot infer type: 'var' on variable without initializer
        int x; //declare variable
				 int x, y, z; //允許多值宣告
        System.out.println("Hello world");

        x = 5; //assignment
        System.out.println(x);
    }
}

🦖Primitive 資料型態

由 Java 預定義並保留關鍵字命名,開頭都是小寫,不能與其他 Primitive 共享狀態。

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

除了以上 8 個 primitive ,其他都是 Non-primitive ( String、Array、Arraylist、Class... )

🦕Scope 變數的有效範圍

在 Java 當中,變數的有效範圍稱為 scope
A Java fiels 是 a variable inside a class
Fields 的 scope 是整個 Class
每個 field 可以設定 modifier 為 public 或 private

在 method 內 declare 的 variable 只能由大括弧之間的 code 找到
被稱為 local veriable 局部變數、本地變數、區域變數

在 For loop 內部寫的 for (int i = 0…)中的 i 也是一個 local variable

🦖 Static 靜態屬性、方法

在 Java 中,Static關鍵字用於內存管理

Static 共享給定 Class 所有物件共享相同的 variable、method,可以節省記憶體空間
可以透過 class 本身訪問 static variable 或執行 static method

顧名思義,他不是動態的,所有 Class 所有的 Object 相同,任何 Static variable 和 method 都屬於 Class 本身。

使用 Static variable 、method 時,不需要先從 Class 中 instantiate 任何 object

🦖 Java Modifiers 修飾符

修飾符 Modifier 提供有關 Class、variable 額外訊息,分成兩類 :

  1. 訪問修飾符 access modifier | 控制訪問級別
  2. 非訪問修飾符 Non-Access Modifiers | 不控制訪問級別,提供其他功能

✨Class 的 modifier 有以下兩個✨

  1. public | 屬於 access modifier ,可以被任何 class 訪問
  2. abstract | 屬於 Non-Access Modifiers,是一個受限的 class 不能用來創建 objcet ,目的是讓其他 class 繼承這個 class

✨可用於所有 method 和 variables 的修飾符✨

- fields are usually private
- methods are uaually public
  1. public ( access modifier ) | code 隨處可 access

  2. private ( access modifier ) | code 只能在自己的 class access

  3. protected ( access modifier ) | code 可以在同一個 package 和 subclass 訪問

  4. final (Non-Access Modifiers) | attributes 和 methods 不能被覆蓋/修改

    常跟 protected final 一起用 
    
  5. static (Non-Access Modifiers) | attributes 和 methods 屬於 class,而不是從這個 class 做 instantiation 的 object

    //常用
    public static final int I = 0;
    
  6. abstract ( Non-Access Modifiers ) | 只能用在 abstract class 中,並且只能用在 methods 上

public class Circle {
		//預設不知道是哪個
    double radius;
    public Circle(double) {
    }
}

🦕String 操作

有 index 的特性
for any String index 0, 1, 2, 3, … n-1 where n = String.length();

  • toLowerCase() | 轉大寫
  • toUpperCase() | 轉小寫
  • CharAt(int index) | 字串指定index上值、從0開始,超過範圍會error
  • indexOf() | 值在字串 index 的位置
  • Integer.parseInt() | 轉整數,若不行報err
public class Main {
    public static void main(String[] args) {
        String name = "wilson"; //index
        //method
        System.out.println(name.length());//6
        System.out.println(name.toLowerCase());//wilson
        System.out.println(name.toUpperCase());//WILSON
        //String 類的方法 charAt(int index) 返回字串指定 index value
        System.out.println(name.charAt(name.length()- 1));//n
        System.out.println(name.indexOf('s'));//3
        System.out.println(name.indexOf("il"));//1 從哪裡開始找到,而且要用""
        String age = "25";
        System.out.println(Integer.parseInt(age));//型態為 int 的 25
    }

🦕 Relational 關係 & Conditional 條件運算子

Java 當中的 Relational & Conditional 運算子 operator 會根據 operands 的值 return 一個 boolean (ture、false) 的值

常見的 Relational Operator :

  1. == 用於 primitive data type 的比較

    .equals() 用於 Non-primitive data type 的比較

    (單個 = 是 assignment 賦值)

  2. !=

    是一個 unary operator ( 負負得正 )

3.>、<
4. <=、>=

常見的 Conditional Operator :

  1. && (and 兩個都要)
  2. || (or 一個就好)
public class Barnd02 {

	public static void main(String[] args) {
		System.out.println((5 > 3) && (3 < 4)); 
		//可多個串在一起判斷邏輯
	}
}
public class Main {
    public static void main(String[] args) {
        System.out.println( "wilson" == "wilson" );//ture

        String a = new String ("Wilson");
        String b = new String ("Wilson");
        System.out.println(a == b); //false

        System.out.println("Wilson".equals("Wilson"));//ture
    }
}

上一篇
Day2|Java 基礎介紹
下一篇
Day4|Java OOP三大特性
系列文
【自我挑戰】CS61B 學習筆記4
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言