樂編科技--java基礎day18

項目名:樂編教育
后端架構:springboot+maven+mybatis+mysql
開發(fā)工具:idea
環(huán)境:jdk1.8 、apache-maven-3.6.1、mysql5.7
java1.8Api:https://www.matools.com/api/java8

一、基礎概括

java歷史:
1.java之父:
詹姆斯·高斯林
2.java原名:OAK
3.java體系
①javaSE,標準版,各應用平臺的基礎,桌面開發(fā)和低端商務應用的解決方案。
②javaEE,企業(yè)版,以企業(yè)為環(huán)境而開發(fā)應用程序的解決方案。
③javaME,微型版,致力于消費產(chǎn)品和嵌入式設備的最佳方案。
4.java可以做什么
①開發(fā)桌面應用程序。
②開發(fā)面向Internet的web應用程序。
③提供各行業(yè)的解決方案。
④開發(fā)android手機應用程序。
5.java的特性
①一種面向對象的編程語言。
②一種與平臺無關的語言(根據(jù)JVM實現(xiàn)的)。
③一種健壯性語言。
④具有較高的安全性。
6.java應用程序的運行機制
    先編譯(.class),在解釋運行。
7.java程序開發(fā)的三個步驟
①編寫源程序,java源代碼文件。
②編譯源程序,編譯器編譯編譯成java字節(jié)碼文件。
③運行,java虛擬機(JVM)。
1.Java虛擬機——JVM

JVM(Java Virtual Machine ):Java虛擬機,簡稱JVM,是運行所有Java程序的假想計算機,是Java程序的 運行環(huán)境,是Java 具吸引力的特性之一。我們編寫的Java代碼,都運行在 JVM 之上。
跨平臺:任何軟件的運行,都必須要運行在操作系統(tǒng)之上,而我們用Java編寫的軟件可以運行在任何的操作系 統(tǒng)上,這個特性稱為Java語言的跨平臺特性。該特性是由JVM實現(xiàn)的,我們編寫的程序運行在JVM上,而JVM 運行在操作系統(tǒng)上。
解釋:
java虛擬機實際上只是一層接口,一層Java程序和操作系統(tǒng)通訊的接口。java文件編譯生成class文件而java虛擬機就是這些class文件能夠在上面運行的一個平臺,你把class文件看成一個軟件,java虛擬機就是這個軟件可以運行的操作系統(tǒng)。

2.JRE 和 JDK

JRE (Java Runtime Environment) :是Java程序的運行時環(huán)境,包含 JVM 和運行時所需要的 核心類庫 。 JDK (Java Development Kit):是Java程序開發(fā)工具包,包含 JRE 和開發(fā)人員使用的工具。
我們想要運行一個已有的Java程序,那么只需安裝 JRE 即可。 我們想要開發(fā)一個全新的Java程序,那么必須安裝 JDK 。

3.jdk下載與配置安裝

Jdk1.8的下載:
<u>https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html</u>
配置環(huán)境變量:
<u>https://www.cnblogs.com/evolve/archive/2019/11/11/11837869.html</u>
1.HelloWord入門小案列
①Java程序開發(fā)三步驟:編寫、編譯、運行
javac.exe 編譯器
java.exe 解釋器

java.PNG

②正常來說,我們編寫的代碼,jvm是看不懂得,要想他看懂,我們得把代碼變成.class(字節(jié)碼)文件
我們在D盤根目錄下新建一個記事本,修改名字為HelloWord,后綴名字為.java 輸入內容為:

public class HelloWorld {
    public static void main(String[] args) {
         System.out.println("你好世界~");   
  }    
}

打開dos命令,在黑窗口中輸入javac HelloWord.java;這個時候呢,去D盤目錄下查看,會發(fā)現(xiàn)神奇的多出了一個.class文件,沒錯!就是jvm能讀懂的東西啦!
這時,我們在黑窗口輸入 java HelloWord 那么我們將看到我們剛才編寫的代碼的輸出內容:"你好世界~"
至此,你已經(jīng)成功的編寫一個可被jvm識別的java代碼了
補充:

啟動:     Win+R,輸入cmd回車
切換盤符    盤符名稱:
進入文件夾   cd 文件夾名稱
進入多級文件夾 cd 文件夾1\文件夾2\文件夾3
返回上一級   cd ..
直接回根路徑  cd \
查看當前內容  dir
清屏      cls
退出      exit

2.編譯和運行
① 編譯:是指將我們編寫的Java源文件翻譯成JVM認識的class文件,在這個過程中, javac 編譯器會檢查我們 所寫的程序是否有錯誤,有錯誤就會提示出來,如果沒有錯誤就會編譯成功。
②運行:是指將 class文件 交給JVM去運行,此時JVM就會去執(zhí)行我們編寫的程序了
3.main方法
main方法:稱為主方法。寫法是固定格式不可以更改。main方法是程序的入口點或起始點,無論我們編寫多 少程序,JVM在運行的時候,都會從main方法這里開始執(zhí)行。
4.關鍵字
是指在程序中,Java已經(jīng)定義好的單詞,具有特殊含義。 HelloWorld案例中,出現(xiàn)的關鍵字有 public 、 class 、 static 、 void 等,這些單詞已經(jīng)被 Java定義好,全部都是小寫字母,在我們即將使用的編譯器會有顏色區(qū)分哦~
5.命名規(guī)范
①標識符:
是指在程序中,我們自己定義內容。比如類的名字、方法的名字和變量的名字等等,都是標識符。 HelloWorld案例中,出現(xiàn)的標識符有類名字 HelloWorld 。
②命名規(guī)則:

  • 標識符可以包含 英文字母26個(區(qū)分大小寫) 、 0-9數(shù)字 、 $(美元符號) 和 _(下劃線) 。
  • 標識符不能以數(shù)字開頭。
  • 標識符不能是關鍵字。
    ③命名規(guī)范:
    類名規(guī)范:首字母大寫,后面每個單詞首字母大寫(大駝峰式)。
    方法名規(guī)范: 首字母小寫,后面每個單詞首字母大寫(小駝峰式)。
    變量名規(guī)范:全部小寫。
4.idea的安裝

idea的下載:
https://www.jetbrains.com/idea/download/#section=windows
idea的安裝:
https://blog.csdn.net/qq_21225505/article/details/81285745?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
idea快捷鍵:
Alt+Enter 導入包,自動修正代碼
Ctrl+Alt+L 格式化代碼
Ctrl+/ 單行注釋
Ctrl+Shift+/ 選中代碼注釋,多行注釋,再按取消注釋
Alt+Ins 自動生成代碼,toString,get,set等方法
idea工具的使用:
https://blog.csdn.net/daponi/article/details/94504677

idea中配置jdk:
https://blog.csdn.net/qq_28289405/article/details/82698856

二、基礎語法

1.常量

常量:是指在Java程序中固定不變的數(shù)據(jù)

常量.PNG

示例:

 public class ConstantDemo { 
public static void main(String[] args){ 
             //輸出整數(shù)常量 
        System.out.println(123);
         //輸出小數(shù)常量
         System.out.println(0.125);
         //輸出字符常量
         System.out.println('A');
         //輸出布爾常量
         System.out.println(true);
         //輸出字符串常量
         System.out.println("你好Java");
    } 

2.變量和數(shù)據(jù)類型

變量:常量是固定不變的數(shù)據(jù),那么在程序中可以變化的量稱為變量。
Java的數(shù)據(jù)類型分為兩大類:

  • 基本數(shù)據(jù)類型:包括 整數(shù) 、 浮點數(shù) 、 字符 、 布爾 。
  • 引用數(shù)據(jù)類型:包括 字符串 、類 、 數(shù)組 、 接口 。
    基本數(shù)據(jù)類型如下:
基本數(shù)據(jù)類型.PNG

1.變量定義的格式包括三個要素: 數(shù)據(jù)類型 、 變量名 、 數(shù)據(jù)值
格式:數(shù)據(jù)類型 變量名 = 數(shù)據(jù)值;
變量名稱:在同一個大括號范圍內,變量的名字不可以相同。
變量賦值:定義的變量,不賦值不能使用。
1字節(jié)=8位

public class Variable { 
public static void main(String[] args){   
           //定義字節(jié)型變量         
byte b = 100;         
System.out.println(b);         
//定義短整型變量        
short s = 1000;         
System.out.println(s);         
//定義整型變量         
int i = 123456;         
System.out.println(i);         
//定義長整型變量         
long l = 12345678900L;         
System.out.println(l);         
//定義單精度浮點型變量         
float f = 5.5F;         
System.out.println(f);         
//定義雙精度浮點型變量         
double d = 8.5;         
System.out.println(d);         
//定義布爾型變量         
boolean bool = false;         
System.out.println(bool);         
//定義字符型變量        
char c = 'A';         
System.out.println(c); 
}      
}

2.ASCII
將所有的英文字母,數(shù)字,符號都和十進制進行了對應,因此產(chǎn)生了世界上第一張編碼表ASCII 地址:http://ascii.911cha.com/

ASCII.PNG

在char類型和int類型計算的過程中,char類型的字符先查詢編碼表,得到97,再和1求和,結果為98。char類型提升 為了int類型。char類型內存2個字節(jié),int類型內存4個字節(jié)。

    public static void main(String[] args) {
   //字符類型變量
   char c = 'a';
   int i = 1;
   //字符類型和int類型計算
   System.out.println(c+i);//輸出結果是98
 }

自動轉換:
將取值范圍小的類型 自動提升為 取值范圍大的類型
準換規(guī)則:

范圍小的類型向范圍大的類型提升, byte、short、char 運算時直接提升為 int 
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

強制轉換:
格式:數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉數(shù)據(jù)值
例子:

//將 1.5 賦值到 int 類型,代碼修改為
// double類型數(shù)據(jù)強制轉成int類型,直接去掉小數(shù)點。 
int i = (int)1.5;
/**當一個 short 類型與 1 相加,我們知道會類型提升,
但是還想給結果賦值給short類型變量,就需要強制轉換*/
public static void main(String[] args) {
      //short類型變量,內存中2個字節(jié)
      short s = 1;      
    /* 出現(xiàn)編譯失敗 
       s和1做運算的時候,1是int類型,s會被提升為int類型
        s+1后的結果是int類型,將結果在賦值會short類型時發(fā)生錯誤
        short內存2個字節(jié),int類型4個字節(jié)
        必須將int強制轉成short才能完成賦值      */ 
     s = s + 1;
    //編譯失敗 
     s = (short)(s+1);
    //編譯成功 
}

3.運算符

1.算數(shù)運算符
算數(shù)運算符.PNG

Java中,整數(shù)使用以上運算符,無論怎么計算,也不會得到小數(shù)。

1.++ 運算,變量自己增長1。反之, -- 運算,變量自己減少1,用法與 ++ 一致。
①獨立運算: 變量在獨立運算時, 前++ 和 后++ 沒有區(qū)別 。

  • 變量 前++ :例如 ++i 。
  • 變量 后++ :例如 i++ 。

②混合運算: 和其他變量放在一起, 前++ 和 后++ 就產(chǎn)生了不同。

  • 變量 前++ :變量a自己加1,將加1后的結果賦值給b,也就是說a先計算。a和b的結果都是2。
public static void main(String[] args) {
     int a = 1;
     int b = ++a;
     System.out.println(a);//計算結果是2
     System.out.println(b);//計算結果是2
 }
  • 變量 后++ :變量a先把自己的值1,賦值給變量b,此時變量b的值就是1,變量a自己再加1。a的結果是2,b 的結果是1
public static void main(String[] args) {
     int a = 1; 
     int b = a++;
     System.out.println(a);//計算結果是2
     System.out.println(b);//計算結果是1
 }

2.+ 符號在字符串中的操作:

  • 符號在遇到字符串的時候,表示連接、拼接的含義。
  • "a"+"b"的結果是“ab”,連接含義
public static void main(String[] args){ 
  System.out.println("5+5="+5+5);//輸出5+5=55     
}
2.賦值運算符
賦值運算符.PNG

賦值運算符,就是將符號右邊的值,賦給左邊的變量。

public static void main(String[] args){
     int i = 5;
     i+=5;//計算方式 i=i+5 變量i先加5,再賦值變量i 
    System.out.println(i); //輸出結果是10
  }
3.比較運算符
比較運算符.PNG

比較運算符,是兩個數(shù)據(jù)之間進行比較的運算,運算結果都是布爾值 true 或者 false 。

public static void main(String[] args) { 
    System.out.println(1==1);//true
     System.out.println(1<2);//true
     System.out.println(3>4);//false
     System.out.println(3<=4);//true 
    System.out.println(3>=4);//false
     System.out.println(3!=4);//true
 }
4.邏輯運算符
邏輯運算符.PNG

邏輯運算符,是用來連接兩個布爾類型結果的運算符,運算結果都是布爾值 true 或者 false

public static void main(String[] args)  { 
    System.out.println(true && true);//true
    System.out.println(true && false);//false
    System.out.println(false && true);//false,右邊不計算
    System.out.println(false || false);//falase
    System.out.println(false || true);//true
    System.out.println(true || false);//true,右邊不計算 
    System.out.println(!false);//true
}
5.三元運算符

格式:

 數(shù)據(jù)類型 變量名 = 布爾類型表達式?結果1:結果2

三元運算符計算方式:

  • 布爾類型表達式結果是true,三元運算符整體結果為結果1,賦值給變量。
  • 布爾類型表達式結果是false,三元運算符整體結果為結果2,賦值給變量。
public static void main(String[] args) {
     int i = (1==2 ? 100 : 200);
     System.out.println(i);//200
     int j = (3<=4 ? 500 : 600);
     System.out.println(j);//500
 }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容