20145232 韓文浩 《Java程序設計》第2周學習總結

教材學習內容總結

這周主要學習了註釋的使用,運算符的基本使用,認識了類型,變量與常量,以及一些語句語法。複習了進制轉換。html

  • 整數
    Short整數佔用2字節,儲存整數範圍-32768 ~ 32767(2-15 ~ 215-1)
    int整數佔用4字節,儲存整數範圍-21474836548 ~ 2147483647(2-31 ~ 232-1)
    long整數佔用8字節,儲存整數範圍2-63 ~ 263-1
  • 字節
    byte長度就是1字節,在須要逐字節處理數據時(如圖像處理、編碼處理等),就會使用byte類型,若用於表示整數,byte可表示-128~127的整數
  • 浮點數
    儲存小數數值,分爲float(4字節)和double(8字節)
  • 字符
    Char用來存儲‘A’‘B’字符符號。每一個字符類型佔2字節,漢字字符和英文字符都是雙字節儲存。
  • 布爾
    boolean類型可表示true和false

float PI = 3.14將double類型放入float變量中,會損失4字節的數據的問題
此時須要強制類型轉換
解決方法:float PI = 3.14F 或者 float PI =(float)3.14
強制將3.14轉化爲byte類型windows

關於整數類型的轉換
編譯時出現integer number too large錯誤,緣由是程序中寫下一個整數時,默認不超過int類型的長度
解決方法:long number = 2147483648L //用long配置長度學習

int a = 10; double b = a * 3.14
若是表達式中包括不一樣類型數值,則運算時以長度最長的類型爲主,其餘數值自動提高類型編碼

若是操做數都是不大於int的整數,則自動提高爲int類型進行運算。spa

輸出a的值使用「a=」
System.out.println(「a=」+a) // +表明字符串相加調試

轉義字符 經過 來轉變後面的字母或者符號的含義
\n:換行
\b:退格 至關於backspace
\r:按下回車鍵 windows中回車符是有兩個字符來表示\r\n
\t:製表符 至關於tabcode

賦值運算符
x+=4; //x=x+4htm

  • if語句
    a.每個格式都是單條語句
    b.第二種格式與三元運算符的區別:三元運算符運算完要有值出現。好處是能夠寫在其餘表達式中
    c.條件表達式不管寫成什麼樣,只看最終的結構是不是ture或者falseblog

  • swith語句
    a.switch語句選擇的類型只有四種 byte short int char
    b.case之間與default沒有順序。先執行第一個case,沒有匹配的case執行default
    c.結束switch語句的兩種狀況:遇到break,執行switch語句結束
    d.若是匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行能夠執行的語句,直到遇到break或switch結尾字符串

  • for語句
    For裏面的連個表達式運行的順序,初始化表達式只讀一次,判斷循環條件,爲真就執行循環體,而後再執行循環後的操做表達式,接着繼續判斷循環條件,直到條件不知足爲止。

  • Break語句應用於選擇結構和循環結構,continue語句用於循環結構。
    代碼調試中的問題和解決過程

代碼調試中的問題和解決過程

根據書上的代碼,能夠獲得基本類型的範圍

public class Range{
    public static void main(String[] args) {
        //byte、short、int、long範圍
        System.out.printf("%d ~ %d%n",Byte.MIN_VALUE,Byte.MAX_VALUE);
        System.out.printf("%d ~ %d%n",Short.MIN_VALUE,Short.MAX_VALUE);
        System.out.printf("%d ~ %d%n",Integer.MIN_VALUE,Integer.MAX_VALUE);
        System.out.printf("%d ~ %d%n",Long.MIN_VALUE,Long.MAX_VALUE);
        //float、double精度範圍
        System.out.printf("%d ~ %d%n",Float.MIN_EXPONENT,Float.MAX_EXPONENT);
        System.out.printf("%d ~ %d%n",Double.MIN_EXPONENT,Double.MAX_EXPONENT);
        //char可表示的Unicode範圍
        System.out.printf("%h ~ %h%n",Character.MIN_VALUE,Character.MAX_VALUE);
        //boolean的兩個值
        System.out.printf("%b ~ %b%n",Boolean.TRUE,Boolean.FALSE);
    }
}

可是在編譯中編碼出現問題,請教了高其同窗後獲得解決。
結果以下圖

而關於下面這個代碼

public class Demo{
    public static void main(String[] args)
    {
        int x=4270
        x = x /1000 *1000;
        System.out.println(x);
    }
}

運行結果應該是4000
X是int型,1000也是int型,運算結果也應該是int型而不應是double型,小數部分應該捨去。

關於算數運算符的語法

public class Demo{
    public static void main(String[] args)
    {
        int a = 3,b;
        b = a ++;
        System.out.println(b);
        System.out.println(a);
    }
}

運算結果是 3 4
代碼應該理解爲a先賦值給b而後a=a+1, 若是代碼是b=++a,則結果爲 4 4

關於賦值運算符的錯誤使用

public class Demo{
    public static void main(String[] args)
    {
        short s = 4;
        s = s + 5;
        System.out.println(s);
    }
}

出現編譯錯誤,沒有考慮從int轉換到short可能會有損失,容易丟失精度
能夠改爲s+=5;

教材學習中的問題和解決過程

課本P64代碼修改成

public class Shift
{
public static void main(String[] args)
{
int number=1;
System.out.printf("2 的 0 次方: %d%n",number);
System.out.printf("2 的 1 次方: %d%n",number << 1);
System.out.printf("2 的 2 次方: %d%n",number << 1);
System.out.printf("2 的 3 次方: %d%n",number << 1);
}
}

其餘(感悟、思考等,可選)

還要不斷敲代碼加以鞏固,流程控制和一些語法不少與C相似,也是c的鞏固與複習。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 4000行 16篇 300小時
第一週 200/200 2/2 20/20
第二週 200/400 1/3 25/45

參考資料

相關文章
相關標籤/搜索