002-標(biāo)識符,變量,數(shù)據(jù)類型,數(shù)據(jù)類型的轉(zhuǎn)換,運算符

變量

程序的都是運行在內(nèi)存中的,程序中數(shù)據(jù)在內(nèi)存中都擁有獨立的內(nèi)存地址。
因為內(nèi)存地址不好記憶?所以就使用變量
變量就是數(shù)據(jù)在內(nèi)存中的內(nèi)存地址的表示。

如何使用變量

java是強類型語言,在java中的嚴格區(qū)分數(shù)據(jù)類型

1、聲明變量(在內(nèi)存中申請一塊地址) 
    語法格式:   數(shù)據(jù)類型  變量名;
                int     a;

2、給變量賦值(將數(shù)據(jù)放入申請的內(nèi)存中)   注意:值要與數(shù)據(jù)類型匹配
    語法格式:   變量名 =  值 ;
                a = 10;
3、使用變量
    a = a + 10;
    System.out.println(a);

代碼演示

public class Demo1{    
    public static void main(String[] args){
        
            //1、聲明變量
            int a;
            //2、變量賦值
            a = 102;
            //3、使用變量
            a = a + 10;
            System.out.println(a);
        
            //變量的定義的簡寫方式
            int b = 10;
            b = b + 10;
            System.out.println(b);  
    }    
}

變量名(標(biāo)識符)的命名規(guī)則

  1. 標(biāo)識符只能由數(shù)字、字母、下劃線、美元$符號四個部分組成(可以用中文不要用)
  2. 標(biāo)識符不能用數(shù)字開頭
  3. 標(biāo)識符不能使用java的關(guān)鍵字和保留字
  4. 標(biāo)識符要見名知意
  5. 使用駝峰命名法(兩個以上單詞組成) 小駝峰(方法名、變量名) bigData 大駝峰 BigData(類名)

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

引用數(shù)據(jù)類型

  • 數(shù)組
  • 接口

基本數(shù)據(jù)類型(8種)

  • 整數(shù)型

    byte short int long

類型 字節(jié)數(shù) 取值范圍
byte 1字節(jié) -2^7 ~ 2^7-1
short 2字節(jié) -2^15 ~ 2^15-1
int 4字節(jié) -2^31 ~ 2^31-1
long 8字節(jié) -2^63 ~ 2^63-1
  • 浮點型
類型 字節(jié)數(shù) 取值范圍 小數(shù)點位數(shù)
float 4字節(jié) ±3.4E+38 7位
double 8字節(jié) ±1.7E+308 16位
  • 字符型
類型 字節(jié)數(shù) 取值范圍
char 2字節(jié) 0~65535
  • 布爾型
類型 字節(jié)數(shù) 取值范圍
boolean 1字節(jié) true、false

注意:

  1. 在java中定義任意一個整數(shù)默認都會被當(dāng)做是int類型(所以在定義long類型數(shù)據(jù)的時候加上L作為標(biāo)記)
  2. 在java中定義任意一個小數(shù)默認都會被當(dāng)做是double類型(所以在定義float類型數(shù)據(jù)的時候加上F作為標(biāo)記)
  3. 數(shù)據(jù)類型所占字節(jié)數(shù)與取值范圍無關(guān)
  4. char、byte、short類型在參加計算之前,會將自己的類型提升為int類型

數(shù)據(jù)類型的轉(zhuǎn)換

  • 自動(隱式)類型轉(zhuǎn)換
  • 強制(顯式)類型轉(zhuǎn)換

代碼演示

public class Demo3{

    public static void main(String[] args){
        //自動類型轉(zhuǎn)換
        /*
        long i = 1000;
        System.out.println(i);

        //強制類型轉(zhuǎn)換    (類型)
        float f = (float)1.2;
        System.out.println(f);

        */
        /*
            總結(jié):
            如果等號右邊的類型比左邊的類型要范圍小就會發(fā)生自動類型轉(zhuǎn)換
            小轉(zhuǎn)大
            如果等號右邊的類型比左邊的類型要范圍大就要發(fā)生強制類型轉(zhuǎn)換(否則會報錯)
            大轉(zhuǎn)小        

            byte    short    int     long     float    double

                    char                     
            boolean類型在java中不參與任何的數(shù)據(jù)類型轉(zhuǎn)換    


            強制類型轉(zhuǎn)換會發(fā)生數(shù)據(jù)的丟失
            如果是浮點型轉(zhuǎn)換成整數(shù)型, 小數(shù)點以后的數(shù)據(jù)都會丟失

            大類型強轉(zhuǎn)成小的類型,見圖            
        */
        /*
        整數(shù)與字符型互轉(zhuǎn)
        int i = 98;
        char c = (char)i;
        System.out.println(c);// 結(jié)果 b        

        char c = 'a';
        int i = c;
        System.out.println(i); // 結(jié)果97        
        */
        //整數(shù)與浮點型互轉(zhuǎn)    
        /*
        int i = 98;
        double d = i;
        System.out.println(d);//結(jié)果98.0

        //直接砍小數(shù)點以后的數(shù)據(jù)
        double d = 1.9;
        int i = (int)d;
        System.out.println(i);//結(jié)果 1
        */

        byte b1 = 100;
        byte b2 = 100;         
        byte b5 = (byte)(b1+b2);
        System.out.println(b3); //結(jié)果-56        
    }

}

總結(jié):如果等號右邊的類型比左邊的類型要范圍小就會發(fā)生自動類型轉(zhuǎn)換 小轉(zhuǎn)大 如果等號右邊的類型比左邊的類型要范圍大就要發(fā)生強制類型轉(zhuǎn)換(否則會報錯) 大轉(zhuǎn)小
基本數(shù)據(jù)類型大小范圍

byte ---> short ---> int ---> long ---> float ---> double char

boolean類型在java中不參與任何的數(shù)據(jù)類型轉(zhuǎn)換

強制類型轉(zhuǎn)換會發(fā)生數(shù)據(jù)的丟失

? 如果是浮點型轉(zhuǎn)換成整數(shù)型, 小數(shù)點以后的數(shù)據(jù)都會丟失

? 如果是大類型強轉(zhuǎn)成小的類型,見圖

運算符

算術(shù)運算符 + - * / % ++ --

關(guān)系運算符 > < >= <= == !=

賦值運算符 = += -= *= /= %=

邏輯運算符 && || !

位運算符(了解) & | ~ << >>

三目運算符

代碼演示

public class Demo4{

    public static void main(String[] args){
        /*
        int a = 10;
        int b = 20;
        System.out.println(a+b);
        System.out.println(a*b);
        System.out.println(a-b);
        System.out.println(a/b);
        System.out.println(a%b);

        //String 類型   字符串要用雙引號擴起來
        String name = "cxk";
        System.out.println(name);


        int a =10;
        int b =20;
        System.out.println(a+b+"a+b的結(jié)果為");//30a+b的結(jié)果為
        System.out.println("a+b的結(jié)果為"+a+b);//a+b的結(jié)果為1020
        System.out.println(3+5+"哈哈"+1+2);//8哈哈12

        int a =10;
        int b =20;
        String c = "a+b的結(jié)果為"+(a+b);

        int a = 10;
        //a++;// a = a + 1;
        System.out.println(a++);//結(jié)果 10    a=11
        System.out.println(++a);//結(jié)果 12

        int x = 10;   int y = 12;
                x=9      y =13      x=10  y=12
        int z = --x + y++    +   x++ - --y;   z?  x?  y?    
                9   + 12     +   9   - 12


        */


        /*
            總結(jié)
            整數(shù)與整數(shù)計算結(jié)果為整數(shù)
            整數(shù)與浮點數(shù)計算結(jié)果為浮點數(shù)
            +號可以當(dāng)數(shù)據(jù)計算,也可以作為字符串的連接
            任何類型與字符串拼接之后的結(jié)果都是字符串類型
            ++  表示自身加1   
            ++在前,先加1再使用  ++ 在后,先使用再加1
            --  表示自身減1

        */

    }

}

代碼演示

public class Demo5{
    public static void main(String[] args){

        /*
            int a = 10;
            int b = 20;
            System.out.println(a>b);
            System.out.println(a<b);
            System.out.println(a==b);
            總結(jié):
            關(guān)系運算符的結(jié)果為boolean類型
            等值判斷要使用==

            int a = 10;
            a += 10;//  a = a + 10;
            System.out.println(a);    //20    
            a%=20; // a = a % 20;
            System.out.println(a);  //0        

            short s1 = 10;
            short s2 = 20;
            s1 = s1 + s2; ?  錯誤,因為s1和s2在參加計算之前會提升為int類型,
            s1 += s2; ?      正確,+=將s1+s2的結(jié)果內(nèi)部做強轉(zhuǎn),強轉(zhuǎn)成short再賦給s1
            short s1 = 10;
            short s2 = 20;
            //s1 = s1 + s2; 
            s1 += s2; //s1 = s1 + s2;
            System.out.println(s1);


            邏輯運算符的符號兩都應(yīng)該是boolean類型或者boolean類型表達式
            邏輯運算符的結(jié)果也是boolean類型的

            ||  只要有一個結(jié)果為true,最終的結(jié)果就為true
            &&  只要有一個結(jié)果為false,最終的結(jié)果就為false
            !  取反,如果是true,取反就為false.如果是false,取反就為true

            && & || | 都可以被用作邏輯運算,且結(jié)果一樣的。

            && ||   短路與(如果表達式中,有一個為false就不會往下再執(zhí)行了)
                    短路或(如果表達式中,有一個為true就不會往下再執(zhí)行了)
            & |     無論結(jié)果如何都會執(zhí)行完整個表達式


            int a = 10;
            int b = 20;
            //boolean boo = a > 10 || b < 30;
            //boolean boo = a > 10 && b < 30;
            boolean boo = !(a > 10 && b < 30);
            System.out.println(boo);

            int a = 10;
            int b = 20;
            //boolean boo = ++a > 10 || b-- < 30;
            boolean boo = a++ > 10 & b-- < 30;
            //boolean boo = !(a > 10 && b < 30);
            //System.out.println(boo);
            System.out.println(a);
            System.out.println(b);
        */

        /* 
             &  按位與    按位計算,同為1結(jié)果為1,否則為0
             10 & 20  = ?
             0    1    0    1    0
             1  0   1   0    0
             -----------------------
             0    0    0    0    0

             |  按位或   按位計算,同為0結(jié)果為0,否則為1
             12 | 19 = ?
             0    1    1    0    0
             1  0      0   1     1
             -----------------------
             1    1   1    1    1

             ^  按位亦或  按位計算,相同為0,不同為1
             19^21 = ?
             1  0      0   1     1
             1    0    1    0    1
             -----------------------
             0    0    1    1    0             

             ~  按位取反    相反值-1
             ~12              
             << 左移 
             12 << 2
             00001100
             00110000             

             >> 右移
             12 >> 2    
             00001100
             00000011

            System.out.println(10&20);//結(jié)果 0
            System.out.println(12|19);//結(jié)果 31
            System.out.println(19^21);//結(jié)果 6
            System.out.println(~12);//結(jié)果 -13
            System.out.println(12 << 2);//結(jié)果 48
            System.out.println(12 >> 2);//結(jié)果 3


            如何求得2的三次方?
            00000010
            00001000

            System.out.println(2<<2);
            System.out.println(2*2*2);

            三目運算符
            語法:      boolean類型表達式  ?  結(jié)果1 : 結(jié)果2; 
            如果表達式的結(jié)果為true,那么就是結(jié)果1,否則就是結(jié)果2


            int age = 12;
            String s =  age > 18 ? "能上網(wǎng)":"回家呆著";

            System.out.println(s);
        */



    }
}

簡單的人機交互

代碼實現(xiàn)

import java.util.Scanner;
public class Demo6{
    public static void main(String[] args){

        /*
            1、創(chuàng)建一個Scanner對象
            2、引入Scanner類
            3、使用的Scanner對象的方法

        */
        Scanner sc = new Scanner(System.in);        

        System.out.println("請輸入一個姓名");
        String name = sc.next();
        System.out.println("姓名為:"+name);
        System.out.println("請輸入一個年齡");
        int age = sc.nextInt();
        System.out.println("年齡為:"+age);
        System.out.println("請輸入一個成績");
        double score = sc.nextDouble();
        System.out.println("分數(shù)為:"+score);

        //sc.nextChar()//沒有這樣的方法
    }    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容