摘要:什么是變量用來命名一個數據的標示符這個標識符就是一個變量,它代表這個值是數據類型,表示是整數是一個標識符是賦值操作符是一個數字類型的值表示該行結束基本變量類型整型如果試圖給類型的變量賦予超出其范圍的值,就會產生編譯錯誤字符型類型用于存放一個
1 什么是變量
用來命名一個數據的標示符
year這個標識符就是一個變量,它代表1949這個值
int year = 1949;
2 基本變量類型 (1) 整型int是數據類型,表示是整數
year是一個標識符
=是賦值操作符
1949 是一個數字類型的值
;表示該行結束
public class HelloWorld{ public static void main(String[] args){ byte b = 1; short s = 200; int i = 300; long l = 400; /*如果試圖給byte類型的變量賦予超出其范圍的值,就會產生編譯錯誤*/ byte b2 = 200; } }(2) 字符型
char類型用于存放一個字符,值用單引號"表示 (雙引號表示字符串)
其長度和short一樣,也是16位的
只能存放一個字符,超過一個字符就會產生編譯錯誤
public class HelloWorld{ public static void main(String[] args){ char c = "中"; //char 只能存放一個字符,超過一個字符就會產生編譯錯誤 char c2 = "中國"; //報錯 char c3 = "ab"; //報錯 } }(3) 浮點型
默認的小數值是double類型的
所以float f=54.321會出現編譯錯誤,因為54.321的默認類型是double,其類型長度為64,超過了float的長度32在數字后面加一個字母f,直接把該數字聲明成float類型,float f2 = 54.321f,這樣就不會出錯了
public class HelloWorld{ public static void main(String[] args){ double d = 123.45; //該行會出現編譯錯誤,因為54.321是double型的 float f = 54.321; float f2 = 54.321f; } }(4) 布爾型
public class HelloWorld { public static void main(String[] args) { boolean b1 = true; boolean b2 = false; // 雖然布爾型真正存放的數據是0(false) 1(true) // 但是,不能直接使用0 1 進行賦值 boolean b3 = 1; } }(5) String類型
3 字面值 (1) 整數字面值String類型其實并不是基本類型,但是它是如此廣泛的被使用,常常被誤以為是一種基本類型
String類型是Immutable,一旦創建就不能夠被改變
當以L結尾的時候,一個整數字面值是long類型,否則就是int類型
byte,short,int和long的值都可以通過int類型的字面值來創建
public class HelloWorld { public static void main(String[] args) { long val = 26L; //以L結尾的字面值表示long型 int decVal = 26; //默認就是int型 int hexVal = 0x1a; //16進制 int oxVal = 032; //8進制 int binVal = 0b11010; //2進制 System.out.println(oxVal); } }(2) 浮點數字面值
(3) 字符和字符串字面值當以F結尾的時候,就表示一個float類型的浮點數,否則就是double類型
浮點數還可以用E或者e表示(科學計數法)
e2表示10的二次方,即100,1.234e2 = 1.234x100
字符的字面值放在單引號中
字符串的字面值放在雙引號中
表示轉義,比如需要表示制表符,回車換行,雙引號等就需要用 " 的方式進行
public class HelloWorld { public static void main(String[] args) { String name = "蓋倫"; char a= "c"; //以下是轉義字符 char tab = " "; //制表符 char carriageReturn = " "; //回車 char newLine = " "; //換行 char doubleQuote = """; //雙引號 char singleQuote = """; //單引號 char backslash = ""; //反斜杠 } }4 類型轉換 (1) 轉換規則
精度高的數據類型就像容量大的杯子,可以放更大的數據
精度低的數據類型就像容量小的杯子,只能放更小的數據
小杯子往大杯子里倒東西,大杯子怎么都放得下
大杯子往小杯子里倒東西,有的時候放的下,有的時候就會有溢出
public class HelloWorld { public static void main(String[] args) { char c = "A"; short s = 80; //雖然short和char都是16位的,長度是一樣的 //但是彼此之間,依然需要進行強制轉換 c = (char) s; //直接進行轉換,會出現編譯錯誤 s = c; } }(2) 低精度向高精度轉換
把i的值賦給l,首先l和i彼此的類型是不一樣的,那么能否轉換就取決于彼此的精度
L的精度,比i的精度要高
低精度向高精度轉換,正常
public class HelloWorld { public static void main(String[] args) { long l = 50; int i = 50; //int比較小,要放進比較大的long,隨便怎么樣,都放的進去 l = i; } }(3) 高精度向低精度轉換
把int類型的數據轉成為byte類型的數據,是有風險的
有的時候是可以轉換的,比如 b = i1 (i1=10);
有的時候不可以轉換 比如 b= i2 (i2=300) 因為放不下了
強制轉換的意思就是,轉是可以轉的,但是不對轉換之后的值負責
public class HelloWorld { public static void main(String[] args) { byte b = 5; int i1 = 10; int i2 = 300; b = (byte) i1; //因為i1的值是在byte范圍之內,所以即便進行強制轉換 //最后得到的值,也是10 System.out.println(b); //因為i2的值是在byte范圍之外,所以就會按照byte的長度進行截取 //i2的值是300,其對應的二進制數是 100101100 //按照byte的長度8位進行截取后,其值為 00101100 即44 b =(byte) i2; System.out.println(b); //查看一個整數對應的二進制的方法: System.out.println(Integer.toBinaryString(i2)); } }5 命名規則 (1) 命名規則
(2) 使用完整的單詞命名,而非縮寫變量命名只能使用字母 數字 $ _
變量第一個字符 只能使用 字母 $ _
變量第一個字符 不能使用數字
_ 是下劃線,不是-減號或者—— 破折號
(3) 關鍵字列表 (4) 不能只使用關鍵字,但是可以包含關鍵字 (5) 中文也是可以用來命名變量的 6 作用域 (1) 字段,屬性,Field在命名的時候,盡量使用完整的單詞進行命名,比如name,moveSpeed,而不是使用縮寫 n,m
當一個變量被聲明在類下面,變量就叫做字段或者屬性、成員變量、Field
比如變量i,就是一個屬性
從變量聲明的位置開始,整個類都可以訪問得到,所以其作用域就是從其聲明的位置開始的整個類
public class HelloWorld { int i = 1; int j = i; //其他的屬性可以訪問i public void method1(){ System.out.println(i); //方法1里可以訪問i } public void method2(){ System.out.println(i); //方法2里可以訪問i } }(2) 參數
如果一個變量,是聲明在一個方法上的,就叫做參數
參數的作用域即為該方法內的所有代碼
其他方法不能訪問該參數
類里面也不能訪問該參數
public class HelloWorld { public void method1(int i){ //參數i的作用域即方法method1 System.out.println(i); } public void method2(){ System.out.println(i); //method2 不能訪問參數i } int j = i; //類里面也不能訪問參數i }(3) 局部變量
聲明在方法內的變量,叫做局部變量
作用域在聲明開始的位置,到其所處于的塊結束位置
public class HelloWorld { public void method1() { int i = 5; //其作用范圍是從聲明的第4行,到其所處于的塊結束12行位置 System.out.println(i); { //子塊 System.out.println(i); //可以訪問i int j = 6; System.out.println(j); //可以訪問j } System.out.println(j); //不能訪問j,因為其作用域到第10行就結束了 } }7 final
(1) 在聲明的時候賦值當一個變量被final修飾的時候,該變量只有一次賦值的機會
public class HelloWorld { public void method1() { final int i = 5; i = 10; //i在第4行已經被賦值過了,所以這里會出現編譯錯誤 } }(2) 在聲明的時候沒有賦值
public class HelloWorld { public void method1() { final int i; i = 10; //i在第4行,只是被聲明,但是沒有被賦值,所以在這里可以進行第一次賦值 i = 11; //i在第6行已經被賦值過了,所以這里會出現編譯錯誤 } }(3) final 修飾其他
8 表達式 (1) 以;結尾的一段代碼,即為一個表達式final 除了修飾變量,還可以修飾類,修飾方法
表達式是由變量、操作符以及方法調用所構成的結構
public class HelloWorld { public static void main(String[] args) { //每一句話都是一個表達式 int i = 5; System.out.println(5); } }(2) ;
public class HelloWorld { public static void main(String[] args) { //一個空;也是一個表達式 ; ; ; ; } }9 塊
從{開始到對應的}結束,即一個塊
public class HelloWorld { //類對應的塊 public static void main(String[] args) { //主方法對應的塊 System.out.println("abc"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67726.html
摘要:上下文比如,接受它傳遞的方法的參數,或者接受它的值得局部變量中表達式需要類型稱為目標類型。但局部變量必須顯示的聲明,或實際上就算。換句話說,表達式只能捕獲指派給它們的局部變量一次。注捕獲實例變量可以被看作捕獲最終局部變量。 由于第三章的內容比較多,而且為了讓大家更好的了解Lambda表達式的使用,也寫了一些相關的實例,可以在Github或者碼云上拉取讀書筆記的代碼進行參考。 類型檢查、...
摘要:選擇結構變量和數據類型,賦值和輸出算術運算選擇結構循環結構函數定義,函數調用變量作用域棧,程序運行的基石面向對象異常處理語言提供的公用包上一節介紹了的算術運算,如加減乘除等,的運算規則跟四則運算一樣。 選擇結構 變量和數據類型,賦值和輸出 算術運算 選擇結構 = 60) { System.out.println(You have passed the exam...
摘要:一旦線程執行線程會進入可執行狀態,它會在可執行與執行中兩種狀態中來來去去,同時也有另外一種狀態暫時不可執行又稱為被堵塞狀態。當對象有一個或多個同步化的方法時,線程只有在取得對象鎖的鑰匙時才能進入同步化的方法。 前言: 今天要分享的是關于 《Head First Java》這本書的讀后感,這本書有點小厚差不多有七百頁左右,所以我花了幾乎整個國慶的時間去閱讀,學習。讀完之后發現,受益頗多。...
閱讀 2010·2021-09-22 16:05
閱讀 9324·2021-09-22 15:03
閱讀 2889·2019-08-30 15:53
閱讀 1704·2019-08-29 11:15
閱讀 913·2019-08-26 13:52
閱讀 2356·2019-08-26 11:32
閱讀 1808·2019-08-26 10:38
閱讀 2571·2019-08-23 17:19