Day02 - Java 基礎②
## 任務
1. 數據類型
2. 運算符
3. 流程控制語句
4. Scanner 和 Random
## 數據類型
1. 基本類型
1. 整數類型
1. byte 稀有物種,傳輸,讀取文本內容, 也不怎么用
2. short 瀕臨物種 —— 基本沒有人用
3. int 大路貨 —— 經常使用
4. long 幕后 —— 當大路貨無法承受的時候,long就出現代替int來接受對應的內容
2. 浮點類型
1. float 單精度浮點類型 6~7位
2. double 雙精度浮點類型 15~16位
3. 字符類型
1. char 由單引號所引起來的內容,且只有一位
```java
char c1 = 'a';
char c2 = 'A';
char c3 = '中';
char c4 = '&';
char c5 = '0'; // 0~9
```
2. 字符類型其實也是整數類型
4. 布爾類型
1. boolean true & false
2. 八大基本類型中,唯一一個不能夠算術計算的類型
2. 引用類型
含義: 除了八大基本類型以外的所有類型都被稱呼為引用類型
1. String —— 字符串類型,是引用類型之一
使用: 通過雙引號引起來的內容,其中長度接近于無限
內容: 阿拉伯數字,英文大小寫, 符號等等
```java
String str = "abc";
System.out.println(str); // abc
String s1 = "ja";
String s2 = "va";
System.out.println(s1+s2); // java
```
2. String類型的功能
1. length(): 顯示字符串的長度
2. trim(): 除去字符串中首尾空格
3. charAt(int index): 顯示index位置上的字符(char)
4. equals(String otherString):
? 比較當前字符串與otherString的值是否相同
2. Scanner —— 掃描器
格式: Scanner 變量名稱 = new Scanner(System.in)
含義: 創建掃描器
作用: 允許控制臺可以接受用戶所輸入的內容
功能:
next() 允許控制臺輸入數據,并把數據截取成String類型
nextInt() 允許控制臺上輸入數據,并把數據截取成int類型
nextDouble() 允許控制臺上輸入數據,并把數據截取成double類型
### char類型
1. char類型是由單引號引起的內容組成,且位置只能有一位
2. char類型也是特別的整數類型,char擁有對應的int碼值
例如: 'a' --> 97
? 'b' --> 98
? '@' --> 64
3. char類型中由于都是字符,所以對應的int碼值是沒有負數,都為正整數,范圍0~65535
### 默認的小數類型和整數類型
1. 默認的整數類型: int
2. 默認的小數類型: double
3. 只要出現的是整數,一定是int類型
4. 只要出現的是小數,一定是double類型
### 聲明變量
? 數據類型 變量名稱 = 初始值;
? int a = 10;
? boolean b = true;
#### 賦值號的作用
? 作用: 把符號右邊的值傳遞給符號左邊的變量
? 使用條件: 符號右邊的類型精度必須小于等于
? 符號左邊的類型精度
### 基本類型中精度的問題
1. 整數類型中,分別是byte, short, int, long,這四個類型范圍從高到低的排序?
long, int, short, byte
2. 小數類型中,分別是float, double, 這兩個類型范圍從高到低排序?
double, float
3. 請問,在數據中會分整數和小數,精度高的是哪個類型?
小數精度高
4. 基本類型中,對于類型精度的排序,從高到低?
double, float, long, int, short, byte
? char
```java
int a = 10;
double d = 10;
int i = (int)3.1; // 對3.1的數值,進行了強行轉換
System.out.println(i); // 3
int i2 = (int)3.9999999;
System.out.println(i2); // 3
```
### long & float類型
? long什么時候會使用?
? 當int類型無法承受的時候,long類型就可以使用了
? long如何使用?
? long的精度比int高, 默認的類型又是int類型,從int類型轉向long類型是無法進行強行轉換的,直接在數據后面添加字母L,大小寫都可以,但是強烈建議使用大寫
? float類型一般使用比較少,但是若客戶指明使用該類型的話,則直接在小數后添加F字母,大小寫都可以
```java
long l = 9999999999L;
float f = 3.14F;
double d = 3.14D;
```
### 基本類型的轉換
1. 自動類型轉換
對于基本類型中, byte, short, char類型都擁有自動類型轉換,只要輸入的整數不超過這三個類型,則都會自動轉型成對應的類型,若出現了運算,則會自動先變成int類型,在進行運算,運算結果不再擁有自動轉型的功能
``` java
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1 + b2);
System.out.println(b3); // 3
```
2. 強行類型轉換
從高精度類型轉向低精度類型的過程,簡稱:強轉
這樣的操作由于會損失精度,所以不建議經常使用
```java
int i = (int)9999999999L; // 從long類型轉向int類型
int i1 = (int) 3.14; // 從double類型轉向int類型
float f = (float)3.14; // 從double類型轉向float類型
```
## 運算符
1. 算數運算符
```java
+ - * / % ++ -- +
/ --> 5/3 --> 1
5/4 --> 1
5/2 --> 2
6/3 --> 2
7/4 --> 1
% --> 5%2 --> 1
6%3 --> 0
6%0 --> 報錯 / by zero
100%1000 --> 100
```
注: 使用算數運算符,同種類型使用,結果類型不變
? 不同類型使用,結果跟著精度高的
++ -- 自增1, 自減1
例如: int a = 1;
? System.out.println(a); // 1
? a++; // 后自增, 先運算當前代碼,后自增1
? System.out.println(a); // 2
? int b = 10;
? ++b; // 前自增, 先自增1, 再執行當前的代碼
? System.out.println(b); // 11
\+ 不是加法的加,而是拼接, 拼接兩個不同類型的內容
? 基本類型中分: 布爾類型, 數字類型
? 適用于基本類型與引用類型或者引用類型與引用類型
```java
String s1 = "ja";
String s2 = "va";
int a = 1;
System.out.println(s1+s2+a); // java1
int b = 2;
System.out.println(b + s1 + s2); // 2java
System.out.println(s1+a+b+s2); // ja12va
```
2. 賦值運算符
= += -= *= /= %=
```java
int a = 10;
++ --> 自增1
+= --> 自增n
a += 1000; // a = a + 1000;
System.out.println(a); // 1010
a -= 100; // 910
a *= 10; // 9100
a /= 10000; // 0
a %= 100; // 0
```
2. 比較運算符
```java
> >= < <=
!= 不等于
== 等于
通過比較運算符,得到的結果為boolean類型的值,true和false
10 != 10 --> false
5 >= 5 --> true
```
2. 邏輯運算符
```java
&& 與/邏輯與/短路與
作用: 連接多個表達式
效果:
int a = 10; int b = 20;
System.out.println(a+b > 30 && a - b < 20);
結果: 符號左右兩邊的表達式的結果都為true的時候,結果才為true
當符號有一邊為false的時候,結果為false
符號左邊已經為false, 則右邊就不用考慮了
|| 或/邏輯或/短路或
作用: 連接多個表達式
效果:
int a = 10; int b = 20;
System.out.println(a != b || a > b);
結果: 符號左右兩邊的表達式只要有一邊為true,則結果為true
當符號兩邊都為false的時候,結果才為false
符號的左邊已經為true, 則右邊就不會在考慮了
! 非、取反
!false --> true
!true --> false
!(5>3) --> false
!(10<11) --> false
!(10/3<5) --> false
!(9!=10) --> false
!(10!=10) --> true
表達式: 含有數字、字母以及符號做組成的一個式子
int a = 10;
a >= 5; true
```
2. 三目/三元/條件運算符
公式: 表達式 ? 表達式1 : 表達式2
含義: 當表達式的結果為true的時候,則執行表達式1
? 當表達式的結果為false的時候,則執行表達式2
表達式1和表達式2的結果類型需要一致
```java
int a = 200;
int b = 150;
String result = a > b ? "老蔡重" : "班花重";
System.out.println(result);
```
練習1:需要定義兩個值,來顯示哪個值比較大
練習2: 在控制臺上輸入兩個值,來判斷哪個值比較大?
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 提示用戶輸入第一個值 System.out.print("請輸入第一個值: "); double value1 = scanner.nextDouble(); // 提示用戶輸入第二個值 System.out.print("請輸入第二個值: "); double value2 = scanner.nextDouble(); // 關閉scanner對象 scanner.close(); // 比較兩個值并輸出結果 if (value1 > value2) { System.out.println("第一個值(" + value1 + ")比第二個值(" + value2 + ")大。"); } else if (value1 < value2) { System.out.println("第二個值(" + value2 + ")比第一個值(" + value1 + ")大。"); } else { System.out.println("兩個值相等: " + value1); } } }
練習3: 在控制臺上輸入一個值,判斷該值是否是偶數?
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 提示用戶輸入一個值 System.out.print("請輸入一個值: "); int number = scanner.nextInt(); // 判斷是否為偶數 if (number % 2 == 0) { System.out.println(number + " 是偶數。"); } else { System.out.println(number + " 是奇數。"); } // 關閉scanner對象 scanner.close(); } }
## JDK工具中含有的內容
1. JDK
1. JRE
2. 編寫、測試、維護的功能 —— 針對編寫代碼使用
2. JRE
1. JVM
2. 所有Java的工具包以及對應的環境
3. JVM —— 執行代碼的虛擬機 —— 就是執行.class文件(字節碼文件)
## Eclipse的使用
1. Project為單位
1. Folder -- 目錄 -- package
1. Class
所有的視圖框 :
? window --> show view
切換工作空間:
? File --> switch workspace --> 歷史目錄以及other(可以新建新目錄)
修改字體風格:
? window --> preferences --> 五個一
運行代碼的方式:
1. ctrl + F11
2. 直接點擊工具條上的播放按鈕
3. 右擊代碼區域,找到run as, 點擊 Java Application
創建新的文件,來書寫命令
1. 在空的package explorer中,右擊,點擊New,找到Java Project
2. 去書寫該Java項目的名稱, finish
3. 點開項目之后,去右擊src, 點擊New, 點擊package,定義package的名稱
書寫格式: 公司域名結尾.項目名稱.公司名稱.作用
? cn.hc.day02
4. 右擊點擊package名稱,點擊New, 找到class —— .java文件
注釋: 告知某段代碼的含義,但不會在執行的內容中出現,且可以寫上任意內容
1. 單行注釋 //
2. 多行注釋 /* */
3. 段落/文本注釋 /** */ —— 告知使用者的作用
## 作業
1. 在控制臺上分別輸入,自己的姓名、年齡、以及性別,用一個print打印所有信息
2. 在控制臺上分別輸入三個不相同的數字,比較哪個數字是最大的
3. 在控制臺上分別輸入年份和月份,計算從1900年1月至輸入的時間一共經過了多少月
4. 在控制臺上分別年份,顯示該年是否是閏年
5. 在控制臺上輸入數字,顯示該數字是否是能夠被130整除的
6. 在控制臺上分別輸入兩個數字,顯示這兩個數字之間的加減乘除
7. 在控制臺上輸入月薪以及季度獎金,顯示當年年薪
8. 在控制臺上輸入班花的三圍,顯示班花是否是美女
9. 在控制臺上輸入一個數字,把該數字轉換成字符串
10. 在控制臺上輸入到公司來的時間,計算一天的來回一共需要消耗多少毫秒
1個小時30分鐘 --> 90分鐘 --> 5400秒 --> 5400000 毫秒
24小時 --> 1440分鐘 --> 86400秒 --> 86400000 毫秒
Day02 【Java基礎②】鏈接:
-
鏈接:https://pan.baidu.com/s/1Lj4uFQnZJVEULxMZE8KB1Q
提取碼:ajar
Note:
歡迎點贊,留言,轉載請在文章頁面明顯位置給出原文鏈接
知者,感謝您在茫茫人海中閱讀了我的文章
沒有個性 哪來的簽名!
詳情請關注點我
持續更新中
? 2021 05 - Guyu.com | 【版權所有 侵權必究】

浙公網安備 33010602011771號