JAVA學習記錄
JAVA學習記錄第一階段
提示:
提示:以下是本篇文章正文內容,下面案例可供參考
文章目錄
〇、輸出一個helloworld之前的工作
1、DOS命令
cd 目標路徑;
cd …;返回上一目錄
cd \ ;返回根目錄
dir ;展示當前目錄下所有檔案
cls;清屏
exit;推出
2、JDK、JRE與JVM
JVM(Java Virtual Machine)
JVM就是一臺假想的執行Java程式的計算機,每個平臺不同,但你Java程式寫好後通過每個平臺各自的JVM都能跑;
JRE(Java Runtime Environment)
java的執行環境,包含JVM和JAVA的核心類庫,有它就能執行一個已經寫好的JAVA程式;
JDK(Java Development Kit)
包含JRE與一些開發工具(如編譯器);
一、輸出HelloWorld
java程式開發三步驟:編寫.java→編譯.class→執行
程式碼如下(示例):
public class Hello{
public static void main(String[] args){ //main是JAVA程式執行的起點
System.out.println("HelloJava");/*列印*/
}
}
Java的註釋://;/* */
二、JAVA的資料型別
1.關鍵字的概念與特徵
概念:有特殊含義的、被保留的字元
關鍵字的特點:
1.完全小寫的英文字母
2.有特殊顏色
2.識別符號的概念與規則
概念:程式中自己定義的內容
命名規則:26個英文字母(區分大小寫);0—9數字;$與下劃線 ;不能以數字開頭;不能使用關鍵字;_
3.常量
概念:程式執行期間,值不會發生改變的量
常量型別 | Value |
---|---|
字串常量 | 雙引號內 |
整型常量 | 數字 |
浮點型常量 | 小數 |
字元常量 | 單引號內的單個字元 |
布林型常量 | true和false |
空常量 | null |
4.基本資料型別(4類8種)
else:引用資料型別(如字串、陣列、類、介面、lambda等)
基本資料型別 | Value | 佔用記憶體(位元組) |
---|---|---|
整數型 | byte short int long | 1 2 4 8 |
浮點型 | float double | 4 8 |
字元型 | char | 2 |
布林型 | boolean | 1 |
5.變數
概念:程式執行期間可以改變的量,就是一個分配的記憶體空間,放相應型別的資料進去就行。
資料型別 變數名稱; 如float x;
資料型別 變數名稱=值; float x=100F;
6.資料型別轉換
不同資料型別發生運算時,將發生資料型別轉換
- 自動型別轉換(隱式):
- 特點:程式碼不需要特殊處理,自動完成;
- 規則:資料範圍小的遷就大的(更精確優先);
- 強制型別轉換(顯式):
資料型別 變數名 = (資料型別)資料;
public class DAY2{
public static void main(String[] args){
int num1 = (int)100l;
System.out.println(num1);
}
}
注意事項:
- 不推薦使用,容易發生精度損失、資料溢位等;
- Java中的byte,short,char進行計算時都會提升為int型別(它們在底層都是二進位制數),且之後都成為int型;
- Boolean型別無法發生型別轉換;
7.ASCII碼
0-48;A-65;a-97;
三、運算子與方法
1.算數運算子
/*
運算子:進行特定操作的符號
表示式:運算子連線起來的式子
算數運算子:加+ 、減- 、乘*、 除/、 取餘% (僅限整數)、自加++、自減--
*/
public class DAY2{
public static void main(String[] args){
int x = 10;
double y = x + 2;
System.out.println(y);
}
}
/*
算數運算子+的三種用法:
1. 對於數值來說就是加法;
2. 對於char型來說就是轉換成int再做加法;
3. 對於字串String來說,就是把兩個字串相連;任何資料型別和字串+,結果都是字串;
*/
public class DAY2{
public static void main(String[] args){
String str1 = "hello";
String str2 = "world";
System.out.println(str1 + str2);
}
}
2.賦值運算子
賦值運算子:將右邊的值賦給左邊的變數
賦值運算子 | value |
---|---|
= | 等於 |
+= | 加等 |
-= | 減等 |
*= | 乘等 |
/= | 除等 |
%= | 取餘等 |
3.比較運算子
==;<;>;<=;>=;!=;
4.邏輯運算子
與或非:&& || !
5.三元運算子
/*
資料型別 變數名 = 條件判斷 ? 表示式1:表示式2;
判斷為ture則賦1,false則賦2
*/
public class DAY1{
public static void main(String[] args){
int a = 30,b = 20;
char zifu = a<b?'a':'b';
System.out.println(zifu);
}
}
6.方法入門
方法的概念:把一個功能抽取出來,把程式碼單獨定義在一個大括號內,當我們需要這個功能的時候再去呼叫
//定義的格式: 修飾符 返回值型別 方法名(引數列表){ 程式碼 return }
方法命名的規則和變數名一樣:小駝峰式
注意事項:
- 方法定義的順序不影響;
- 方法不能相互巢狀;
方法的呼叫
方法名稱();
7.一些注意事項
- 對char\short\byte三種資料型別進行賦值時,若右側取值沒有超出其表示範圍,則javac將補全強制轉換型別(char)(short) (byte)(數字預設是Int);
- 若等號右邊都是常量沒有變數,則Javac將直接在編譯時用常量進行運算,不再等到程式執行時:再轉換成Int型再相加…
四、流程結構——順序、判斷、選擇、迴圈
1.順序結構
概念:按照程式碼順序執行
2.判斷語句(選擇結構)
- 單If:
if(條件判斷?){
語句體
}
- if…else…
if(條件判斷){
語句體1;
}else{
語句體2;
}
- if…else if…else if…
if(條件判斷1){
語句體1;
}else if(條件判斷2){
語句體2;
}...
}else if(條件判斷n){
語句體n;
}
else{
語句體n+1;
}
3.選擇語句
switch語句格式:
switch(表示式){ case 值1: 語句體1; break; case 值2: 語句體2; break; .... default: 語句體; }
最後一個break可以省略,但建議不省略
注意事項:
- 多個case後面的值不能重複;
- switch後的括號能只能放以下六種(四個基本兩種引用)資料型別:
* 四種基本:byte\short\int\char
* 兩種引用:String字串\enum列舉 - switch語句對case順序沒有嚴格要求,且break還可省略;
4.迴圈語句
- for迴圈
for(初始化表示式①;布林表示式②;步進表示式④){ 迴圈體③; }
*while迴圈
while(條件判斷①){
迴圈體②;
步進表示式③;
}
- do…while…迴圈
初始化語句;
do {
迴圈體;
步進語句;
}while(條件判斷);
5.條件控制語句
break的兩種常見用法:
*用在switch語句的case下面,一旦執行,整個switch結束;
*用在迴圈語句中,一旦執行,整個迴圈語句立刻結束,打斷迴圈;continue:一旦執行,跳過當前迴圈的剩下部分,直接進入下一次迴圈;
關於迴圈的選擇:
*次數確定的用for,否則多用while
死迴圈標準格式:
while(ture){
迴圈體;
}
6.迴圈巢狀
/*
用迴圈巢狀輸出一個程式
*/
public class DAY1{
public static void main(String[] args){
int h=0,m=0;
for(h=0;h<=12;h++){
for(m=0;m<=60;m++){
System.out.println(h+"點"+m+"分");
}
}
}
}
/*
用記事本寫的,GBK編碼報錯,儲存時把編碼格式從utf-8改為ANSI就行了
*/
五、IntelliJ-IDEA
1.IntelliJ-IDEA的專案結構
每個模組內都由以下內容組成:
1. 一個src:所有原始碼都寫在這裡面src下又可新建package,若以xxx.xx.x1的形式命名這個package,則建立的是一個三層的package。xxx.xx.x2與之在同一個第二層下。
2. 一個.iml檔案:Ide的配置檔案
當寫好的程式碼執行一次後,.java檔案會儲存在該package下,生成的.class檔案儲存在該專案資料夾的out資料夾下。
2.Idea的基本設定與常用快捷鍵
- 字型的設定:file -> settings -> editor -> font
- 自動補全: file -> settings -> keymap -> main menu -> code ->code completion(我設定為了alt+b)
快捷鍵 | 功能 |
---|---|
alt + enter | 匯入包,自動修正程式碼 |
ctrl + Y | 刪掉游標所在行 |
ctrl + D | 複製游標所在行 |
ctrl +alt +L | 格式化整理程式碼 |
ctrl + / | 單行註釋,再按取消註釋 |
ctrl + shitf +/ | 選中註釋,多行註釋,再按取消註釋 |
alt + insert | 自動生成程式碼,toString,get,set方法 |
alt + shift +上下箭頭 | 移動當前程式碼行 |
3.Module的匯入
file -> ProjectStructure ->Module -> + -> import…
Module不能刪除,只能從該專案中移除。
Module的三種操作:新建、移除、匯入;
六、方法的深入
/*以下是把一個列印矩陣的函式寫進方法中*/
public class Method {
public static void main(String[] args) {
printMethod();
}
public static void printMethod() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 20; j++) {
System.out.print('*');
}
System.out.println( );
}
}
}
方法的定義只能手拉手,不能巢狀;
定義了一個方法之後必須呼叫
1.方法的定義
方法就是若干語句的功能集合;
一個方法必須要有:
- 引數:原料
- 返回值:產出物
定義方法的完整格式:
修飾符 返回值型別 方法名稱(引數型別 引數名稱,引數型別 引數名稱,…){
方法體;
return;
}
-------------------------
修飾符:公或私,靜或動;
返回值型別:方法最終產生的資料結果是什麼型別;
方法名稱:方法的名字,命名規則和變數一樣,小駝峰
引數型別:進入方法的資料型別
PS:若引數有多個,則用逗號隔開
方法體:方法需要做的事情
return:停止方法體,將返回資料還給呼叫處。其後返回值型別需要和定義方法處的返回值型別一樣
2.方法的呼叫
public class Method {
public static void main(String[] args) {
System.out.println(printAdd(3,4));//列印呼叫
int d = printAdd(100,100);
System.out.println("相加為:"+d);//賦值呼叫
}
public static int printAdd(int a, int b) {
int c = a + b;
return c;//java的void和int不一樣
}
}
方法的三種呼叫方式:
- 直接呼叫
- 列印呼叫
- 賦值呼叫
>PS:返回值為void的方法只能直接呼叫
3.有無引數與有無返回值的方法
有引數:該方法需要資料才能執行;
無引數:不需要任何資料條件自己就能執行,例如列印十次;
有返回值:需要“告訴”呼叫者(即呼叫它的那組程式碼)它做了什麼(返回值);
無返回值:不需要“告訴”呼叫者,直接完成功能;
4.方法的注意事項
- 方法必須定義在類裡面,不能在方法裡再定義方法;
- 方法定義的前後順序無所謂;
- 方法定義之後不會自動執行,必須要呼叫 三種呼叫方法;
- 如果方法有返回值,則必須“return 返回值;”;
- return後的返回值必須和方法的返回值對應;
- 對於一個void,不能有返回值,直接寫一個“return;”,且可省略;
- 一個方法可以有多個return,但必須保證每次執行只能有一個被執行到;
5.方法的過載
對於功能相似、只是引數列表不同的方法,我們可以使用過載(OverLoad)
public class Method { public static void main(String[] args) { System.out.println(printAdd(1,2,3,6)); } public static int printAdd(int a, int b) { int sum = a + b; return sum; } public static int printAdd(int a, int b,int c) { int sum = a + b + c; return sum; } public static int printAdd(int a, int b,int c,int d) { int sum = a + b +c +d; return sum; } }
相關文章
- Java學習筆記記錄(二)Java筆記
- Java openrasp學習記錄(二)Java
- Java openrasp學習記錄(一)Java
- Java集合學習記錄——IteratorJava
- Java 學習零碎記錄Java
- Java Math類方法學習記錄Java
- Java安全之JDBC Attacks學習記錄JavaJDBC
- JAVA程式設計學習記錄(安裝Java)Java程式設計
- 【每日學習記錄】使用錄影裝置記錄每天的學習
- 記錄學習PromisePromise
- windbg學習記錄
- Eureka學習記錄
- Mybatis學習記錄MyBatis
- socket學習記錄
- JQuery學習記錄jQuery
- larabbs 學習記錄
- Tableau學習記錄
- MySQL學習記錄MySql
- Elasticsearch學習記錄Elasticsearch
- swift學習記錄Swift
- jQuery 學習記錄jQuery
- RAC 學習記錄
- RMAN學習記錄
- RAC學習記錄
- Docker學習記錄Docker
- 肥桃的Java學習記錄22:JSPJavaJS
- 記錄從頭學習 JAVA+selenium+testNGJava
- JAVA程式設計學習記錄(JavaWeb-Html)Java程式設計WebHTML
- 記錄JAVA學習的第一天Java
- 【記錄】MySQL 學習筆記MySql筆記
- [記錄] MySQL 學習筆記MySql筆記
- Flutter學習記錄(一)Dart學習FlutterDart
- Java基本與法組成(學習記錄7)--方法Java
- Java HttpClient 學習記錄 2 嘗試Get請求JavaHTTPclient
- 2020-9-23Java學習記錄Java
- JAVA程式設計學習記錄(API常用類(二))Java程式設計API
- Vue 學習記錄四Vue
- Vue 學習記錄三Vue