1.JAVA基础——语法相关

1.1 8种基本数据类型

  • 数值型
  1. 整数类型:byte(1字节),short(2字节),int(4字节),long(8字节)
  2. 浮点类型:float(4字节),double(8字节)
  • 非数值型
  1. 字符型:char(2字节)
  2. 布尔型:boolean

  ①关于字节(Byte)和位(bit):数据存储以字节(Byte)为单位,数据传输大多以位(bit)为单位,在二进制中,一个"位"即表示一个0或1,每8个bit组成一个Byte,bit是最小一级的信息单位。

  ②关于补码:计算器存储二进制数值是以补码形式表示的。正数,补码和原码一致。负数,补码为原码取反,然后再加一。

  ③关于ASCII码:美国标准信息交换代码,一个ASCII码占1个字节(Byte),即8个bit,其中最高位用作奇偶校验位,剩下的组成一个7位的二进制码,可以表示27(128)种状态,每一种状态对应着一个十进制序号0~127,也就是说,一个ASICC码可以表示128种字符。其中,0~32和127(共34个)是控制字符或通信专用字符,33~126(共94个)是字符,48~57是0到9共10个阿拉伯数字,65~90是26个英文大写字母,97~122是26个英文小写字母,其余的是一些标点符号、运算符号等。

  ④对于byte:byte是整数类型,可以这样写:

byte b = 'c';

  如果想取得字符c,可将byte强转成char,如下:

public static void main(String[] args) {
    byte b = 'c';
    System.out.println((char)b);
}

  返回结果为:c。

  ⑤对于char:JAVA语言将char作为一个无符号16位原始类型整数。也就是说,作为2字节长度的char,它的取值范围是0~65535,而同为2字节的short,它的取值范围是-32768~32767。

  ⑥关于JAVA的默认类型:JAVA中,整型数据默认为int,浮点型数据默认为double。所以float和long类型数据的申明需在树值后面加上l、L或f、F。

 

1.2 进制转换

  • 各种进制转十进制:从右到左为这个数从0开始一位一位地标号,各个位上面的数乘以此进制数的标号次幂再求和。
    • (123.456)10=1*102+2*101+3*100+4*10+5*10-1+6*10-2=123.456
    • (101.010)2=1*22+0*21+1*20+0*2-1+1*2-2+0*2-3=5.25
    • (765.012)8=7*82+6*81+5*80+0*8-1+1*8-2+2*8-3=501.01953125
    • (12A.C)16=1*162+2*161+10*160+12*16-1=298.75
  • 十进制转各种进制:整数部分除以此进制数取余倒排序,小数部分取整正排序。
    • 例如(123.456)10转二进制:123除2,余数分别是1、1、0、1、1、1、0,0.456乘2,整数分别为0、1、1、1、0、1、0、0、1、0、1……,余数倒排序,整数正排序,结果为(123.456)10=(111011.01110100101)2

 

1.3 JAVA关键字

JAVA有50个保留的关键字,其中goto和const关键字没有定义用途,作为JAVA语言中的保留字。

 

1.4运算符

逻辑运算中:&&(逻辑与)和||(逻辑或)具有短路功能,即在&&中,前一个为false则比较结束,直接返回false,在||中,前一个为true则比较结束,直接返回true。

位运算符:对两个运算数中的每一个二进制都进行运算。包括四种运算符:~(按位取反)、&(按位与)、|(按位或)、^(按位异或)

//不定义新变量的前提下把两个数据进行转换1
void changeInt(int a, int b){
    System.out.println("原来a为:"+a+"\n原来b为:"+b);
    a = a + b;
    b = a - b;
    a = a - b;
    System.out.println("后来a为:"+a+"\n原来b为:"+b);
}

//不定义新变量的前提下把两个数据进行转换2
void changeInt(int a, int b){
    System.out.println("原来a为:"+a+"\n原来b为:"+b);
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    System.out.println("后来a为:"+a+"\n原来b为:"+b);
}

位移运算符:分为左移(<<)、带符号右移(>>)、无符号右移(>>>)。

  • 左移(<<):a<<b表示将二进制形式的a逐位左移b位,最低位空出的b位补0。
  • 带符号右移(>>):a>>b表示将二进制形式的a逐位右移b位,最高位补原来的符号位。
  • 带符号右移(>>>):a>>>b表示将二进制形式的a逐位右移b位,最高位补0。
  • 注:a<<b相当于将把a乘以2b,a>>b相当于将把a除以2b由于位移运算速度快,所以在满足2的幂次方的乘除运算,可以采用位移的方式进行。

 

1.5switch选择语句

关于switch表达式返回值的类型:在jdk1.6之前,只能是int、byte、char、short四中类型之一,在jdk1.7中新增支持String类型。

 

1.6break和continue

break用于跳出当前循环,执行循环后面的语句(只跳出一层);continue用于跳出当前循环体中剩余的语句(只跳出一层),执行下一次循环。

注意:break和continue只跳出一层循环,如果想跳出多层循环,可配合标签。代码如下:

public static void main(String[] args) {
    outer:
        for (int i = 0; i < 4; i++) {
                for (int j = 0; j < 5; j++) {
                System.out.println("i="+i+" j="+j);
                if (i == 3 && j == 3) {
                    break outer;
                }
                if (j == 2) {
                    break;
                }
            }
        }
}

当j == 3的时候,内部循环会停止,外部循环继续;i == 3且j == 3的时候,整个循环都会停止。

posted @ 2015-04-26 16:51  L______eo  阅读(236)  评论(0编辑  收藏  举报