lesson02_變量和數據類型

1、變量
  1.標識符
  在編寫Java程序的過程當中,須要咱們本身命名的東西,這些東西就是標識符。
標識符的組成
    1).0到9數字
    2).26個英文大小寫字母
    3).特殊符號:下劃線(_)、美圓符號($)、人民幣符號(¥)
  定義合法的標識符
    1).數字不能做爲開頭
    2).嚴格區分大小寫
    3).不可使用關鍵字
    4).定義時,儘可能達到見名知其意
  2.關鍵字
    關鍵字是被Java語言賦予特殊含義,具備專門用途的單詞,能夠這樣理解,就如同咱們註冊商標是,關鍵字已經被人註冊過了,不能再繼續使用。
    關鍵字官方網站:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
    Java中全部關鍵字都是小寫
  Java中共有50個關鍵字以及3個(true、false、null)不屬於關鍵字的標識符
  3.Java中的命名規則html

  針對Java當中的不一樣內容,在標識符的基礎上,爲這些內容命名還要符合如下規定,可是這些規定是不受語法約束的java

    1).包名:全部字母都小寫,當有多個單詞鏈接時,使用「.」鏈接,例如:aaa.bbb.ccc編程

    2).類名/接口名:全部單詞首字母大寫,例如AaaBbbCcc(知足駝峯命名規則,這種稱之爲大駝峯)數組

    3).變量名/方法名:第一單詞首字母小寫,其餘單詞首字母大寫,例如aaaBbbCcc(知足駝峯命名規則,這種稱之爲小駝峯)oracle

    4).常量名:全部字母都大寫,有多個單詞組成時,使用_鏈接,例如AAA_BBB_CCC工具

    5).全部的命名在同一個做用範圍內不能重名學習

  4.常量網站

  常量,是指在程序運行過程當中值不會發生變化的標識符3d

  定義常量的語法:htm

    final 數據類型 常量名稱=值;或者

    final 數據類型 常量名稱;

    常量名稱=值

  須要注意的是,常量的值只能賦一次值.。

  常量分類

    1).整數常量--全部整數

    2).小數常量--全部的小數

    3).布爾型常量--較爲特殊,只有兩個值true、false

    4).字符常量--將一個數字字母或者符號用單引號( ' ' )標識

    5).字符串常量--將一個或者多個字符用雙引號(「 」)標識

    6).null常量--只有一個數組就是null

  5.變量

  變量,顧名思義,就是在程序運行過程當中值會發生變化的標識符,它至關於有名字的容器,這個容器用於裝載不一樣類型的數據。它的做用是用來記錄數值的變化,而後展現給用戶。

    1).聲明變量

      聲明變量也叫定義變量,聲明變量是爲了使用最簡潔的代碼實現功能
      聲明變量的格式

      第一種:先聲明後賦值

      格式:數據類型 變量名;

      變量名=值;

      第二種:聲明賦值同步進行

      格式:數據類型 變量名=值;

      變量的聲明實質是是開闢一塊新的內存,而賦值就是對這塊新開闢的內存分配空間大小

      例如,聲明一個整型變量a,它首先是開闢一塊名字爲a的空間,當爲a賦值時候,例如a=12;則是爲這塊爲a的內存分配大小爲12的空間

    2).變量的做用域

    變量只有在它的做用域內才能夠被使用,當超出這個做用範圍,若是還須要使用這個變量就必須從新聲明。
2、數據類型

  Java語言是一門強類型語言,對於每一種數據都定義了明確的具體數據類型,根據內存存儲位置的不一樣,分爲兩種數據類型即基本數據類型和引用數據類型
  1.基本數據類型

    在Java中基本數據類型共有8種,在基本數據類型中又能夠分爲三大類:數值型、字符型、布爾型

    1).數值型

      (1).整數類型--存儲整數:字節類型(byte)、短整型(short)、整型(int)、長整型(long)

      

      (2).浮點類型--存儲小數:float(單精度浮點型)、double(雙精度浮點型)

      

    在數值型中須要注意的幾個地方

      (1).整數類型默認的是int類型,定義長整型時,當賦的值超出int的取值範圍,必須在數值後面加上L或者l,若是沒有超出,則可加可不加

      (2).浮點類型默認的是double類型,在定義單精度浮點數時,必須在數值後面加F或者f

      (3).能夠爲一個浮點數賦值一個整數的值

    2).字符類型

      (1).字符類型用於存儲單一字符,使用char表示

      (2).每一個chai類型的字符變量佔2個字節

      (3).在賦值時必定要用英文半角的單引號(‘’)括起來,例如‘a’

      (4).能夠賦值爲一個0到65535之間的整數,計算機會根據ASCII錶轉換爲對應的字符,例如97對應的字符是‘a’

      

      (5).一些特殊的字符

        --\r:表示回車

        --\n:表示換行

        --\t:表示製表符

        --\b:表示退格

    3).布爾類型

      布爾類型變量用來存儲布爾(真假)值,在Java中用boolean表示,該類型的變量只有兩個值,即true和false。其只佔用一個字節。

    4).各數據類型的詳解

    

  2.數值類型的轉換

    在Java編程中,經常涉及到數據類型的轉換,目前主要講基本數據類型中數值類型轉換,包括自動類型(隱式)轉換,另外一種是強制類型(顯式)轉換。

    在前面講數據類型的時候,咱們提到了各數據類型的取值範圍從小到大依次:

    (byte、short、byte)-->int-->long-->float-->double

    在基本數據類型中,boolean類型佔一個字節,因爲其自己所表明的特殊含義,它不與其餘類型進行轉換

    1).自動類型轉換

    從取值範圍小向取值範圍大轉換,這種轉換方式叫作自動類型轉換,也叫隱式轉換,它不須要作任何的說明。

    例如:byte b=14;int a=b;運行不會報錯

    注意:

      (1).byte類型能夠自動轉換爲short,int,long,float,double,可是不能直接轉換爲char,這是由於byte的取值範圍是(-128,127),char的取值範圍是[0,65535],這兩個範圍比較大小沒法做比較。

      (2).short類型能夠自動轉換爲int,long,float,double,可是不能直接轉換爲char。

    2).強制類型轉換

    從取值範圍較大想取值範圍較小的轉換,這種轉換方式叫作強制類型轉換,也叫顯式轉換,轉換過程當中須要作說明

    例如:int a=13;byte b=a;若是是這樣會報錯,須要修改成byte b=(byte)a;在a前面說明轉換後的數據類型是byte

    注意:在byte或short與char做轉換時,都須要作強制聲明

    即:short s=12;char c=(char)s;byte b=11;char x=(char)b;

    char c=97;short s=(short)c;char cc=96;byte b=(byte)cc;

    3).表達式類型自動提高

    表達式提高是指由變量和運算符組成的一個算式,變量在進行運算時,會發生自動類型轉換,自動提高到它默認的類型

    例如:byte b1=3;byte b2=4;byte b3=b1+b2;運行時會報錯,這是由於在這裏byte b3=b1+b2在運算時會自動把b1+b2的結果轉換爲int類型,會變成有int類型轉換爲byte類型,是屬於強制類型轉換

    所以修改成byte b3=(byte)b1+b2;

  3.引用數據類型的簡單介紹

    引用數據類型主要包括類、接口、數組,這裏主要講String這個類簡單的聲明和使用

    String是聲明字符串的數據類型,它是引用數據類型,當在聲明時,與基本數據類型一致,在賦值是須要使用「」把值括起來,或者直接賦值爲null

    其餘數據類型能夠轉換我字符串,轉換的方式:直接在其餘數據類型後面加上「」;

    例如:int a=11;String s=a+「」;它會把int類型a轉換爲String類型
3、進制數之間的轉換
  1.十進制數與二進制數之間的轉換

    1).十進制轉二進制

    將這個十進制數一直除以2獲得餘數,直到商爲0時,將所獲得的餘數倒序從左往右排列

    

    將十進制數6轉換爲二進制數爲110

      原碼: ·就是二進制定點表示法,即最高位爲符號位,「0」表示正,「1」表示負,其他位表示數值的大小。  

      反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼除符號位外逐位取反。

      補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。 ·計算機的全部數據運算是經過補碼來實現的。

    2).二進制轉十進制

    將這個二進制數上的數從右往左乘以2的次方(從0次方開始)

    

    將二進制數0110 0100轉換成十進制數獲得的結果爲100

  2.十進制數與八進制數之間的轉換

    1).十進制轉八進制

    與十進制轉二進制同樣,就是將十進制數一直除以8取餘數,直到商爲0時,將餘數倒序從左往右排列,獲得轉換結果

     

    2).八進制轉十進制

    與二進制轉十進制同樣,就是將八進制數上的每一位,從有往左乘以8的次方(次方從0開始)

    例如:將八進制數0226轉換成十進制數

    ==>6*8^0+2*8^1+2*8^2=6+16+128=150
  3.其餘進制數之間的轉換

    1).十六進制與十進制之間的轉換--與二進制與十進制之間的轉換同樣

    2).二進制與八進制之間的轉換

      --1.二進制轉八進制:首先將二進制數從右往左每三個看作一個總體(取三合一),不足三個的在前添0;其次是對每三個一組的總體轉換成十進制數;將每一組所獲得的結果合在一塊兒就是二進制轉成八進制的結果

      例如:將二進制數10010110轉成八進制數

      首先:取三合一:   10   010   110  ;不足三個的左邊添0   -->  010   010  110

      其次:對每三個一組轉成十進制數:第一組結果是1*2^1=2;第二組結果是:1*2^1=2;第三組結果是:1*2^1+1*2^2=2+4=6

      所以這個二進制轉成八進制的結果爲226。爲了與十進制數區分,在左邊添0,結果爲0226。

      驗證一下:

      從前面知道,八進制數0226轉成十進制數結果爲150,咱們看一下這個二進制數轉換成十進制數的結果:1*2^1+1*2^2+1*2^4+1*2^7=2+4+16+128=150。結果也是150

      --2.八進制轉二進制:八進制數經過除2取餘法,獲得二進制數,對每一個八進制爲3個二進制,不足時在最左邊補零。

      例如:將八進制數0226轉換成二進制數

      首先:對八進制數上的每個數字看作是十進制數,將其轉換成二進制數,二進制數不足三個在左邊添0,

       

        所以最後的結果:10010110(最左邊的0能夠省略的)

        更多進制數之間的轉換,請參考:https://jingyan.baidu.com/article/495ba84109665338b30ede98.html

4、鍵盤輸入Scanner

  在進行Java編程時,常常會遇到須要鍵盤輸入,這個時候就須要用到Scanner。

  Scanner是專門用於鍵盤輸入的,是已經別人已經寫好了,咱們直接使用它就能夠。咱們在使用的時候,總結起來四步:

  第一步:導包,導包的目的是爲了告訴程序,須要使用到Scanner這個鍵盤輸入工具類,在代碼首行輸入:import java.util.Scanner;或者import java.util.*;前者表示導入java.util包中的Scanner這個類,後者表示導入這個包中的全部類

  第二步:聲明Scanner類型的變量(學習完面向對象以後這裏實際上是建立對象),即:Scanner Scanner的變量名=new Scanner(System.in);這裏的Scanner變量名是任意命名的,只要 知足Java命名規則

  第三步:提示輸入:System.out.println(」請輸入「);

  第四步:聲明變量接收輸入的內容。這裏須要注意的是,目前咱們爲已經學習了8種基本數據類型,外加一種引用數據類型,並且每一種數據類型接收的方式都不同

    1.當接收的內容爲byte類型時:首先聲明一個byte類型的變量,而後把鍵盤輸入的內容賦值給到這個變量

      即:byte 變量名=Scanner變量名.nextByte();

    2.當接收的內容爲short類型時。首先聲明一個short類型的變量,而後把鍵盤輸入的內容賦值給到這個變量

      即:short 變量名=Scanner變量名.nextShort();

    3.int、long、float、double、boolean同樣的原理,只是在接收的時候,使用Scanner變量名.nextXX時,這裏的XX是指接收數據類型的名字,首字母大寫便可

    4.當接收的內容爲String時,一樣聲明一個String類型的變量接收,而後把鍵盤輸入的內容賦值給這個變量

      即:String 變量名=Scanner變量名.next();

    5.當接收的內容是char時,首先也是聲明一個char類型的變量,而後吧鍵盤輸入的內容賦值給這個變量

      在此以前咱們先來觀察字符串與字符之間的關係,能夠這樣理解,字符串是由字符組成,字符串能夠一個一個的分割成字符,例如字符串」abcd「,它是由‘a’、‘b’、‘c’、‘d’四個字符組成,在這個字符串abcd中,a是第一個字符,下標爲0,b是第二個字符,下標爲1......

      所以,在接收char類型時,是接收鍵盤輸入的字符串,而後取的是輸入字符串的第一個字符,所以它對應的下標應該是0。

      即:char 變量名=Scanner變量名.next().charAt(0);

相關文章
相關標籤/搜索