Java入門part2--變量和類型

Java入門part2–變量和類型

關鍵字:基本數據類型和字符串類型,類型轉換,變量命名規則,列出了和C語言種不同的點方便區分理解

數據類型

在這裏插入圖片描述

  • 所有的java編程語言中的整數類型都是帶符號的數字
  • Java中定義變量一定要初始化,否則會報錯
  • Java中沒有全局變量這一說(C語言中局部變量不初始化是隨機值,全局變量是0)
  • 跟C語言不同的是,給某類型數據賦大於其能表示範圍的數據時,編譯不通過,而C語言就可以執行出來=》Java很安全

整型變量

byte 字節類型
  • 用byte定義一個字節,佔1個字節 ,表示範圍-128-127
  • Java中的字節類型對標的是C語言中的char
  • 也是屬於數值類型的一種
short 短整型
  • 佔2字節 短整型
  • 表示範圍太小,一般不推薦用
int 整型
  • Java中int型佔4個字節,跟系統沒有關係 因爲Java具有跨平臺性,一次編譯到處運行
  • Integer.MAX_VALUE 獲得int的最大值
  • Integer.MIN_VALUE 獲得int的最小值
    其中Integer是Java中自己的一個類,是int對應的包裝類
    int short 之類的都是Java的內置類型
    溢出
long 長整型
  • 長整型long佔8個字節,與平臺無關
  • 注意賦初值的時候 long a=10L; 也可以寫成 long a=10;(默認把整型賦值給long)或 long a=10l;但不推薦

浮點型變量

double 雙精度浮點型
  • double 雙精度浮點類型,8個字節
double num = 1.1;
System.out.println(num * num)
// 執行結果
1.2100000000000002

注意:Java 中的 double 雖然也是 8 個字節, 但是浮點數的內存佈局和整數差別很大, 不能單純的用 2 ^ n 的形式表示數據範圍.

float 單精度浮點型
  • 單精度浮點類型 4字節
  • flout a=12.5f;
    強類型語言:越需要進行強轉的就是強類型語言,不強轉編譯不通過
    flout a=12.5會報錯,默認12.5爲double類型,flout a=12.5d就可以,所以遇到小數一般定義爲double類型

字符類型

char
  • 字符類型 2字節
  • 注意和C語言中的char區分開 在C語言中表示1個字節迷你整型,分爲有符號,有符號表示範圍在(-128~ 127)和無符號(表示範圍在0~ 255)
  • Java中char無符號 表示範圍0~ 2^16-1(65535)即’\u0000’–’\uffff’
  • 編碼和解碼 C語言中ASC碼 java中Unicode碼 可以表示65526個字符,可以表示的範圍更大 中文拉丁文等都可以表示(相當於ASC碼的擴充)

布爾類型

boolean 只能給其賦值true或者false 標準並未規定布爾類型字節大小

字符串類型 重要

  • C語言沒有字符串類型
  • Java中定義字符串類型用String String str=“hello”;
    並未有\0結尾
  • 注意 String不是基本類型,屬於引用類型
  • int short long double float char byte boolean 是Java中的八種內置類型(即簡單類型)
  • Java中的字符串拼接直接用+就可以,C語言中要調用庫函數strcat()

變量

  • 變量的命名:
    • 名字只能由字母數字下劃線組成
    • 數字不能開頭
    • 變量名大小寫敏感num和Num是兩個不同的變量
    • 變量名小駝峯形式(多個單詞組成時第一個單詞小寫後面單詞首字母大寫)

常量

  • C語言中用const定義常量 必須在定義的同時初始化
  • Java中用final修飾的變量是常量 final int a=10; 可以不在定義的同時進行初始化,但是一旦被初始化就不能再更改
  • 常量:運行期間不可以改變 變量:運行期間可以改變
    final還可以修飾函數 類 接口

類型轉化

int 和long進行數據轉化
int a=1;
long b=2;
a=b;//不可以 long8字節,int 4字節  大類型賦值給小類型,會報錯   如果需要這樣轉則需要強制類型轉換 a=(int)b;
b=a;//可以  小類型給大類型 默認發生隱式類型轉換

  • int和boolean 轉換不了 因爲類型不兼容 不可以進行相互的賦值 強轉也不可以

  • short和char都是2個字節 但是直接互相賦值編譯不通過,因爲一個是字符類型 一個是數值類型 非要這麼寫可以強轉

  • 當兩個類型進行運算時 運算過程中小類型會先提升爲大類型再運算,所以運行結果是大類型
    +CPU通常是以4個字節爲單位往內存中讀數據,所以計算時像short byte這種不夠四個字節的都會提升爲四個字節再運算,所以運算出來是int型,byte c=(a+b); 會報錯,結果要賦給byte類型的話要強轉

byte a=10;
byte b=20;
byte c=(byte)(a+b); /CPU通常是以4個字節爲單位往內存中讀數據,所以計算時像short byte這種不夠四個字節的都會提升爲四個字節再運算,所以運算出來是int型,結果要賦給byte類型的話要強轉
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章