day1 java基础语法

一、关键字:java关键字有:abstract boolean break byte case catch char class const continue default do double else extends assert final finally float for goto if implements import instanceof int interface long native new strictfp package private protected public return short static super switch synchronized this throw throws transient try viod volatile while

没有实现的关键字:goto、const。

三个保留字:true、false和null。

二、标识符:硬规:1、标识符不能使用关键字保留字。2、标识符可以包含字母、数字、下划线和美元符号。3、标识符第一个字母必须是字母、下划线或者美元符号。4、标识符区分大小写,并且没有规定最大长度。

          软规(驼峰命名法):1、标识符要能望文知意。2、标识符首字母小写,其它英文单词大写。3、类名第一个字母大写。

三、数据类型:基本数据类型:整形(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。

             引用数据类型:类(class)、接口(interface)、数组。

四、运算符和表达式:

位运算:&(按位与):两位同时为1,结果为1。

           | (按位或):两位有一个为1,结果为1。

          ^(按位异或):两位一个为0,一个为1,结果为1。

               按位取反:0变1,1变0

移位运算:>>>(逻辑右移):低位溢出,高位补0。

              >>(算术右移):低位溢出,符号位不变,并用符号位补溢出的高位。

              <<(算术左移):符号位不变,低位补0。

小结:数据在申请内存时候,第一位为符号位,负数的符号位为1,正数的符号位为0,其余全是0、1表示。例:-1可以表示:1000...0001、5可以表示:0000...0101

负数参与运算,先求反码,再求补码,再参与运算,运算完了反求原码。补码=原码的反码+1。

例:求-5>>2

解:1000...0101//-5的原码

     1111...1010//-5的反码(原码取反)

     1111...1011//-5的补码(反码加1)

     1111...1110//向右移动两位(这是最终结果的补码形式,需要反求原码)

     1111...1101//补码减1得到反码

     1000...0010//反码取反得到原码

所以:-5>>2=-2。

m<<n等价于m<<2的n次方

^任何一个数异或本身为0,任何一个数异或0为本身。

eg:

int a=10,b=6;//让a与b互换,不使用+-*/

a=a^b;

b=a^b;

a=a^b;

//使用加减

a=a+b;

b=a-b;

a=a-b;

posted @ 2016-11-14 20:28  风少凌云  阅读(141)  评论(0编辑  收藏  举报