Java匹馬行天下之JavaSE核心技術——Java基礎語法

Java基礎語法

1、基礎語法規則

一、變量

1.一、變量的概述             

                  用於存儲可變數據的容器。html

1.二、變量的特色

  1. 必需要有大小
  2. 存儲必定格式的可變數據
  3. 必需要有名字

1.三、變量的聲明和賦值

數據類型  變量名 = 值前端

 

二、常量

2.一、常量的概述

常量是指在程序運行過程當中其值不能改變的量。java

 

 

2.二、常量的類型

Java中常量的分類:程序員

    整數常量 : 全部整數編程

    小數常量 : 全部小數數組

    布爾常量 : 只有true和false函數

    字符常量 :使用’’引發來的單個字符工具

    字符串常量 :使用「」引發來的字符序列,「」  、「a」 、」 」 字體

    null常量 : 只有一個值null大數據

 

三、標識符

3.一、什麼是標識符

就是程序員在定義java程序時,自定義的一些名字,例如helloworld 程序裏關鍵字class 後跟的Demo,就是咱們定義的類名。類名就屬於標識符的一種。

標識符除了應用在類名上,還能夠用在變量、函數名、包名上。

3.二、標識符的規則

  1. 標識符由26個英文字符大小寫(a~zA~Z)、數字(0~9)、下劃線(_)和美圓符號($)組成。
  2. 不能以數字開頭,不能是關鍵字
  3. 嚴格區分大小寫
  4. 標識符能夠爲任意長度

 

3.三、標識符命名規範

  1. 1.  包名

多個單詞組成時全部字母小寫(例:package  com.itcast)

  1. 2.  類名和接口

多個單詞組成時全部單詞的首字母大寫(例:HelloWorld)

  1. 3.  變量名和函數名

多個單詞組成時第一個單詞首字母小寫,其餘單詞首字母大寫(例:lastAccessTime、getTime)。

  1. 4.  常量名

多個單詞組成時,字母所有大寫,多個單詞之間使用_分隔(例:INTEGER_CACHE)

注意:只是爲了增長規範性、可讀性而作的一種約定,標識符在定義的時候最               好見名知意,提升代碼閱讀性。

四、註釋

4.一、註釋的做用

經過註釋提升程序的可讀性,是java程序的條理更加清晰,易於區分代碼行與註釋行。另外一般在程序開頭加入做者,時間,版本,要實現的功能等內容註釋,方便後來的維護以及程序員的交流。

 

4.二、註釋的種類

單行註釋(line comment)

用//表示,編譯器看到//會忽略該行//後的所文本

多行註釋(block comment)

用/**/表示,編譯器看到/*時會搜索接下來的*/,忽略掉/**/之間的文本。

文檔註釋

用/** */表示,是java特有的註釋,其中註釋內容能夠被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。

 

文檔註釋   (編寫軟件說明書)

  1. 須要使用sum給咱們提供的javadoc工具生成一個html的說明文檔。
  2. 只能抽取public的屬性或者方法內容。

如何生成軟件說明書:

  1. 同時按win+R,在彈出框中輸入cmd,按回車,進入Dos命令窗口
  2. 輸入java –version查看是否安裝了JDK,若是出現如圖信息,說明已安裝,未出現則說明未安裝,須要先安裝JDKJDK

     

    具體安裝過程見:http://www.javashuo.com/article/p-huwodycu-cq.html
  3. 若是JDK已安裝,先找到你所要生成軟件說明書的java源文件路徑如圖,找到源文件路徑後,在DOS命令窗口中將路徑切換爲Java源文件路徑

     如圖,找到源文件路徑後,在DOS命令窗口中將路徑切換爲Java源文件路徑

  4. 切換DOS命令窗口中的路徑後,輸入javac –d . Hello.java(源文件),編譯源文件,看源文件是否有錯誤,若是沒任何錯誤,輸入javacdoc Hello.java(源文件)生成軟件說明書

     

    如上圖
  5. 生成軟件說明書後找到 源文件名.html文件並打開,

     

    如圖
  6. 你看到的文檔即爲軟件說明書

     

 

 

 

 

javadoc 工具軟件識別如下標籤:

@author 做者

         @version 版本

         @param 方法的參數

         @return 返回值

註釋的使用細節:

         三種註釋能夠出如今程序的任何地方,可是不推薦找任意位置。

1. 編程習慣:

                  1. 給哪條語句進行說明,註釋應該寫在該語句的旁邊。

2. 單行註釋通常寫在語句的後面多行註釋和文檔註釋通常寫在語句的上面

         注意:文檔註釋只能出如今類、屬性、方法的上面。

五、運算符

計算機的最基本用途之一就是執行數學運算,做爲一門計算機語言,Java也提供了一套豐富的運算符來操縱變量。咱們能夠把運算符分紅如下幾組:

 

算術運算符

 

 

關係運算符

運算符

運算

例子

結果

==

相等於

4= =3

false

!=

不等於

4!= 3

true

小於

4 < 3

flase

大於

 4>3

true

<=

小於等於

4<=3

false

>=

大於等於

4>=3

true

Instanceof

檢查是不是類的對象

"hello"instanceof String

true

 

位運算符

 

位運算符

 

運算符含義

 

&

與(AND)

|

或(OR)

^

異或

~

取反

 

邏輯運算符

 

 

賦值運算符

  • = , +=, -=, *=, /=, %=

運算符

運算

範例

結果

=

賦值

a=3,b=2

a=3,b=2

+=

加等於

a=3,b=3;a+=b;

a=5,b=2;

-=

減等於

a=3,b=2,a-=b;

a=1,b=2;

*=

乘等於

a=3,b=2,a*=b;

a=6,b=2

/=

除等於

a=3,b=2,a/=b;

a=1,b=2;

%=

模等於

a=3,b=2,a%=b;

a=1,b=2

 

其餘運算符

三元運算符

格式

(條件表達式)?表達式1:表達式2;

若是條件爲true,運算後的結果是表達式1;

若是條件爲false,運算後的結果是表達式2;

示例:

1獲取兩個數中大數。

int x=3,y=4,z;

z = (x>y)?x:y;//z變量存儲的就是兩個數的大數。

int x = 1;

       int y = 2;

       int z;

       z = x > y ? x : y;

       System.out.println(z); //2

2判斷一個數是奇數仍是偶數。

int x=5;

System.out.println((x%2==0?"偶數":"奇數"));

 

運算符的優先級與結合性

 

 

 

六、數據類型

Java 基本數據類型

變量就是申請內存來存儲值。也就是說,當建立變量的時候,須要在內存中申請空間。

內存管理系統根據變量的類型爲變量分配存儲空間,分配的空間只能用來儲存該類型數據。

所以,經過定義不一樣類型的變量,能夠在內存中儲存整數、小數或者字符。

Java 的兩大數據類型:

  • 內置數據類型
  • 引用數據類型

詳見http://www.javashuo.com/article/p-fctqqunr-y.html

 

數據類型轉換

整型、實型(常量)、字符型數據能夠混合運算。運算中,不一樣類型的數據先轉化爲同一類型,而後進行運算。

轉換從低級到高級:

低  ------------------------------------>  高

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

數據類型轉換必須知足以下規則:

  • 不能對boolean類型進行類型轉換;
  • 不能把對象類型轉換成不相關類的對象;
  • 在把容量大的類型轉換爲容量小的類型時必須使用強制類型轉換;
  • 轉換過程當中可能致使溢出或損失精度;

自動類型轉換(也叫隱式類型轉換)

要實現自動類型的轉換,須要知足兩個條件:

第一兩種類型彼此兼容

第二目標類型取值範圍必須大於源類型。

全部的數字類型,包括整形和浮點型彼此均可以進行轉換。

強制類型轉換(也叫顯式類型轉換)

當兩種類型彼此不兼容,或者目標類型取值範圍小於源類型(目標是byte源是int)

沒法自動轉換,此時就須要進行強制類型轉換。

 

強制類型轉換須要注意:

   損失精度!!!

類型轉換的原理

能夠把byte 理解爲1兩的碗,short 2兩的碗,int 4兩的碗,long 8兩的碗。1兩碗的滿碗酒能夠倒入 2兩 4兩 8兩的碗中。可是 4兩碗的酒倒入1兩碗的酒就有一些問題。

 

何時要用強制類型轉換

   好比小數部分只想保留整數部分.

   必定要清楚要轉換的數據在轉換後數據的範圍內不然會損失精度.

public static void main(String[] args) {

       byte b = 100;

       b = (byte) (b + 2);

       System.out.println(b); // 102

        //捨棄小數部分

        double d=5.5;

       int num=(int)d;

}

 

表達式的數據類型自動提高

算術表達式,邏輯表達式                               

全部的byte型、short型和char的值將被提高到int型。

若是一個操做數是long型,計算結果就是long型;

若是一個操做數是float型,計算結果就是float型;

若是一個操做數是double型,計算結果就是double型。

 

自動類型提高

  

byte b = 3;

       int x = 4;

       x = x + b;// b會自動提高爲int 類型參與運算。

       System.out.println(x);// 7

 

 

強制類型轉換

 

byte b = 2;

       /*

        * 強制類型轉換,強制將b+2強制轉換爲byte類型,再賦值給b

        */

       b = (byte) (b + 2);

       System.out.println(b);// 4

 

 

分析 System.out.println(‘a’+1)結果?

System.out.println(‘a’+1)結果

美國人爲了讓計算機識別他們生活中的文字,讓二進制表示生活中的文字.因此一個字母表明瞭一個二進制.,二進制也有十進制的表現形式.,把生活中的字母都用數字來標識,例如97 表明a ,98 表明 b。打印’a’就把a做爲輸出顯示,沒有疑問。可是 ‘a’+1  有加號涉及到了運算。根據java自動類型提高規則,一樣道理 char 提高爲int 。就把’a’表明的數字體現了出來。a 表示的是97  97+1就是98; 那麼 想要查看98 表示的char 是什麼 怎麼實現呢 ?就要用到剛纔介紹的強制類型轉換了 System.out.println(char(‘a’+1));就取到了98 在ASCII碼錶中表示的字符。大寫A 和小寫a 在 ASCII有不一樣的表現。還有一個概念字符’1’ 在ASCII中 不是數字 1,能夠運行代碼查看,到此就能夠明白了char 類型,char類型也是能夠參與運算的,爲何能夠參與運算呢。由於字符在ASCII表中都有對應的數字體現。全部的計算機兼容ASCII。

        System.out.println('a'+1); //98

      System.out.println((char)('a'+1));  //b

補充問題:

       int i='a'+'b';

       System.out.println(i);//結果?     

       System.out.println("hello"+'j'); //結果?

 

總結:

全部數值運算符均可以用在char型數據上,若是另外一個操做數是一個數字或者字符,那麼char會自動提高爲int型,若是另外一個操做數是字符串,那麼字符就會和字符串相連。

 

 

 

七、修飾符

 Java語言提供了不少修飾符,主要分爲如下兩類:

  • 訪問控制修飾符 : default, public , protected, private
  • 非訪問控制修飾符 : final, abstract, static, synchronized

修飾符用來定義類、方法或者變量,一般放在語句的最前端。

 

詳見http://www.javashuo.com/article/p-atcgslon-y.html

 

八、流程控制

分支語句

(1)if-else-if語句

語法:

if(條件){

//當條件爲true時,執行大括號內的代碼

}else if(條件){

}

 

(2)switch-case語句

概念:

switch 語句判斷一個變量與一系列值中某個值是否相等,每一個值稱爲一個分支。

語法:

switch( 變量 ){

case 值1:

    break;

case 值2:

    break;

default:

}

當程序執行到break關鍵字時,跳出當前的switch語句;

 

循環語句

(1)while循環

語法:

while(條件){

//當條件爲true時,執行循環體內的代碼;

}

備註:

知足循環的三個條件:初始化變量、關係運算、迭代

 

(2)do-while循環

語法:

do{

}while(條件);

備註:與while循環的區別是,當條件爲false時,也會被執行一次。

 

(3)for循環

語法:

for(int i = 0 ; i < 10 ; i++){

}

說明:

  • 最早執行初始化步驟。能夠聲明一種類型,但可初始化一個或多個循環控制變量,也能夠是空語句。
  • 而後,檢測布爾表達式的值。若是爲 true,循環體被執行。若是爲false,循環終止,開始執行循環體後面的語句。
  • 執行一次循環後,更新循環控制變量。
  • 再次檢測布爾表達式。循環執行上面的過程。

 

(4)foreach循環

Java5 引入了一種主要用於數組的加強型 for 循環。

 

Java 加強 for 循環語法格式以下:

for(聲明語句 : 表達式) {

//代碼句子

}

聲明語句:

聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其做用域限定在循環語句塊,其值與此時數組元素的值相等。

表達式:

表達式是要訪問的數組名,或者是返回值爲數組的方法。

 

詳見http://www.javashuo.com/article/p-ttcklmhr-bb.html

 

九、數組

詳見http://www.javashuo.com/article/p-qnvakzqy-be.html

 

十、函數

詳見http://www.javashuo.com/article/p-qnvakzqy-be.html

十一、參數

語法:

  • 在方法名後面的括號中聲明;
  • 參數的個數爲大於等於0;
  • 寫法:方法名(類型  變量名,類型 變量名,……){}
  • 參數是當前方法的局部變量,是一種特殊的局部變量;
  • 參數的賦值過程,是在調用該方法時完成的;
  • 當有多個參數,調用該方法時,依次按照括號中的順序爲參數賦值;
  • 參數的類型能夠爲Java的任何數據類型;

 

十二、方法重載

概念:重載(overloading) 是在一個類裏面,方法名字相同,而參數不一樣。與返回值類型、訪問修飾符無關。

規則:

  • 參數的類型不一樣;
  • 參數個數不一樣;
  • 參數的順序不一樣;

 

1三、變量做用域

規則:

  • 變量的範圍是程序中該變量能夠被引用的部分。
  • 方法內定義的變量被稱爲局部變量。
  • 局部變量的做用範圍從聲明開始,直到包含它的塊結束。
  • 局部變量必須聲明纔可使用。
  • 方法的參數範圍涵蓋整個方法。參數其實是一個局部變量。
  • for循環的初始化部分聲明的變量,其做用範圍在整個循環。
  • 但循環體內聲明的變量其適用範圍是從它聲明到循環體結束。
  • 能夠在一個方法裏,不一樣的非嵌套塊中屢次聲明一個具備相同的名稱局部變量,但不能在嵌套塊內兩次聲明局部變量。

 

1四、源文件聲明規則

當在一個源文件中定義多個類,而且還有import語句和package語句時,要特別注意如下規則:

  • 一個源文件中只能有一個public類。
  • 一個源文件能夠有多個非public類。
  • 源文件的名稱應該和public類的類名保持一致。例如:源文件中public類的類名是Employee,那麼源文件應該命名爲Employee.java。
  • 若是一個類定義在某個包中,那麼package語句應該在源文件的首行。
  • 若是源文件包含import語句,那麼應該放在package語句和類定義之間。若是沒有package語句,那麼import語句應該在源文件中最前面。
  • import語句和package語句對源文件中定義的全部類都有效。在同一源文件中,不能給不一樣的類不一樣的包聲明。

 

1五、Java包

爲了更好地組織類,Java 提供了包機制,用於區別類名的命名空間。

包的做用:

  • 把功能類似或相關的類或接口組織在同一個包中,方便類的查找和使用。
  • 如同文件夾同樣,包也採用了樹形目錄的存儲方式。同一個包中的類名字是不一樣的,不一樣的包中的類的名字是能夠相同的,當同時調用兩個不一樣包中相同類名的類時,應該加上包名加以區別。所以,包能夠避免名字衝突。
  • 包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。

包語句的語法格式爲:

package pkg1[.pkg2[.pkg3…]];

例如,一個Something.java 文件它的內容

package net.java.util;

public class Something{

   ...

}

那麼它的路徑應該是 net/java/util/Something.java 這樣保存的。

Package關鍵字:

  • package(包) 的做用是把不一樣的 java 程序分類保存,更方便的被其餘 java 程序調用。
  • 一個包(package)能夠定義爲一組相互聯繫的類型(類、接口、枚舉和註釋),爲這些類型提供訪問保護和命名空間管理的功能。
  • Java 使用包(package)這種機制是爲了防止命名衝突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和註釋(annotation)等。

在Java中,若是給出一個完整的限定名,包括包名、類名,那麼Java編譯器就能夠很容易地定位到源代碼或者類。Import語句就是用來提供一個合理的路徑,使得編譯器能夠找到某個類。

例如,下面的命令行將會命令編譯器載入java_installation/java/io路徑下的全部類

import java.io.*;

相關文章
相關標籤/搜索