* 變量:
* 它代表了內存裏的一塊存儲區域,這塊內存區域的值是可以變化的
* 當變量的值變化時,變的不是以前指向的內存,而是內存的二進制表現形式
* 1、變量的聲明格式:
* 變量類型 變量名=變量值;
* 注意:變量可以只聲明,不賦值
* 2、變量的創建位置:
* 類體內函數外---全局變量
* 函數內---局部變量
* 靜態代碼塊和構造代碼塊內的變量也可以看作局部變量
* 3、變量命名時,不要重名,並非必須(涉及內存)
* 4、變量的類型:
* 基本的數據類型
* 對象類型
* 數組
* 內部類--(嚴格意義上講,不屬於變量類型,但是它的使用和變量很相似)
*
*/
public class A_varDemon {
public static byte b=1;
public static void test(){
b=2;
}
public static void main(String[] args){
test();
}
}
* 進制:十進制--89
* 二進制:電信號--兩種狀態 001001
* 進制轉換
* 十進制轉二進制
* 17----10001
* 轉換方式,將十進制數據除以2,直到0,取餘數的反序
* 二進制轉十進制
* 1、從右到左,計算每個二進制位的對應的十進制數用
* 2^(n-1)*對應的標記
* 2、將這些數字相加
* 二進制的缺點:不容易表示
* 八進制---將三個二進制位和爲一位
* 十六進制---將四個二進制位和爲一位
* 十進制和八進制之間的轉換:
* 除以8,取餘,反序
* 十六進制和十進制轉換
* 除以十六去餘數
*
* 大進制轉小進制,直接除以小進製取餘數,反序
* 小進制轉大進制,轉成十進制,再轉相應的進制
*
*/
public class A_VarDemon {
//在Java中直接輸出八進制和十六進制數字
public static void test(){
//直接輸出十進制數字
int i=100;
System.out.println("十進制:"+i);
//Java中的八進制數字10,8進制的數以0開頭
int j=010;
System.out.println("8進制的010代表的十進制: "+j);
//Java中的十六進制數字,十六進制以0x開頭
int k=0xe;
System.out.println("十六進制0xe代表的十進制:"+k);
}
public static void main(String[] args){
test();
}
}
* 二進制的正負數轉換
* 二進制的表示形式:分爲有符號表現形式和無符號表現形式
*
* 無符號表現形式:只有正數和0,沒有負數
* 有符號表示形式:
* 1.包括正數負數和0
* 2.二進制中從左到右的第一位,被解析爲標誌位,如果是1,代表負數,否則是正數
*
* 變量類型:
* 當聲明一個變量類型時候,編譯器就會給這個變量分配一個固定長度的內存,比如byte類型--長度是8個二進制位。
*
* 以byte爲例,進行正負數轉換
* 1.寫出正數的表現形式
* 0000 1010
* 2.反碼
* 1111 0101
* 3.反碼加1,從右到左
* 1111 0110
*
* 14---負數的表現形式
* 0000 1110
* 1111 0001
* 1111 0010
*
* 將二進制正數轉換成負數
* 1.1111 0010
* 2.減1
* 1111 0001
* 3.反碼
* 0000 1110
*1100
*0111 11
*00011
*10010 17
*/
public class B_VarDemon {
public static byte b=10;
public static void test(){
//調用JDK內置的類,實現十進制轉二進制
String str=Integer.toBinaryString(-14);
System.out.println(str);
}
public static void main(String[] args){
test();
}
}
************************* 面試題********************************
* 八大基本數據類型
* 整數型:Byte short intlong
* 浮點型:float double
* 字符型:char
* 布爾型:boolean
*
* 各個數據類型分配的內存空間大小
* byte 8個二進制位 1個字節最大值:127 2^7-1 最小值:-128 2^7
* short 16個二進制位 2個字節最大值:2^15-1 最小值:2^15
* int 32個二進制位 4個字節
* long 64個二進制位 8個字節
* 雙精度
* float 32個二進制位 4個字節
* double 64個二進制位 8個字節
* char 16個二進制位---字符---無符號的
* boolean 標記--只有兩個值true或false
*
* String===字符串
* 1.重要,最常用
* 2.它不屬於基本數據類型--類類型
*
*/
public class A_VarDemon {
public static byte a=1;
public static short b=2;
public static int c=3;
public static long d=4;
public static long d2=100000000000L;
public static float e=5.0F;//當小數定義爲float類型的時候,在後面必須寫一個F或者f;告訴編譯器,不要使用默認的數據類型
public static double f=0.1;
//第一種賦值
public static char g='1';
//第二種賦值
public static char g2=100;
public static boolean h=true;
public static void mian(String[] args){
//在Java中當編寫一個常量,由於沒有聲明常量類型,但系統又要分配一塊內存空間,這個內存空間有默認值,整形的默認值是int,浮點型是double型
//所以,聲明float類型的數據時,變量值被系統默認爲double類型的,因此需要顯示的加F或者f後綴,告知編譯器不使用默認的分配類型,而long類
//型的聲明的數據賦值,如果值大於了int類型的取值範圍,那麼也需要使用L或l做標記,告知編譯器不可以使用默認的int型
System.out.println(12);
}
}
packagenet.xadaily.a.var;
public class A_VarTest1 {
public static int a=34;
public static int b=5;
public static void test(){
System.out.println("a+b="+(a+b));
System.out.println("a*b="+(a*b));
System.out.println("a-b="+(a-b));
System.out.println("a/b="+(a/b));
System.out.println("a%b="+(a%b));
System.out.println("++a="+(++a));
System.out.println("a--="+(b--));
}
public static void main(String[] main){
test();
}
}
輸出結果:
a+b=39
a*b=170
a-b=29
a/b=6
a%b=4
++a=35
a--=5
public class A_VarTest2{
public static int a=22;
public static int b=33;
public static void test(){
int sum=0;
for(int i=1;i<=a;i++)
{
switch(i){
case 22: System.out.println("循環結束");break;
}
sum=sum+a;
}
System.out.println("22個a="+sum);
int j=0;
while(j<b)
j++;
System.out.println("j="+j);
}
public static void testif(){
if(a>b)
System.out.println("a大於b");
else
System.out.println("a小於b");
}
public static void main(String[] args){
test();
testif();
}
}