主頁 > 後端開發 > Java基礎語法

Java基礎語法

2023-07-01 07:43:33 後端開發

1、Java的八種基本資料型別

1、byte  1位元組  取值范圍:-128~127

2、short  2位元組  取值范圍:-32768~32767

3、int  4位元組  取值范圍:-231~231-1  # int是開發中最常用的,也是Java中默認的資料型別

4、long  8位元組  取值范圍:-263~263-1  #宣告超過int取值范圍的long型別的資料的時候,在值的上面加L或者l,否則報錯,

例:long l1 = 28299228;  long l2 = 27828299292929L;

5、float  4位元組  #宣告float型別資料的時候,需要加f后者F  float的有效位數為8位

例:float f2 = 1.23456789123f;  System.out.println(f2);  //1.2345679

  float f3 = 2828.8989898989f;  System.out.println(f3);  //2828.899

6、double  8位元組  有效位數為16位,

7、char  2位元組  #字符型別的資料使用單引號進行引起來,而且單引號中只能有一個元素

例:char ch1 = '上';  char ch2 = 'k';

8、boolean  1位元組  值為true或false

2、類和變數的命名規范

類的命名:

1.首字母大寫

2.如果有多個單詞組成的類名 采用大駝峰的命名規則 HelloWorld SingleDog

變數的命名:

1.變數的命名可以使用 數字,字母,_,$等組成,但是不能以數字開頭

2.首字母不能大寫

3.采用的是小駝峰命名規則 或者采用下劃線連接多個單詞的寫法

4.命名一定要見名知意

5.已經被Java預留的關鍵不能再作為變數的名字了

3、轉義字符

目的: 將一個無意義的字符轉為有意義的字符或者將一個有意義的字符轉為無意義的字符

語法格式:

\字符(有特殊意義的字符或者無特殊意義的字符)

兩個特殊的符號:

\t: 制表符 空格

\n: 換行

4、運算子

1、算術運算子

+  -  *  \

注:算數運算中,兩個整數型別的的數,“\”運算的值為結果的整數部分,小數部分舍棄

int m=20, n=3;
System.out.println(m/n); 結果:6

+=  -=  *=  /=  %=

a+=b是a=a+b的簡寫,后面其他三項同理

自增與自減  變數++  ++變數  變數--  --變數

變數++;先執行當前操作,后變數自身+1

int b=3;
        System.out.println(b++);  //3  #先執行輸出變數b的操作,后變數b的值+1
        System.out.println(b);  //4  
int a = 5;
        int i = 5;
        // a = 5  + 6 + 8 + 9
        a = i++  + i++ + ++i + ++i;
        System.out.println(a);//28
        System.out.println(i);//9
        //a = 9 + 9 + 9
        a = i-- + ++i + i++;
        System.out.println(a);//27

2、關系運算子

>  <     >= (大于等于)    <=(小于等于)   !=(不等于)  ==(等于)

語法格式:  boolean 變數名字 = 值1 關系運算子 值2;

boolean ret1 = 3 > 4;
        System.out.println(ret1);//false
        boolean ret2 = (5 > 1);
        System.out.println(ret2);//true
        boolean ret3 = 4 >= 3;
        System.out.println(ret3);//true
        boolean ret4 = 5 == 5;
        System.out.println(ret4);
        boolean ret5 = 6!=6;
        System.out.println(ret5);//false

3、邏輯運算子

&&  

語法格式:  關系運算子的運算式1 && 關系運算子的運算式2
        //如果運算式都為true的時候整體結果i就為true,如果有一個運算式為false,那么整體就為false
        boolean ret = (3 > 4) && (4 > 2);
        System.out.println(ret);//false
        
        boolean ret1 = (5 >1) && (3 >2) && (9 >= 7);
        System.out.println(ret1);//true

||

boolean ret1 = 3 > 4 || 5 >3;
        //||  或是只要有一個為true 則整體為true, 兩個都是false才為false
        System.out.println(ret1);//true
        
        boolean ret2 = 5 < 3 || 7 < 2 || 7 < 4;
        System.out.println(ret2);//false

非: !

boolean ret3 = !(3 > 4);//取反
        System.out.println(ret3);  //true

邏輯與的短路原則:

條件1 && 條件2 && 條件3&&... 只要有一個為false整體就為false

注意: 條件1為false的話,已經確定整體為false,后面的條件就不再運行,

邏輯或的短路原則

條件1 || 條件2 ||...

只要一個為true,整體就為true了,

注意: 如果條件1 為true的話,后面的條件就不再執行,因為條件1為true的話

已經確定整體的結果了,后面的條件結果不會影響整體的結果了,所以直接短路

     //邏輯與的短路原則
        int num = 10;
        boolean ret1 = (3 < 2) && (++num > 12);
        System.out.println(ret1);//false
        System.out.println(num);//10  
        //邏輯或的短路原則
        int num1 = 10;
        boolean ret2 = (3 > 2) || (++num1 > 90);
        System.out.println(ret2);//true
        System.out.println(num1);//10

5、分支結構

1、if 分支

語法格式:

if (運算式) {
  陳述句體
  }

運算式: 一定回傳值是布爾型別資料的運算式,(關系運算子運算式和邏輯運算子運算式)

執行流程:首先進入if 判斷if后面小括號中的運算式的值 如果為true 則執行后面大括號中的陳述句體,

如果為false,就不執行大括號中的二陳述句體,代碼要繼續往下執行

int a = 3;
        if (a < 1) {//小括號中的運算式的結果決定這大括號里面是否執行
            System.out.println("嘻嘻,3 大于1");
        }
        System.out.println("代碼執行結束");

2、if-else分支

語法格式:   

if (運算式) {
  陳述句體1
  } else {
  陳述句體2
  }

執行流程:判斷運算式,如果運算式為true,執行陳述句體1,如果運算式為false 執行陳述句體2

兩者只能選其一

        int money = 30;//口袋里面有30塊錢
        //如果口袋里面的錢超過了20,列印我就吃頓好的,鮑魚
        //如果口袋里面的錢沒有超過了20,列印就湊合一下,泡面
        if (money > 20) {
            System.out.println("我就吃頓好的,鮑魚");
        } else {
            System.out.println("就湊合一下,泡面+加腸");
        }            

3、if-else if 分支

語法格式:

if (運算式1) {
    陳述句體1
} else if (運算式2) {
 陳述句體2
} else if (運算式3) {
 陳述句體3
}else if (運算式4) {
 陳述句體4
}else {
 陳述句體n
}

執行流程: 如果碰到if后面的小括號中的運算式的值為true的時候,就執行對應大括號中的陳述句體,其他陳述句體一概不執行,若所以判斷條件均未通過,執行else后的陳述句體,

多種條件只能選擇其一  例:

如果語文成績大于80分且數學成績大于80分,列印給獎學金

如果語文成績小于80分大于60且數學成績大于60分小于80,列印及格

如果語文成績小于30分且數學成績小于30分,列印重修

        int chineseScore = 89;//語文成績
        int mathScore = 29;//數學成績
        /**chineseScore >= 80 && mathScore >= 80
         * 89>=80 && 29>=80    true && false 整體結果就是false
         * 
         */
        if (chineseScore >= 80 && mathScore >= 80) {
            System.out.println("給獎學金");
        } else  if ((chineseScore >= 60 && chineseScore < 80) && (mathScore >= 60 && mathScore < 80)) {
            System.out.println("及格");
        } else if (chineseScore< 30 && mathScore < 30) {
            System.out.println("重修");
        } else {
            System.out.println("繼續努力!!!有一門需要努力");
        }

4、switch-case分支

只有當滿足當前的條件的時候才會執行前的陳述句體

語法格式:

switch  (運算式) {//運算式  結果是一個具體的值  不是布爾型別的值
 case 常量1:
     陳述句體1;
     break;
 case 常量2:
     陳述句體2;
     break; 
 case 常量3:
     陳述句體3;
     break;
   ...
 default://其他的情況
     陳述句體n;
     break;
}

執行流程:

首先計算運算式的值,拿到這個值以后去和case后面的常量去匹配,如果發現一致,就執行當前陳述句體

        int score = 28;
        //找規律:  90~100    91/10=9   92/10 =9  99/10=9
        //87/10=8  81/10=8
        switch (score / 10) {
        case 10:
            System.out.println("優秀");
            break;
        case 9:
            System.out.println("優秀");
            break;
        case 8:
            System.out.println("良好");
            break;
        case 7:
            System.out.println("一般");
            break;
        case 6:
            System.out.println("及格");
            break;
        default:
            System.out.println("不及格,要努力");
            break;
        }

注:swicth運算式中,常量的值可取的資料型別

  byte  short  int  char  String   列舉(jdk1.8新特性

接收控制臺的資料給 Java中某一個變數

1.導包
import java.util.Scanner;
2.創建一個物件  Scanner 物件
Scanner  scanner = new Scanner(System.in);
3.拿物件sc呼叫方法獲取控制臺的各種型別的資料
int a = scanner.nextInt();    //獲取的是整數型別的

double a = scanner.nextDouble();    //獲取的是小數型別的

boolean b1 = scanner.nextBoolean();    //獲取的是布爾型別的

String str = scanner.next();    //獲取的是字串型別的

char ch1 = scanner.next().charAt(3);    //獲取字符,依靠字串來獲取  獲取控制臺輸入的字串的4位字符

5、三目運算子

語法格式:資料型別  x = 運算式 ? 值1 : 值2;

執行流程: 先判斷運算式 的真偽,如果運算式為true的話,將值1賦值給變數x,如果運算式為false的話就會將值2賦值給變數x,

        int a1 = 20;
        int c1 = a1 > 50 ? 30 : 0;    //先判斷 a1 > 50  的值,如果true 將30 f賦值c1  如果為false 將0 賦值給c1  
        System.out.println(c1);    // 0
                //等效于
        if ( a1 > 50) {
            c2 = 30;
        } else {
            c2 = 0;
        }        

6、回圈結構

回圈至少三個條件: 1.初始化條件 2.回圈條件 3.終止條件

1、while回圈

語法格式:

while (布爾運算式) {
    回圈體;
}

執行流程:

如果代碼執行到while以后,首先判讀小括號中的布爾的運算式

如果布爾運算式為true,執行大括號中的回圈體,然后再次到while

再次判斷布爾運算式,

直到布爾運算式為false的時候,終止回圈,

例:列印1 ~9這些數字

        int i = 1;
        while (i < 10) {
            System.out.println(i+" ");//剛好借助i的值 來完成輸出
            i++;
        }
1 2 3 4 5 6 7 8 9

2、do-while

語法格式:

do {
回圈體 
} while (布爾運算式);

執行流程:

首先代碼走到 do

執行do后面大括號中的代碼(回圈體),然后執行while后面的布爾運算式,

判斷布爾運算式

如果運算式為true 的話,再次回到do 執行回圈體,然后執行while后面的布爾運算式

判斷布爾運算式

直到布爾運算式為false的話,回圈結束

        int i = 9;
        do {
            System.out.println("hello");
            i++;
        } while (i < 3);

注:while 回圈和do-while的區別-->while先判斷根據判斷的結果后執行, do-while 先執行后判斷

3、for回圈

語法格式:

for (運算式1; 運算式2; 運算式3) {
 回圈體;
}

運算式1:初始化的值   運算式2:終止條件   運算式3:回圈條件

執行流程: 先執行運算式1

然后執行運算式2進行判斷

如果運算式2為true,執行后面大括號中的代碼,然后再執行運算式3,

回去執行運算式2進行判斷

如果為true 繼續執行后面大括號中的代碼,執行后面大括號中的代碼,執行運算式3,

再次判斷運算式2,直到運算式2位false 大括號中的代碼不再執行

        for (int i=0;i<10;i++){
            System.out.print(i+" ");
        }
0 1 2 3 4 5 6 7 8 9

4、嵌套回圈

回圈中嵌套另外一個回圈

例:列印直角三角形

        for (int i = 1; i < 5; i++) {//控制的行 4行
            for (int j = 1; j <= i; j++) {//控制的列   讓你
                System.out.print("* ");
            }
            System.out.println();
        }
* 
* * 
* * * 
* * * * 

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/556399.html

標籤:其他

上一篇:微信小程式訂閱模板訊息推送

下一篇:返回列表

標籤雲
其他(161919) Python(38266) JavaScript(25517) Java(18286) C(15238) 區塊鏈(8274) C#(7972) AI(7469) 爪哇(7425) MySQL(7278) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5876) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4609) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2438) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1979) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Java基礎語法

    1、Java的八種基本資料型別 1、byte 1位元組 取值范圍:-128~127 2、short 2位元組 取值范圍:-32768~32767 3、int 4位元組 取值范圍:-231~231-1 # int是開發中最常用的,也是Java中默認的資料型別 4、long 8位元組 取值范圍:-263~263 ......

    uj5u.com 2023-07-01 07:43:33 more
  • 微信小程式訂閱模板訊息推送

    **背景** 在實際的小程式開發程序中往往需要用到給用戶發送訂閱訊息,比如:我們在店里掃碼點餐時在付款時往往彈出一個授權視窗(比如‘取餐通知’)這個時候我們就需要對接微信小程式的模板訊息。 [https://developers.weixin.qq.com/miniprogram/dev/OpenA ......

    uj5u.com 2023-07-01 07:43:29 more
  • 記一次Native memory leak排查程序

    路由計算服務是路由系統的核心服務,負責運單路由計劃的計算以及實操與計劃的匹配。在運維程序中,發現在長期不重啟的情況下,有TP99緩慢爬坡的現象。此外,在每周例行調度的試算程序中,能明顯看到記憶體的上漲。 ......

    uj5u.com 2023-07-01 07:43:24 more
  • 狂收 3.2k star!百度開源壓測工具,可模擬幾十億的并發場景,太強悍了

    dperf 是一款基于 DPDK 的 100Gbps 網路性能和負載測驗軟體,能夠每秒建立千萬級的 HTTP 連接、億級別的并發請求和數百 Gbps 的吞吐量。 ## 優點 ### 性能強大: - 基于 DPDK,使用一臺普通 x86 服務器就可以產生巨大的流量:千萬級的 HTTP 每秒新建連接數, ......

    uj5u.com 2023-07-01 07:43:20 more
  • 在python中實作使用迭代生成器yield減少記憶體占用的方法

    在python編碼中for回圈處理任務時,會將所有的待遍歷參量加載到記憶體中。其實這本沒有必要,因為這些參量很有可能是一次性使用的,甚至很多場景下這些參量是不需要同時存盤在記憶體中的,這時候就會用到本文所介紹的迭代生成器yield。 ### 1.基本使用 首先我們用一個例子來演示一下迭代生成器yield ......

    uj5u.com 2023-07-01 07:43:16 more
  • 使用Python字串訪問與修改區域變數

    在Python中定義一個函式時,就會把變數空間劃分為全域變數(global)與區域變數(local),如果是定義在一個類的成員函式中,那么就還有額外的成員變數(self)空間。那么,如果在實際操作中,想把這幾種不同的變數空間做一個分離的話,有沒有辦法呢? ### 1.讀取和修改區域變數 首先來看一下 ......

    uj5u.com 2023-07-01 07:43:11 more
  • Python Django Web開發實戰

    # Python Django全面介紹 Django是一個非常強大的Python Web開發框架,它以"快速開發"和"干凈、實用的設計"為設計宗旨。本文將從Django的基本概念開始,逐漸引導大家理解如何使用Django構建復雜的web應用程式。 ## Django基本概念與原理 首先,讓我們從Dj ......

    uj5u.com 2023-07-01 07:43:07 more
  • zip解壓和壓縮

    zip解壓和壓縮 引言 介紹zip檔案的概念 涉及到的Java類和包:java.util.zip https://blog.csdn.net/u012998680/article/details/126060855 壓縮檔案 準備壓縮的源檔案和目標zip檔案的路徑 創建FileOutputStrea ......

    uj5u.com 2023-07-01 07:43:02 more
  • JavaBean、MVC、Filter和Listener

    # JavaBean、MVC、Filter和Listener ## JavaBean JavaBean 是一種JAVA語言寫成的可重用組件。 物體類(pojo)。 JavaBean有特殊的寫法: - 必須要有一個無參構造 - 屬性必須私有 - 必須要對應的set/get方法 本質就是一個java類 ......

    uj5u.com 2023-07-01 07:42:50 more
  • 高并發場景下,6種解決SimpleDateFormat類的執行緒安全問題方法

    摘要:解決SimpleDateFormat類在高并發場景下的執行緒安全問題可以有多種方式,這里,就列舉幾個常用的方式供參考。 本文分享自華為云社區《【高并發】更正SimpleDateFormat類執行緒不安全問題分析的錯誤》,作者: 冰 河 。 解決SimpleDateFormat類在高并發場景下的執行緒 ......

    uj5u.com 2023-07-01 07:42:42 more