[Java] Introduction to Java Programming 筆記: Chapter 2. 基礎
- 每個Java程式必須有一個
main
作為程式執行的入口。 System.out
指向輸出,System.in
指向輸入, 從鍵盤獲得輸入的方法:
import java.util.Scanner;
Scanner input = new Scanner(System.in);
double x = input.nextDouble(); // 讀取一個double
- 計算3個數的平均數的例子, ComputeAverage.java:
import java.util.*;
public class ComputeAverage {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three numbers: ");
double num1 = input.nextDouble();
double num2 = input.nextDouble();
double num3 = input.nextDouble();
System.out.println("The average of three numbers: " + (num1 + num2 + num3) / 3);
}
}
- 下面的兩種寫法,沒有任何效能差別:
import java.util.Scanner;
import java.util.*;
Java的識別符號可以有
$
字元,但是不要使用$
,因為這個字元依照慣例僅用於自動生成的原始碼,除此之外,識別符號的命名規則和C,C++一樣。變數的宣告和初始化:
int i = 1, j = 2;
宣告常量的語法如下, C++ 裡的const 改成了關鍵字
final
:
final datatype CONSTANTNAME = value;
- 常量宣告的同時必須初始化,例如:
final double PI = 3.14159;
- 命名慣例:
變數,方法小寫,連線起來的第二個單詞首字母大寫
類名首字母大寫
常量名所有字母大寫,單詞之間使用下劃線連線,例如:PI
,MAX_VALUE
.
public static void main(String[] args) {
double miles = 100;
final double KILOMETERS_PER_MILE = 1.609;
double kilometers = miles * KILOMETERS_PER_MILE;
System.out.println(kilometers);
}
Java 有 6種數字資料型別:
byte
,short
,int
,long
,float
,double
, 位數為 8, 16, 32, 64, 32-bit IEEE 754, 64-bit IEEE 754, 全部都是有符號,可表示正數,也可表示負數。前4種表示整數,後兩種表示浮點,double
比float
更精確,一般應選double
為資料型別。從鍵盤讀取數字,Scanner 物件的6種方法:
Method | Description |
---|---|
nextByte() | 讀取byte整型. |
nextShort() | 讀取short整型. |
nextInt() | 讀取int整型. |
nextLong() | 讀取long整型. |
nextFloat() | 讀取float型別值. |
nextDouble() | 讀取double型別值. |
- %運算子可用於負數,結果的符合與左運算元相同(dividend)。
- 指數運算: Math.pow(a, b)
- 整形字面值:如果表示的數太大,超過int
表示範圍,則在數字後面加L或l,表示為long
型別,通常用大寫的L,小寫的l很容易和數字1看混淆。
- 在數字前加0b或0B表示為二進位制數,加0表示8進位制數,加0x或0X表示16進位制數。
System.out.println(0B1111); // Displays 15
System.out.println(07777); // Displays 4095
System.out.println(0XFFFF); // Displays 65535
- 浮點字面值預設情況下看作
double
,而非float
,例如 5.0 就被看作double
,如果要指定數值是float
還是double
,可以在數字後面加 f, F, 或 d,D,例如 100.2f, 100.2D,double
比float
更精確。 - 科學計數: 50.534 -> 5.0534E+1, float 或 double 之所以被稱為浮點,是因為內部以科學計數法儲存,小數點移動到了新的位置(float)。
- 為提高可讀性,Java 允許在字面值之間加下劃線,但是隻能是在兩個數的中間。45_ 或 _45都不對,如下, 但是這一個語法只有 1.7 及以上才支援。
long ssn = 232_45_4519;
long creditCardNumber = 2324_4545_4519_3415L;
- How many accurate digits are stored in a float or double type variable? I dont know.
- 顯示當前時間,這時間和電腦上的一模一樣:
public class ShowCurrentTime {
public static void main(String[] args) {
long total = System.currentTimeMillis();
long totalSeconds = total / 1000;
long currentSecond = totalSeconds % 60;
long totalMinutes = totalSeconds / 60;
long currentMinute = totalMinutes % 60;
long totalHours = totalMinutes / 60;
long currentHour = (totalHours + 8) % 24;
System.out.println("Current Time: " + currentHour + ":"
+ currentMinute + ":" + currentSecond);
}
}
// output: Current Time: 15:9:29
x /= 4 + 5.5 * 1.5;
等同於x = x / (4 + 5.5 * 1.5);
/=
最後執行。i++
讀作 i plus plus ,i— —
as i minus minus, 先加後減這些,和 C/C++ 裡的完全一樣。實際中int k = ++i + i;
這樣的寫法不是好的寫法,看起來麻煩,容易出錯。Java 裡的6種數值型別的表數範圍有的窄,有的寬。如果將窄型別的值賦給寬型別的值,Java會自動進行型別轉換,叫做拓寬型別(widening a type), 反過來縮窄型別(narrowing a type)則需要進行顯式資料型別轉換,其他的和C/C++ 一樣。
int i = 1;
byte b = i; // 錯誤,要求顯式轉換
- 關於近似值,浮點近似儲存,但整數精確儲存,因此整數計算能得到精確的結果。
相關文章
- [Java] Introduction to Java Programming 筆記: Chapter 1. 概念Java筆記APT
- Java基礎筆記17Java筆記
- Java基礎筆記20Java筆記
- Java基礎筆記15Java筆記
- java基礎 -反射筆記Java反射筆記
- java基礎筆記之staticJava筆記
- Java基礎 語法筆記Java筆記
- Java基礎學習筆記Java筆記
- Java基礎語法筆記Java筆記
- Java 基礎程式設計筆記Java程式設計筆記
- (Java筆記)物件導向基礎Java筆記物件
- Java基礎-學習筆記05Java筆記
- Java基礎-學習筆記06Java筆記
- Java基礎-學習筆記07Java筆記
- Java基礎-學習筆記04Java筆記
- Java基礎-學習筆記17Java筆記
- Java學習筆記01 - JavaSE基礎Java筆記
- 面試複習筆記一(java基礎)面試筆記Java
- Chapter 1:IntroductionAPT
- Java IO學習筆記四:Socket基礎Java筆記
- java基礎筆試題Java筆試
- Java基礎筆記09-陣列簡介Java筆記陣列
- Java基礎知識學習筆記總結Java筆記
- The art of multipropcessor programming 讀書筆記-硬體基礎2筆記
- Java基礎加強筆記——測試、反射、註解Java筆記反射
- Java基礎學習筆記 第一章Java筆記
- JAVA與DOM解析器基礎 學習筆記Java筆記
- java基礎 韓順平老師的 物件導向(基礎) 自己記的部分筆記Java物件筆記
- JAVA基礎學習筆記 一 計算機基礎、JAVA開發環境、開發注意事項Java筆記計算機開發環境
- java基礎-記憶體分配Java記憶體
- Java基礎:記憶體模型Java記憶體模型
- Java記憶體模型_基礎Java記憶體模型
- JAVA基礎-註解記錄Java
- Java核心技術 卷1 基礎知識 部分筆記Java筆記
- Java基礎 韓順平老師的 集合 的部分筆記Java筆記
- 菜鳥學習筆記:Java基礎篇1(基礎語法、物件導向)筆記Java物件
- java基礎-java NIOJava
- 黑馬java基礎學習筆記第一天Java筆記