Java學習筆記(2015.7.6~10)
Java
基礎中的基礎
一、搭建開發環境:設置path變量 (x:...\bin;) 和 classpath變量 (.;) ,.表示當前目錄。
二、第一句話:
public static void main(String args[]) {}
main()方法,即程序入口。
三、註釋
//單行註釋
/.../多行註釋
/**...*/文檔註釋
變量的基本類型
一、Java的基本數據類型有4類8種
1.整數型:byte,short,int,long
2.浮點型:float,double
3.布爾型:boolean
4.字符型:char
二、byte的範圍爲(-128到127),int大概爲正負2E10,long接近正負1E20,double範圍最大,float一般也夠用了。boolean只能是true或false。
三、變量的作用域只在申明瞭變量的那個大括號裏,即見光死。
四、'\n' 換行符,'\t' 製表符
五、數據類型的自動轉換,當混合數據類型做運算時,總是向數值範圍大的類型自動轉換。
六、強轉,強制轉換數據類型,在表達式前加上(數據類型),有可能會丟失精度。
局部變量 和 成員變量 的相愛相殺
局部變量 :在方法內部定義的變量稱爲局部變量,它只能在該方法內部使用,出了該方法就沒人認識了。局部變量的修飾符只能有final,其它都是違法的。
成員變量 :在類內部定義的變量是爲成員變量。
系統不會自動爲局部變量賦初值,但對於成員變量,系統會自動賦初值。基本類型的值爲0,複合類型的值爲null。
局部變量的生存週期與方法的執行期相同。當方法執行到定義局部變量的語句時,局部變量被創建;執行到它所在的作用域的最後一條語句時,局部變量被銷燬。類的成員變量,如果是實例成員變量,它和對象的生存期相同。而靜態成員變量的生存期是整個程序運行期。
在不同的方法中,可以有同名的局部變量,它們互不干涉。局部變量可以和成員變量同名,且在使用時,局部變量具有更高的優先級。
內存
理解內存就理解了一切!
內存分爲4個部分: code segment,data segment,stack,heap。
code segment: 存放代碼。
data segment: 存放
static
關鍵字申明的靜態變量和字符串常量。stack: 申明變量時存放指向heap中對象的地址,方法執行完後不知啥時候就被回收了哦。
heap: new出來的對象都擱這裏。
一個簡單的程序
public class Test { public static void main(String args[]) { int a = 99; int b = 66; System.out.println("a+b=" + (a+b)); } }
選擇結構
if語句
if
if (判斷條件) { 語句體; }
if (判斷條件) { 語句體; } else { 語句體; }
if (判斷條件) { 語句體; } else if (判斷條件) { 語句體; } else if (判斷條件) { 語句體; } ...... else { 語句體; }
switch 語句
switch
switch(x) { case a: 語句體;break; case b: 語句體;break; case c: 語句體;break; ...... default: 語句體; }
一般接收int類型的參數。
舉個栗子,利用break做一些奇怪的事:int year=2005;
int month=3;
int day;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: day=31; break;
case 2: day=28; break;
case 4:
case 6:
case 9:
case 11: day=30; break;
}
循環結構
for循環
for
for(表達式1;表達式2;表達式3) { 語句體 }
while循環
while
while(表達式) { 語句體 }
do while循環
do while 啥都不想,先幹了再說
{語句體} while(表達式);
break & continue
break 跳出當前循環,老子不幹了
continue 跳過這次循環,繼續下一次
獲取輸入
import java.util.Scanner;
...
Scanner s = new Scanner(System.in);
int a = s.nextInt();//阻塞性語句,等待輸入
s.close();//關閉s,釋放資源
方法
方法即一段代碼的複用,程序員都是懶的,相同的代碼不寫第二遍^^
類
* 聲明類有兩種,即 public class 類名稱和 class 類名稱。 * 使用 public class 聲明一個類是,類名稱必須與文件名稱一致,否則不能編譯 * 使用 class 聲明類時無需與文件名一致,會生成一個.class文件 * 在一個Java文件中可以有多個class類的定義,但是只能有一個public class定義。 * 類名稱必須首字母大寫 * 匿名對象,用於只是用一次的對象
new 類名().方法名();
舉個栗子:new Student().tell();