NZ-JAVA01第一週
Day01
軟件安裝
開班
JDK8.0
配置了環境變量
- path裏面配置了 jdk的bin目錄
Dos命令
- cd
- dir
- cls
- java
- javac
- cd …
java 的歷史
- 1996年發佈jdk 1.0
- 1999年發佈j2se,j2ee,j2me
- 2005年更名java se 、java EE、java ME
- 2009年被Oracle收購
- 2011年由oracle 發佈java 7.0
- 2014年由oracle 發佈java 8.0
java語言的特定
-
面向對象
使用計算機模擬現實世界,解決現實世界貼近人類思維模式
-
簡單
相對於C,C++,C#,不易造成內存溢出、減少代碼量、代碼可讀性強
-
跨平臺
操作系統、服務器、數據庫
第一個java程序
-
新建一個Demo.java的文件
-
helloword程序
public class Demo{
public static void main(String[] ra){
System.out.println(“hello word”);
}
}
Day02
名詞解釋
-
JVM 虛擬機
使用軟件在不同操作系統中,模擬相同環境
-
JRE 運行環境
包含jvm 和解釋器,完整的java運行環境
-
JDK 開發環境
包含jre +類庫+開發工具包(編譯器+調試工具)
類的闡述
- 同一個源文件中可以定義多個類
- 編譯後,每個類都會生成一個獨立的 .calss 文件
- 一個類中,只能有一個主函數,每個類都可以有自己的主函數
- public 修飾的類稱爲公開類,要求類名必須與文件名稱完全相同,包含大小寫
- 一個源文件中,只能有一個公開類
類的詳解
- 類名的每個單詞的首字母必須大寫
- 一個類只能有一個main函數
包
package com.qianfeng.ls.test;
public class Test{
public static void main(String[] args){
System.out.println("test");
}
}
- 作用:類似於文件夾,用於管理字節碼(.class)文件
- 語法:package 包名
- 位置:必須寫在源文件的第一行
- 帶包編譯: javac -d . 源文件名稱.java (自動生成目錄結構)
- 帶包運行: java 包名.類名 (包名+類名又稱全限定名)
- 採用域名倒置的規則: www.baidu.com.cn ——》 cn.com,baidu.www
編碼規範
-
層次之間必須縮進(Tab: 一個製表位(4個空格))
-
一行只寫一句代碼
-
註釋
- 單行註釋
- 多行註釋
- 文檔註釋
書寫格式
- 類名,每個單詞的首字母都要大寫
- 包名,儘量全部採用小寫;公司域名的倒寫
- 需要採用縮進;儘量一行只寫一句代碼
標識符命名
-
類名
-
包名
-
屬性名
-
方法名
-
約定俗成
- 望文生義、見名知義
- 類名由一個或多個單詞組成,每個單詞首字母大寫
- 函數名、變量名由一個或多個單詞組成,首單詞首字母小寫,拼接詞首字母
- 包名全小寫,只可以使用特殊字符“.”, 並且不以“.”開頭或結尾
- 常量全大寫,多個單詞用_連接
-
語法規定
Day03
數據的類型
-
基本數據類型
-
整型
-
int
- 4個字節
-
-
字節型
- 1個字節
-
短整型
-
short
- 2個字節
-
-
長整型
-
long
- 8個字節
-
-
浮點型
-
float
- 4字節
-
double
- 8字節
-
-
布爾型
- true
- false
-
字符
字符賦值 :char cl = ‘A’ 【通過‘’ 描述爲字符賦值】
整數賦值: char c2 = 65; 【 通過十進制數65在字符集中對應的字符賦值】
進制賦值 : char c3 = ‘\u0041’; 【通過十六進制數41 在字符集中所對應的字符賦值】
-
char
- 2個字節
-
-
-
引用數據類型
-
字符串
- String
-
數組
-
對象
-
變量
-
概念
- 計算機內存中的一塊存儲空間,是存儲數據的基本單元
-
變量的組成
- 數據類型
- 變量名
- 變量值
-
變量的定義流程
-
聲明
數據類型 變量名;
int money ;//開闢整數變量空間 -
賦值
賦值;
變量名 = 值;
money = 100; //將整數值賦給變量注意:java 是強類型語言,變量的類型必須與數據的類型一致
-
方式
-
先聲明,再賦值
數據類型 變量名;
變量名 = 值; -
聲明並賦值
數據類型 變量名 = 值;
-
多個類型相同的聲明與賦值
數據類型 變量1 ,變量2 ,變量2 =值3 ,值4, 值5 =值5;
-
-
-
變量值
轉義字符
-
\n
- 換行符
-
\t
- 縮進(製表位)
-
\
- 反斜線
-
’
- 單引號
-
‘’
- 雙引號
類型轉換
-
由低到高自動轉;由高到低強制轉
-
規則
-
整數長度足夠,數據完整
例子:
int i = 100; byte b =(byte)i; //b = 100 -
整數長度不夠,數據截斷
例子:
int i = 10000 ; byte b =(byte)i;
//b = 16 (符號位變化,可能變爲負數) -
小數強轉整數,數據截斷
例子:
double d = 2.5; int i = (int)d;
//i =2(小數位舍掉) -
字符整數互轉,數據完整
例子
char c = 65 ; int i = c;
// i=65 -
boolean的取值爲true/false,不可與其他類型轉換
-
-
自動類型提升
- 當兩個操作數有一個爲double,計算結果提示也升爲double
- 如果操作數中沒有double,有一個爲float ,計算結果提升爲float
- 如果操作數中沒有float ,有一個爲long ,計算結果提升爲long
- 如果操作數中沒有long ,有一個爲int ,計算結果提升爲int
- 如果操作數中沒有int ,均爲short或byte ,計算結果仍然提升爲int
- 特殊:任何類型與String 相加實爲拼接,其結果自動提升爲String
-
運算符
-
算數運算符
- 加,求和
- 減、求差
- 乘、求積
/ 除、求商
% 模、求餘
-
一元運算符(只有一個操作數)
- ++ 遞增,變量值+1
- – 遞減,變量 -1
-
賦值運算符
-
=
- 直接賦值
-
+=
- 求和後賦值
-
-=
- 求差後賦值
-
*=
- 求積後賦值
-
/=
- 求商後賦值
-
%=
- 求餘後賦值
-
-
關係運算符:兩個操作數進行比較
-
- 大於
-
<
- 小於
-
=
- 大於等於
-
<=
- 小於等於
-
==
- 等於
-
!=
- 不等於
-
-
邏輯運算符
-
&&
-
與(並且)
- 兩個操作數,同時爲真,結果爲真
-
-
||
-
或(或者)
- 兩個操作數、一個爲真,結果爲真
-
-
|
-
非(取反)
- 意爲“不是‘,真即是假,假即是真
-
-
-
三目運算符:將判斷後的結果賦值給變量
-
? :
-
語義
布爾表達式?結果1:結果2
-
描述
當表達式結果爲真,獲得結果1
當表達式結果爲假,獲得結果2
-
-
-
-
-
表達式
-
使用運算符連接的表量或字面值,並可以得到一個最終結果
例如
-
Day04
控制檯錄入
-
程序運行中,可在控制檯(終端)手動;錄入數據,再讓程序繼續運行
-
導包語法:import包名.類名;//將外部class文件功能引入到自身文件中
-
使用順序
-
導入java.util.Scanner
-
聲明Scanner類型的變量
-
使用Scanner類對應的函數(區分類型)
- nextInt(); //獲得整數
- nextDouble();//獲得小數
- next ();// 獲得字符串
- .next()charAt(0);//獲得單個字符
- 注:如果輸入了不匹配的數據,這會產生java.util.InputMismatchException
-
-
-
Day05
選擇分支結構
選擇結構:
-
基本的if選擇結構
-
語法
if(布爾表達式){
//代碼塊
}
後續代碼
-
執行流程
- 對布爾表達式進行判斷
- 結果爲true ,則先執行代碼塊,再進執行後續代碼
- 結果爲false ,則跳出代碼塊,直接執行後續代碼
-
-
if else 選擇結構
-
語法
if(布爾表達式){
//代碼塊1
}else{
// 代碼塊2
}後續代碼…
-
執行流程
- 對布爾表達式進行判斷
- 結果爲true,則先執行代碼塊1,再退出整個結構,執行後續代碼
- 結果爲false ,則先執行代碼塊2,再退出整個結構,執行後續代碼
-
-
多重if 選擇結構
-
語法
if(布爾表達式子1){
//代碼塊1}else if(布爾表達式2){
//代碼塊2
}else if (布爾表達式3){
//代碼塊3
}else{
//代碼塊4
} -
執行流程
- 表達式1爲true,則執行代碼塊1,再退出整個結構
- 表達式2爲true,則執行代碼塊2,再退出整個結構
- 表達式3爲true,則執行代碼3,再退出整個結構
- 以上均爲false ,則執行代碼塊4,其他均不再執行
- 注意:相互排斥,有一個爲true,其他均不再執行。使用於區間判斷
-
-
嵌套if 選擇結構
-
語法
if(外層表達式){
if(內層表達式){
//內層代碼塊1}else{
//內層代碼塊2
}}else {
//外層代碼塊
}
-
執行流程
- 當外層條件滿足時,再判斷內層條件
- 注意:一個選擇結構中,可嵌套另一個選擇結構
- 嵌套格式正確的情況下,支持任意組合
-
-
switch分支結構
package demo;
import java.util.Scanner;public class TestSwitch{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println(“請輸入整數:”);
int choice = input.nextInt();
switch(choice){
case 1: System.out.println(“北京考鴨”);
case 2:System.out.println(“過橋米線”);
case 3: System.out.println(“麻辣香鍋”);}
}
}
-
語法
switch(變量|表達式){
case 值1:
邏輯代碼1;
case 值2:
邏輯代碼2;
case 值n:
邏輯代碼n;
default:
未滿足時的邏輯代碼;}
-
可判斷的類型
byte 、short、int 、char、String(jdk7+)
-
執行流程
- 如果變量中的值等於值1,則執行邏輯代碼1
- 如果變量中的值等於值2,則執行邏輯代碼2
- 如果變量中的值等於值n,則執行邏輯代碼n
- 如果變量中的值沒有匹配的case值,執行default中的邏輯代碼
- 注意:所有case的取值不可相同
-
note
- 當匹配的case被執行後,並不會自動退出整個結構,而繼續向下執行
- break 關鍵字可以在匹配的case執行後,直接跳出整個結構
-
-
局部變量
- 概念:聲明在函數內部的變量,必須先賦值再使用。
- 作用範圍:定義性開始到所在的代碼塊結束
- 注意:多個變量,在重合的作用範圍內,不可出現重名(命名衝突)
- 聲明在函數內部的變量,必須先賦值再使用
-
選擇結構的概念:根據已知條件進行邏輯判斷。滿足條件後執行相應操作