java学习笔记(二) ----基本数据类型应用
&和&&和區(qū)別,&&如果等式一邊不成立就短路,&不管&左邊的成不成立,右邊等式都執(zhí)行
&&短路與, ||短路或
| 或,表達式兩邊不管結果是什么,都進行運算
?
float f=3.5 錯,因為3.5是double型
float f=3.5f 對
所有的byte型,short型,char型的值在表達式中將被提升為int型?
注意:在一個表達式中,以出前最高類型的變量或數(shù)值為準,它的下的變量或數(shù)值都會被轉化為,該變量或數(shù)值的類型
byte a=1;
?a=a+1;? 錯因為a+1的結果已經(jīng)被轉換為int型了,所以a不能接收int型
System.out.println ('a'+1); 輸出結果為98,因為這里'a'被自動提升為整型了。
System.out.println(""+'a'+1); 輸出結果為a1,因為一個表達式中,如果有字符串用+號和其它數(shù)據(jù)類型進行相加,那么實際上是字符串與其它內(nèi)容進行相連,生成一個新的字符串。
int x=5,y;
y=x%-2;?? // y=1
y=-x%2??? // y=-1
????? Switch
????? switch中的選擇器必須是int或char型,如:
? float i = 2;
? switch ( i )//將出錯,因為i不是int或char之一
????? Math.random()的輸出范圍是[0, 1]
?
算法1:
??? 某個培訓中心要為新到的學員安排房間,假設共有x個學員,每個房間可以住6人,讓你用一個公式來計算他們要住的房間數(shù)?
????? 答案:(x+5)/6。這種算法還可以用在查看留言板的分頁顯示上:其中x是總共的留言數(shù),6是每頁顯示的留言數(shù),結果就是總共有多少頁。
//如果是x/6+1的話,那么如果是30的時候就出現(xiàn)問題了,應該是5個,但用這個算法就是6個了
算法2:
??? x=0;
??? while(true)
??? {?? x=(x+1)%10
??????? System.out.println(x);
???? }
??? 該算法實現(xiàn)0~9不斷循環(huán)輸出???
--------------------------------------
instanceof 檢查是否是類的對象
----------------------------------------
<<左移??? 右面補0?? (左移1位是*2)
>>右移??? 如果左面被移出位,原來為0就補0,原來為1就補1? (右移一位是/2)
>>>無符號右移??? 不管最高位原來為多少,始終補0?
對抵于int型的操作數(shù)將先自動轉換為int型再移位(byte,short,char)
對于int型的移位不能超過32位,a>>33和a>>1結果是一樣的,a>>32結果和原來一樣
long型移位不能超過64位
y=10
System.out.println(Integer.toHexString(y));
Integer.toHexString(y) 將整數(shù)y轉換為十六進制數(shù)
?
System.out.println(Float.intBitsToFloat(0x50000000)); //打印16進制數(shù)為50000000的浮點數(shù)。
?
//整數(shù)類型,最大能移31位,如果大于31位,就對移位的數(shù)取模,然后再移,假如a>>32位相當于a移0位,而a>>33位,相當于a移1位,??? 因為整形有32位
? 長整形移位不能超過64位
移位不會改變變量本身的值。如a>>1;在一行語句中單獨存在,毫無意義
x<<2 相當于 x*(2的2次方)
x>>2 相當于 x/(2的2次方)
---------------------------
for (i=0;i<10;i++)
{ System.out.println(i);}
for 語句可以寫成
int i=0;
for (;i<10;)
{ System.out.println(i);
? i++;
}
還可寫成
int i=0;
for (;;)
{ if (i>=0)
?? break;
? System.out.println(i);
? i++;
}
-------------
st:while(true)
{ while(true)
? { break st;? //跳出外面的while循環(huán)
? }
}
-----------------------------
數(shù)組在定義后默認的初值為0
int x[]=new int[5];
int x[]={3,4,5}? //給數(shù)組賦初值
int x[]=new int[]{3,4,5}
int a[5]; //聲明數(shù)組時,不能指定其長度,編譯時將出錯
------------
int[] x;
x=new int[100];
x=null;
x[0]=2; //運行時出錯,因為x已經(jīng)指向null了,所以x已經(jīng)不指向堆空間了,就不能再給x[0]賦值了
System.out.println(x.length);? // 求x數(shù)組的長度
int[][] xx={{3,2,7},{1,5},{6}}; //二維數(shù)組初使化
------------------
int[] x=new int[]{3,1,2,4};
java.util.Arrays.sort(x);? //對x數(shù)組進行排序
int[] y=new int[10]; // 這個y必須被初使化,下面才能考貝
System.arraycopy(x,0,y,0,4); //從x的第0個元素開始,考到,y的第0個元素開始,考x中的4個元素。
總結
以上是生活随笔為你收集整理的java学习笔记(二) ----基本数据类型应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java学习笔记(一) ----java
- 下一篇: java学习笔记(三)----成员权限,