java在执行字节码文件时执行以下三步:加载代码,校验代码,执行代码
标示符只能以字母下划线和美元符开头
~:对数据的每一个二进制位取反;
&:参与运算的两个值,相应位均为1,则结果为1,否则为0。
|:参与运算的两个值,只要相应位有一个为1,则结果为1,否则为0。
^:参与运算的两个值,相应位相同,则结果为0,否则为1。
>>:有符号右移,使用“符号扩展”:若值为正,则高位插入0,若值为负,高位插入1 ;
>>>:无符号右移:各二进制若干位,移出低位被舍弃,高位补零。不考虑符号位。
<<:左移若干位,高位舍弃,低位补零;byte 64<<2 = 256 ????
byte 1000000 100000000 ????
public class ByteShift
{
public static void main(String[] args){
byte a=64,b;//a=01000000
int i;
i = a<<2;//100000000
b = (byte)(a<<2);//00000000
System.out.println("Original value of a: "+a);
System.out.println("i and b: " + i + " " + b);
}
}
---------- java ----------
Original value of a: 64
i and b: 256 0
public class Test2
{
public static void main(String[] args){
System.out.println(3+'1');
System.out.println((char)(3+'1'));
System.out.println((char)3+'1');
System.out.println((char)30000);
System.out.println((char)4);
System.out.println('3'+'1');
}
}
---------- java ----------
52
4
田
100
int i = -17;
pBinInt("i",i);
/* for(int j=1;j<=32;j++)
{
i >>= 1;
pBinInt("i>>=32",i);
}
i>>=31;
i>>=1;*/
i>>=32;
pBinInt("i>>=32",i);
---------- java ----------
i, int: -17, binary:
11111111111111111111111111101111
i>>=32, int: -17, binary:
11111111111111111111111111101111
输出完成 (耗时: 0 秒)
bollean类型只有TRUE与FALSE两种类型,0和1不是,他们是整形
byte 1 short 2 int 4 long 8 float 4 double 8 最前面一位是符号位
数据类型 默认初始化值
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0
char ‘/u0000’=NUL
boolean false
All reference type null