javaSE從零開始04_java的基礎語法

Mr:小灰發表於2020-10-04

Java的基礎語法

1.註釋,識別符號,關鍵字
2.資料型別
3.型別轉換
4.變數常量
5.運算子(Operator)
6.包機制,JavaDoc

1.註釋,識別符號,關鍵字


  • 註釋是一個非常好的習慣,註釋不會被執行,是給人看的。平時寫程式碼一定要注意規範

    • 單行 //

    • 多行 /* 多行註釋 */

    • 文件 javaDoc:文件註釋

      • /** 
        *
        *
        */
        
  • 識別符號

    • 什麼是識別符號

      • 凡是可以由自己命名的地方都稱為識別符號。
        例如,對於常量、變數、函式、語句塊、類、專案等都需要一個名字,這些我們都統統稱為識別符號。

      • 注意:識別符號大小寫是敏感的(強型別語言)

        • 1.識別符號有字母、數字、_(下劃線)、$所組成,其中不能以數字開頭,不能用Java中的保留字(關鍵字)
        • 2.識別符號采用有意義的簡單命名
        • 3." " 不 要 在 代 碼 中 出 現 。 ( 是 由 於 在 後 面 內 部 類 中 , 編 譯 後 會 出 現 "不要在程式碼中出現。(是由於在後面內部類中,編譯後會出現 "符號)
      • 命名規範(駝峰命名法)

        • 類名和介面名:每個單詞的首字母,其餘為小寫。(大駝峰)
        • 方法名:第二個單詞起的首字母為大寫,其餘全為小寫。(小駝峰)
        • 常量名:基本資料型別的常量名使用全部大寫字母,字與字之間用下劃線分隔。

2.資料型別


語言型別
  • 強型別語言

    • 要求變數的使用嚴格符合規定,所有的變數都必須先定義後才能使用
  • 弱型別語言

Java資料型別
  • 基本型別

    • byte:8位,最大儲存資料量是255,存放的資料範圍是-128~127之間。

      short:16位,最大資料儲存量是65536,資料範圍是-32768~32767之間。

      int:32位,最大資料儲存容量是2的32次方減1,資料範圍是負的2的31次方到正的2的31次方減1。

      long:64位,最大資料儲存容量是2的64次方減1,資料範圍為負的2的63次方到正的2的63次方減1。

      float:32位,資料範圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。

      double:64位,資料範圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。

      boolean:只有true和false兩個取值。

      char:16位,儲存Unicode碼,用單引號賦值。

    • 什麼是位元組?

      • 位:計算機內部最小的儲存單位,11001100是一個八位二進位制數。

      • 位元組:是計算機中資料處理的基本單位,習慣上使用B來表示。

      • 1B:=8bit

      • 字元:是指計算機中使用的字母數字符號。

      • 1B=8b 1bit表示一位

      • 1Byte表示一個位元組 1B=8b

      • 1024B=1KB

      • 1024KB=1M

      • 1024M=1G

  • 引用型別

    • 介面
    • 陣列
  • 面試擴充套件**

    • 整數擴充套件 :進位制 二進位制 十進位制 八進位制 十六進位制 0-9 A-F

      • int i=10;						10
        int i2=010;  八進位制			  8
        int i3=0X10;   十六進位制			  16
        
    • 浮點數擴充套件: 銀行業務怎麼表示?關於錢【BigDecimal一個工具類幫助解決】

      • float 有限 離散 舍入誤差 大約 接近但是不等於

        • 最好完全避免使用浮點數進行比較
        一個例子
        float f =0.1f  //0.1
        double d=1./10d	//0.1
        
        System.out.println(f==b);   ====false
        
        float n1=2132132132123213211f;
        float n2=n1+1;
        System.out.println(n1==n2);   ====true
        
    • 字元擴充套件 製表符 String空間

      • //強制資料型別轉換
               char c1='a';
               char c2='中';
          
               System.out.println(c1);
               System.out.println((int)c1);
               System.out.println(c2);
               System.out.println((int)c2);
          
               //所有的字元本質還是數字
               //編碼問題 Unicode 2位元組 65535  Excel 只有65536=2十六次方
               //U0000 UFFFF
          
               char c3='\u0061';
               System.out.println(c3);//a
          
        //轉義字元   \t製表符  \n換行
               System.out.println("Hello\tWorld");
               
        //String的空間指向問題   (物件,記憶體級別)
               String sa=new String("HelloWorld");
               String sb=new String("HelloWorld");
               System.out.println(sa==sb);  //false
          
               String sc="HelloWorld";
               String sd="HelloWorld";
               System.out.println(sc==sd);   //true
               
         //布林值擴充套件
               boolean flag=true;
               if (flag==true){}
               if (flag){}//表示相同的含義  老手
               //Less is more 程式碼需要精簡易讀       
        

3.型別轉換


  • 由於java是強型別語言,所以要進行有些運算到時候,需要用到型別轉換。

    • 低====高

      byte,short,char,–>int,–>long,–>float,–>double

    • //強制轉換=====》(型別)變數名   高--低
              int i=128;
              byte b= (byte) i;  //【範圍只有127到-128,造成了記憶體溢位】
              System.out.println(b);//[結果為-128????]
      自動轉換=====》   低--高
      
    • 注意:

       /*注意:
              1.不能對布林值進行轉換
              2.不能把物件型別轉換為不相干的型別
              3.在把高容量轉換到低容量的時候,強制轉換
              4.轉換的時候可能存在記憶體溢位,或者精度的問題
       */
              System.out.println((int)23.7);//===23
              System.out.println((int)-45.89f);//===45精度丟失
      
              char c='a';
              int d=c+1;
              System.out.println(d);//===98
              System.out.println((char)d);//=====b
              
              
      //操作大數的時候注意操作溢位問題
      //JDK7新特性,數字之間可以用下劃線分割
              int money=10_0000_0000;
              int years=20;
              int total=money*years;
              System.out.println(total);//====-1474836480【記憶體溢位】
              long total2=money*years;//預設是int,轉換之前已經存在問題
      
              //解決方案
              long total3=money*((long)years);//先把一個數轉換為long
              System.out.println(total3);//====20000000000【正確執行,首先將運算部分轉換】
            
      

4.變數常量


  • 變數

    • 是什麼:程式中的最基本儲存單元,其要素包括變數名,變數型別個作用域。

    • 注意

      • 每個變數都有型別,型別可以是基本型別,也可以是引用型別。
      • 變數名必須是合法的識別符號
      • 變數宣告是一條完整的語句,因此每一個宣告必須以分號結束。
    • 變數型別:

      • public class Demo03 {
        
        //例項變數  :從屬於物件【通過類去使用】
            
            String name;
            int age;
        
        //類變數  static  隨著類一起出現一起消失
            
            static double salary=2500;//不用New就可以呼叫
        
            //main方法
            public static void main(String[] args) {
        
                //呼叫例項物件
                //變數型別  變數名字
                Demo03 demo03=new Demo03();
                System.out.println(demo03.name);//===null  輸出了預設值
                System.out.println(demo03.age);//====0  輸出了預設值
                //【布林值  預設是false】
                //【除了基本型別,其他的預設值都是null】
        
                //類變數  static
                System.out.println(salary);
        
            }
        
            public void add(){
        //區域性變數  必須宣告和初始化值
                
                int i=10;
                System.out.println(i);//在add方法中有效
            }
        }
        
        
  • 常量(Constant)

    • 是什麼:是一個特殊的變數,初始化(initialize)後不能夠被改變。

    • 常量名一般使用大寫字元

      • public class Demo04 {
        
            static final double PI=3.14;
            static final double PI02=3.14;
            //static是修飾符,不存在先後順序
            
            public static void main(String[] args) {
                System.out.println(PI);
                System.out.println(PI02);
            }
        }
        
  • 變數的命名規範

    • 所有變數,產量見名知意。
    • 類成員變數:首字母小寫和駝峰原則:daySalary
    • 區域性變數:首字母小寫和駝峰原則
    • 常量:大寫字母與下劃線:AMX_VALUE
    • 類名:首字母大寫和駝峰原則:Man,GoodMan
    • 方法名:首字母小寫和駝峰原則:run(),runRun()

5.運算子(Operator)


  • 算術運算子:+,-,*,/,%,++,–

    • public class Demo05 {
      
      //關於++與——
      
          public static void main(String[] args) {
              //關於自增自減的 一元運算子(只需要一個數字)
              int a=3;
              int b=a++;//a+1  執行完程式碼後,先給b賦值,再自增
              
              System.out.println(a); //a=a+1      4
      
              int c=++a; //執行完這段程式碼前,先自增,再給b賦值
              System.out.println(a);//     5
              System.out.println(b);//     3
              System.out.println(c);//     5
      
      		//冪運算 2^3   Math工具類
              double pow=Math.pow(2,3);
              System.out.println(pow);//====>8  很多冪運算使用工具類來用
      
          }
      }
      
      
  • 賦值運算子:=

  • 關係運算子:>,<,<=,>=,!=

  • 邏輯運算子:&&,||,!

    • //與  或  非
              boolean a=false;
              boolean b=true;
      
              System.out.println("a&&b:"+(a&&b));  //a&&b:false//邏輯與運算,兩個變數都為真,結果才為true
              System.out.println("a||b:"+(a||b));  //a||b:true//邏輯或運算,兩個變數有一個為真,結果才是true
              System.out.println("!a&&b:"+(!a&&b)); //!a&&b:true //如果為真則是假
      
              //短路運算
              int c=5;
              boolean d=(c<4)&&(c++<4);
              System.out.println(d);//  false
              System.out.println(c);//   5  表明當與運算中出現false時則停止執行
      
  • 位運算子:&,|,^,~,>>,<<,>>>

    • //位運算子
              /*
              * A= 0011 1100
              * B= 0000 1101
              * A&B = 0000 1100 除非對應位都是1,否則為0   且運算
              * A|B = 0011 1101 對應位上只要有1,輸出為1   或運算
              * A^B = 0011 0001 相同位上相同為0,不同為一  非運算
              *  ~B = 1111 0010 對應位上反轉   取反
              *
              * 關於左移右移  <<   >>
              *
          面試題
              *   2*8 怎麼算最快?
              * */
              System.out.println(2<<3);//====16
          //解釋面試題
              /*
               *  0000 0000  0
               *  0000 0001  1
               *  0000 0010  2
               *  0000 0011  3
               *  0000 0100  4
               * 。。。。。。。
               *  0000 0100  8
               *  0000 1000  16
               * 左移右移相當於進行2的次方運算,   硬體底層操作效率極高
               */
      
      
  • 條件運算子: ?,:

    • // x ? y : z   如果x為真則結果為y,否則為z   精簡程式碼並且加快執行速度
      int score =40;
      String type = score<60 ?"不及格":"及格";
      System.out.println(type);
      
  • 擴充套件運算子: +=,-=,*=,/=s

    • //擴充套件運算子
      int f=10;
      int g=20;
      
      f+=g; //f=f+g
      f-=g; //f=f-g
      System.out.println(f);
      
      //*******字串連線符  + ,String 後面全部定義為字串*************
              System.out.println(""+f+g);//===1020
              System.out.println(f+g+"");//===30
      

6.包機制,JavaDoc


  • 包機制 Package

    • 本質:就是一個資料夾

    • 一般利用公司域名倒置作為包名

      • www.baidu.com=====> 包名:com.baidu.com
    • 使用import可以完成導包工作

      • import java.util.Date; //呼叫時間工具
        import java.util.*;   //*表示萬用字元
        
  • JavaDoc

    • 是什麼:用來生成自己的API文件

    • 引數資訊:

      • @author:作者
      • @version:版本號
      • @since:指明需要的Jdk版本
      • @param:引數名
      • @return:返回值情況
      • @throws:異常丟擲情況
    • 演示

      • package javaDoc;
        /**
         * @author Ziyang
         * @version 1.0
         * @since 1.8
         */
        
        public class javaDoc {
        
            String name;
            /**
             * @param name
             * @return
             * @throws Exception
             */
            public String test(String name)throws Exception{
                return name;
            }
        }
        
        
        

        如何檢視自己的API文件

        E:\javaAndSql\Idea\javaSE2020.10.3_Demo01\javaSE01_基本資料型別\src\javaDoc>javadoc -encdoing UTF-8 -charset UTF-8 javaDoc.java
        
        找到自己的類的位置===》使用smd開啟類,使用javadoc javaDoc.java就可以編輯自己的Index頁,開啟index頁面檢視自己的API文件
        

相關文章