局部變量:不是聲明在類體括號里面的變量
(1)必須要先賦值,后使用,否則通不過編譯,局部變量沒有默認(rèn)初始化值
(2)作用范圍:定義開始到定義它的代碼塊結(jié)束
(3)同一范圍內(nèi),不允許2個(gè)局部變量命名沖突
參數(shù)傳遞時(shí),簡單類型進(jìn)行值轉(zhuǎn)遞 (參數(shù)進(jìn)行傳遞時(shí)都會先去棧中生成一個(gè)副本的,使用結(jié)束后釋放)
自動類型提升:
byte a = 1;
byte b = 2;
a = a+b; //編譯出錯(cuò)自動類型提升成int
a += b; //自加沒有自動類型提升問題
類型自動提升規(guī)則:
a和b作某種運(yùn)算
a和b中有double,結(jié)果就是double
a和b中有float,結(jié)果就是float
a和b中有l(wèi)ong,結(jié)果就是long
除此之外,結(jié)果都是int
把高字節(jié)轉(zhuǎn)成低字節(jié),需要作強(qiáng)制類型轉(zhuǎn)換. byte c=(byte)a+b;
移位運(yùn)算符:效率最高
>> 有符號右移,補(bǔ)符號位
移負(fù)數(shù)位,則將該數(shù)值加32后再進(jìn)行移位
數(shù)值的2進(jìn)制是按照補(bǔ)碼保存的
>>> 右移后高位都補(bǔ)0
邏輯運(yùn)算符:
&/|也可以作為邏輯運(yùn)算符
&& 先判斷前面一個(gè)條件,如果為假,則不用計(jì)算后一個(gè)條件
|| 先判斷前面一個(gè)條件,如果為真,則不用計(jì)算后一個(gè)條件
" + "運(yùn)算符:
兩個(gè)操作的對象是數(shù)值時(shí),是加法
如果有一個(gè)是字符串時(shí),則是字符串的連接
流程控制語句:
同Core C++
switch中的變量類型只能是byte、 short、int、char四種類型
數(shù)組:
聲明數(shù)組:
數(shù)組能以下列形式聲明:
類型[] array;
類型 array[];
注:
JAVA中推薦用:類型[] array;
一個(gè)數(shù)組是一個(gè)對象
聲明一個(gè)數(shù)組沒有創(chuàng)建一個(gè)對象
聲明時(shí)不用指定長度
創(chuàng)建數(shù)組:
創(chuàng)建基本數(shù)據(jù)類型數(shù)組:int[] i = new int[2];
創(chuàng)建引用數(shù)據(jù)類型數(shù)組:Student[] s = new Student[100];
數(shù)組創(chuàng)建后其中的元素有初始值
類型 黙認(rèn)值
byte 0
short 0
int 0
long 0l
float 0.0f
double 0.0d
char \u0000
boolean false
reference types null
注:
創(chuàng)建時(shí)一定要指定長度
int[] i2=new int[]; //error
初始化數(shù)組:
聲明、創(chuàng)建、初始化分開:
int[] i; //定義數(shù)組
i = new int[2]; //分配空間
i[0] = 0; //初始化
i[1] = 1;
聲明、創(chuàng)建、初始化在同一時(shí)間 :
int[] i = {0,1}; //顯示初始化 {}中有幾個(gè)值,則數(shù)組長度為幾
Student[] s = {new Student(),new Student()};
注: int[] i=new int[]{1,2,3}; //后面[]中不可以寫數(shù)值
int[] i1=new int[3]{1,2,3}; //error
二維數(shù)組:(其實(shí)是一個(gè)一維數(shù)組,它的每一個(gè)元素又是一個(gè)一維數(shù)組)
int[][] i1 = new int[2][3];
int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}};
int[][] i3 = new int[][3]; //不允許高維沒分配空間而先給低維分配空間
int[][] i2 = new int[2][];
i2[0] = new int[2];
i2[1] = new int[3];
數(shù)組長度:
數(shù)組的屬性length
數(shù)組長度一旦確定,不可改變
int[] i = new int[5]; 則i.length= 5
數(shù)組拷貝:
系統(tǒng)類System提供的
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 源數(shù)組
srcPos: 從源數(shù)組哪個(gè)位置開始拷貝(位置指的是元素的下標(biāo))
dest: 目標(biāo)數(shù)組
destPos: 拷貝的元素放到目標(biāo)數(shù)組的起始位置
length: 拷貝多少個(gè)
數(shù)組排序:
自己實(shí)現(xiàn)一個(gè)排序方法來進(jìn)行排序
或者調(diào)用java.util.Arrays.sort(Object o)
posted on 2008-10-20 22:43
礦礦 閱讀(187)
評論(0) 編輯 收藏