你真的懂嗎?Java基礎(chǔ)語法(語法、位運算、JavaDoc等)

一.注釋、標(biāo)識符、關(guān)鍵字

1.注釋(comments)

  • 平時我們編寫代碼,在代碼量比較少的時候,我們還可以看懂自己編寫的代碼,但是當(dāng)項目結(jié)構(gòu)一旦復(fù)雜起來,我們就需要用到注釋了!
  • 注釋并不會被程序執(zhí)行,是給我們自己寫代碼的人看的,方便理解
  • 書寫注釋是一個非常好的習(xí)慣
  • Java中注釋有三種:單行注釋(Line comment)多行注釋(block comment)文檔注釋(JavaDoc)
  • 找好看的注釋:搜索有趣的代碼注釋
  • 三種注釋的代碼單行注釋:只能注釋一行,//javapublic class Hello { public static void main(String[] args) { //單行注釋 //輸出hello一句話! System.out.println("hello"); } }多行注釋:可以注釋一段文字,/ /javapublic class Hello { public static void main(String[] args) { //單行注釋 //輸出hello一句話! //多行注釋 / 這是多行注釋 這是多行注釋 這是多行注釋 / System.out.println("hello"); JavaDoc:文檔注釋,/* /javapublic class Hello { public static void main(String[] args) { //文檔注釋 /* * @descroption hello * @Author zhang / System.out.println("hello"); } }

comments:注釋

Annotations:注解

Bold:粗體

italic:斜體

description:描述

Author:作者

2.標(biāo)識符

  • Java里面的關(guān)鍵字
你真的懂嗎?Java基礎(chǔ)語法(語法、位運算、JavaDoc等)
  • Java所有的組成成分都需要名字,類名、變量名以及方法名都被稱作標(biāo)識符。(每個人都有自己的名字,程序也是如此,作為程序員,我們就是上帝造物主,我們要給自己創(chuàng)造的程序命名,這也體現(xiàn)了程序來源于生活?。?/p>

  • 標(biāo)識符注意事項

  • 所有的標(biāo)識符首字符都應(yīng)該以字母(A-Z或者a-z)、美元符($)、或者下劃線(_)開始

  • 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下劃線(_)或者數(shù)字的任意字符組合

  • 不能使用關(guān)鍵字作為變量名或者方法名

  • 標(biāo)識符是大小寫敏感的

  • 合法標(biāo)識符例子:age、$salary、_value、__1_value

  • 不合法標(biāo)識符例子:123abc,-salary、#abc

  • 可以使用中文命名,但是一般不推薦怎樣去使用,也不建議使用拼音,原則上命名要見名知意

  • 文件名與類名保持一致,并且類名首字母大寫(默認(rèn)規(guī)范)

二.數(shù)據(jù)類型

1.語言類型(安全性與性能)

  • 強類型語言:要求變量的使用要嚴(yán)格符合規(guī)定,所有的變量都必須先定義后才能使用(安全性高,性能低)
  • 弱類型語言:要求變量的使用不需要嚴(yán)格符合規(guī)定,所有的變量不需要先定義后才能使用(安全性低,性能高)

2.Java的數(shù)據(jù)類型分為兩大類

  • 基本類型(Primitive type)單引號與雙引號:‘ 中 ’(只能為一個字符或一個字,‘中’或者‘A’等);” zahng “(可以有多個字符)判斷數(shù)值類型大小八大基本類型代碼:javapublic class Demo2 { //八大基本類型 //整數(shù) byte b1 = 10; short b2 = 100; int b3 = 1000; long b4 = 1000000L;//Long 類型要在后面加一個L,以示區(qū)分與上面不同。 //浮點數(shù) float c1 = 1.1665F;//float 類型要在后面加一個F,以示區(qū)分與double不同。 double c2 = 1.45466456; //字符類型 char d1 = 'A';//只能寫一個字或一個字符 //String不是基本類型,屬于引用類型 String e1 = "zhang";//可以寫多個字符 //boolean:布爾值,其值只有true與false boolean f1 = true; }
  • 引用類型(reference type):除了基本數(shù)據(jù)類型,都是引用類型!

3.變量

  • 變量是什么:就是可以變化的量
  • java是一種強類型語言,每個變量都必須聲明其類型
  • Java變量是程序中最基本的存儲單元,其3要素包括:變量名、類型變量和、作用域javatype varName = value //數(shù)據(jù)類型 變量名 = 值;可以使用逗號隔開來聲明多個同類型的變量!
  • 注意事項:每個變量都有類型,類型可以是基本數(shù)據(jù)類型,也可以是引用類型(String 是引用類型)變量名必須是合法的標(biāo)識符變量聲明是一條完整的語句,因此每一個聲明都必須以分號(;)結(jié)束

4.什么是字節(jié)

  • 位(bit):是計算機內(nèi)部數(shù)據(jù)存儲的最小單位,11101110就是一個八位二進制數(shù),習(xí)慣上用小寫的b表示。

  • 字節(jié)(byte):是計算機中數(shù)據(jù)處理的基本單位,習(xí)慣上用大寫B(tài)來表示

  • 1B(byte,字節(jié))= 8 bit(位),也就是說,如果用二進制表示的話,1字節(jié)=2的(8-1)次方 bit(位)

  • 字符:是指計算機中使用的字母、數(shù)字、字、和字符

  • 單位換算

  • 1bit表示1位

  • 1byte 表示1個字節(jié) 1B = 8b(二進制的8次方)【8-1的次方】

  • 1024B = 1KB

  • 1024KB = 1M

  • 1024 M = 1G

  • 電腦32位于64位的區(qū)別向下兼容,64位的電腦既可以裝64位操作系統(tǒng)也可以裝32位操作系統(tǒng),反之不行!位數(shù)越高,電腦內(nèi)存尋址越強,電腦運行速度越快同時,64位電腦,最多可以支持128G內(nèi)存,32位電腦,最多支持4G內(nèi)存,所以如果你想加內(nèi)存條,64位的理論上最多可以加到128G

三.類型轉(zhuǎn)換

  • 由于Java是強類型語言,所以要進行某些運算時,需要用到類型轉(zhuǎn)換。

java

低---------------------------------->高
  byte,short,char->int-->long-->float-->double
  • 小數(shù)優(yōu)先級大于整數(shù)
  • 運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)換為同一類型,然后在進行運算
  • 高轉(zhuǎn)低需要強制轉(zhuǎn)換,低轉(zhuǎn)高不需要

java

強制類型轉(zhuǎn)換:
  高-----低       int-----byte
自動轉(zhuǎn)換:
  低------高  int-------double
  • 強制類型轉(zhuǎn)換(括號里面加上轉(zhuǎn)換類型)【格式:(類型)變量名】

java

public class Demo9 {
    public static void main(String[] args) {
        int s1 = 128;
        byte s2 = (byte)s1;//內(nèi)存溢出
        System.out.println(s2);
    }
}
結(jié)果為:
  -128
  • 自動類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換)

java

public class Demo10 {
    public static void main(String[] args) {
        int s1 = 128;
        double s2 = s1;
        System.out.println(s2);
    }
}

結(jié)果為:
  128.0
  • 常見錯誤

  • 1.轉(zhuǎn)換的結(jié)果為負(fù)數(shù),原因為超出byte的最大正范圍,避免內(nèi)存溢出

java

public class Demo9 {
    public static void main(String[] args) {
        int s1 = 128;
        byte s2 = (byte)s1;//內(nèi)存溢出
        System.out.println(s2);
    }
}
結(jié)果為:
  -128

  • 2.不能對boolean值進行轉(zhuǎn)換,boolean是按位來計算大寫的,而其他的數(shù)據(jù)類型單位為字節(jié)?。?!
  • 3.不能把對象類型轉(zhuǎn)換為不相干的類型(人不能轉(zhuǎn)換為一本書)
  • 4.在把高容量轉(zhuǎn)換為低容量的時候,強制轉(zhuǎn)換
  • 轉(zhuǎn)換的時候可能存在內(nèi)存溢出,或者精度問題!(浮點數(shù)轉(zhuǎn)int時,例如23.7變?yōu)?3、-4.6變?yōu)?4,丟失精度)
  • char類型javapublic class Demo11 { public static void main(String[] args) { //字符轉(zhuǎn)換 char s1 = 'a'; int s2 = s1 +1; System.out.println(s2);//自動轉(zhuǎn)換 System.out.println((char) s2);//強制轉(zhuǎn)換 } } 結(jié)果為 98 b
  • 操作比較大的數(shù)的時候,注意溢出問題,JDK7新特性,數(shù)字之間可以用下劃線分割javapublic class Demo12 { public static void main(String[] args) { //數(shù)字比較大的時候,注意溢出問題 //JDK7新特性,數(shù)字可以用下劃線分割表示 int s1 = 1_0000_0000; int s2 = 100; int s3 = s1 * s2;//計算時溢出了 long s4 = s1 * s2;//計算時按默認(rèn)的int計算,轉(zhuǎn)換為long類型之前就已經(jīng)錯誤了 System.out.println(s3); System.out.println(s4); } } 結(jié)果為: 451611456564151 451611456564151
  • 解決上面問題javapublic class Demo12 { public static void main(String[] args) { //數(shù)字比較大的時候,注意溢出問題 //JDK7新特性,數(shù)字可以用下劃線分割表示 int s1 = 1_0000_0000; int s2 = 100; int s3 = s1 * s2;//計算時溢出了 long s4 = s1 * s2;//計算時按默認(rèn)的int計算,轉(zhuǎn)換為long類型之前就已經(jīng)錯誤了 long s5 = s1 * (long)s2;//計算時,先將s2從int轉(zhuǎn)換為long在進行計算,結(jié)果就不會出現(xiàn)問題 System.out.println(s3); System.out.println(s4); System.out.println(s5); } }

四.變量、常量

1.變量

  • 變量是什么:就是可以變化的量
  • java是一種強類型語言,每個變量都必須聲明其類型
  • Java變量是程序中最基本的存儲單元,其3要素包括:變量名、類型變量和、作用域javatype varName = value //數(shù)據(jù)類型 變量名 = 值;可以使用逗號隔開來聲明多個同類型的變量!
  • 注意事項:每個變量都有類型,類型可以是基本數(shù)據(jù)類型,也可以是引用類型(String 是引用類型)變量名必須是合法的標(biāo)識符變量聲明是一條完整的語句,因此每一個聲明都必須以分號(;)結(jié)束

2.變量作用域

  • 類變量
  • 實例變量
  • 局部變量javapublic class Demo13 { //類變量 static int s1 = 10;//類變量必須要以static修飾 //實例變量 int s2 = 123;//沒有static修飾為實例變量 //main方法 public static void main(String[] args) { //局部變量 int s3 = 4546;//定義在方法里的變量,局部變量 } }
  • 詳解變量

java

public class Demo14 {
    //類變量
    static int s3 = 464;
    static {
        //代碼塊,定義屬性,在類加載的時候就加載了
    }
    //實例變量:從屬于對象(當(dāng)前這個類)
    //如果不自行初始化,有默認(rèn)值
    //基本數(shù)據(jù)類型:整數(shù)默認(rèn)值為:0,浮點數(shù)為:0.0,字符為:U0000(不顯示),boolean為:false
    //除了基本數(shù)據(jù)類型,其余的默認(rèn)值為null
    int age;
    String name;
    char address;
    double cat;
    boolean pet;
    //main方法
    public static void main(String[] args) {
        //局部變量:在當(dāng)前方法有效,作用域為當(dāng)前main方法
        //必須聲明和初始值
        int s1 = 11;
        System.out.println(s1);
        //實例變量的調(diào)用
        Demo14 s2 = new Demo14();
        System.out.println(s2.age);
        System.out.println(s2.name);
        System.out.println(s2.cat);
        System.out.println(s2.address);
        System.out.println(s2.pet);
        //類變量
        System.out.println(s3);//可以直接調(diào)用
    }
    //add方法
    public void  add(){
    }
}
結(jié)果為:
  11
  0
  null
  0.0
    //char的默認(rèn)值
  false

3.常量

  • 常量(constant):初始化(initialize)后不能在改變值!!不會改動的值。
  • 所謂的常量可以理解為一種特殊的變量,它的值被設(shè)定后,在程序運行過程中不允許被修改
  • 格式:final 常量名 = 值;final double PI = 3.1415926,變量名默認(rèn)大寫
  • 常量名一般使用1大寫字符??!
  • 修飾符,不存在先后順序

java

public class Demo15 {
    static  public  int S = 14;
    public static void main(String[] args) {
        System.out.println(S);
    }
}
輸出結(jié)果為:
  14

4.變量的命名規(guī)范

  • 所有的變量、方法、類名:見名知意
  • 類成員變量:首字母小寫和駝峰原則:timeLate
  • 局部變量:首字母小寫和駝峰原則
  • 常量:大寫字母和下劃線:MAX_VALUE
  • 類名:首字母大寫和駝峰原則:Demo,Hello
  • 方法名:首字母小寫和駝峰原則:add()、run()

五.運算符

  • 運算符
你真的懂嗎?Java基礎(chǔ)語法(語法、位運算、JavaDoc等)
  • cast:轉(zhuǎn)換
  • 自增、自減,一元運算符++,--

java

public class Demo1 {
    public static void main(String[] args) {
        //自增自減,++    --
        int s1 = 2;
        int s2 = s1++;//先賦值再加
        int s3 = ++s1;//先加后賦值
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
    }
}
結(jié)果為:
  4
  2
  4
  • 邏輯運算

java

public class Demo2 {
    public static void main(String[] args) {
        //邏輯運算
        //短路運算
        int s1 = 6;
        boolean s2 = (s1<5)&&(s1++<5);//前面為false,后面的s1++就不會執(zhí)行?。?        System.out.println(s2);
        System.out.println(s1);
    }
}
結(jié)果為:
  false
  6
  • 位運算

java

public class Demo3 {
    public static void main(String[] args) {
        //位運算 0   1
        /*
        A =0011 1100
        B =0000 1101

        A&B:0000 1100   兩者都為1,才為1
        A|B:0011 1101   兩者只要有一個為1,就為1
        A^B(異或);0011 0001   兩個數(shù)字一樣為0,不同為1
        ~B:1111  0010    取反

        2*8 = 16       2*2*2*2
        <<  左移
        >>  右移
        0000 0001       1
        0001 0000       16
         */
        System.out.println(2<<3);//上面的例子
        System.out.println(256>>2);
        System.out.println(256>>>2);//與>>結(jié)果一樣
    }
}
結(jié)果為:
  16
  64
  64
  • 三元運算符

java

public class Demo4 {
    public static void main(String[] args) {
        //三元運算符
        //x(語句) ? y : s
        //如果x==true,則返回y,否則結(jié)果為s
        int s1 = 1;
        int s2 = 1<2 ? 10 : 5;
        System.out.println(s2);
    }
}
結(jié)果為:
  10
  • 優(yōu)先級:()優(yōu)先級高,建議多使用?。?!

六.包機制、javaDoc

1.包

  • 為了更好地組織類,Java提供了包機制,用于區(qū)別類名的命名空間
  • 包語句的格式為:package pkg1;

java

package java.lang
  • 一般利用公司域名倒置作為包名;www.baidu.com com.baidu.www
  • 為了能夠使用某一個包的成員,我們需要在Java程序里面導(dǎo)入該包,使用“import”語句即可完成此功能!
  • import package

java

import base.Demo14;
import base.*           //導(dǎo)入全部 *表示通配符
  • 單詞:refactor 重構(gòu)

2.JavaDoc

  • JavaDoc命令是用來聲稱自己的API文檔的
  • 可以加在類上,也可以加在方法上(自動生成一些東西)

java

package operator;
/**
 * @author zhang
 * @version 1.0
 */
public class Demo4 {
    String name;
    /**
     * 
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception{
        //三元運算符
        //x(語句) ? y : s
        //如果x==true,則返回y,否則結(jié)果為s
        int s1 = 1;
        int s2 = 1<2 ? 10 : 5;
        System.out.println(s2);
    }
}

  • 參數(shù)信息@author 作者名@version 版本號@since 指明最早使用的JDK版本@param 參數(shù)名@return 返回值情況@throws 異常拋出情況
  • 生成JavaDoc文檔javajavadoc -encoding UTF-8 -charset UTF-8 Demo4.java生成文檔
你真的懂嗎?Java基礎(chǔ)語法(語法、位運算、JavaDoc等)
  • IDEA生成幫助文檔
  • javazh_CN //生成中文文檔 -encoding UTF-8 -charset UTF-8 //設(shè)置編碼集
你真的懂嗎?Java基礎(chǔ)語法(語法、位運算、JavaDoc等)

生成JavaDoc幫助文檔!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容