来源:网络 | 2007-4-19 | (有3204人读过)
1.1. 变量和作用域 1) 局部变量 定义在方法内部,其作用域为所在代码块,也称为临时变量、栈变量。 存在于栈中。 2) 实例变量 定义在类内部方法之外,其作用域为整个类。如未定义初值,系统会自动为其赋黙认值。存在于堆中 默认数值 类型 黙认值 byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char ’\u0000’ 空格 boolean false *All reference types null
1.2. 操作符 System.out.println(3/2) 按整型计算 得1 1) >> 前面是零补零,前面是一补一; 2) >>> 无符号右移;
>>和>>>对于负数不一样 正数:>>等于除以X的2次方 负数:正数的结果+1
3) && 短路与,前面为假,表达式为假,后面不须计算; 4) || 短路或,前面为真,表达式为真,后面不计算; 例: if(a<3&(b=a)==0) b赋值 if(a<3&&(b=a)==0) b不赋值
1.3. 数字类型之间的转换 1) byte ——→ short ——→ int ——→ long 2) char ——→ int - - - → float 3) float ——→ double 4) long - - - → float 5) long - - - → double 6) int ——→ double
注:1)实箭头表示无信息损失的转换,虚箭头表示转换可能引起损失; 2)int和float同为32位,但float要有几位表示幂的位数,在精度位数上要比int要小,所以有可能会有损失。long转为double同理; 3)char和short同为16位,但char属无符号数,其范围为0~2^16, short的范围为-2^15~2^15-1 , 所以char和short不能相互转换; 4)byte、short、char属child型,在计算时会自动转为int型,然后转为更大范围类型(long、short、double)。
1.4. 强制类型转换 1) 语法:圆括号中给出要转换的目标类型,随后是待转换的变量名。例:doublc x=9.997;int nx = (int)x; 2) 如果试图强制转换的类型超出了目标类型的范围,结果是一个被截取的不同的数值; 3) 不能在布尔值和任何数字类型间强制类型转换,如确要转换,可使用条件表达式,例:b?1:0。 1.5. 转换的二种类型 1) 赋值 double a = 1.0f int = ‘j’; 2) 方法调用 double converValue(int value){ return value; } 3) 数值计算转换 -9.232e20+1;
1.6. 控制流 if() if()….else if()…..else if()….else
switch(){ case variable:…….. case variable:…….. default: ………… } 注解:switch()内数据类型为基本数据类型 byte short char 自动转换为int case块中不加break时顺序执行下面的语句。
1.7. 循环语句 for(int i=0;i<n;i++){} while(true){} do{} while(true);-----------à加分号 例子:
loop:for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(3==j){ break loop;//---------------àloop为标签 只能用在循环语句中,循环//嵌套中用于跳到外层循环 } } }
辨析: int x,a=6,b=7; x=a++ + b++; //----------a=7,b=8,x=13 int x=6;x=~x;//---------------- 6的二进制0110 取反得11001 再转成补码(取反加一)10111 = -7
|