黑马程序员技术交流社区

标题: 分享Java基础学习笔记 [打印本页]

作者: Forever_Up    时间: 2014-10-22 18:18
标题: 分享Java基础学习笔记
基础语言要素
    1)标识符:给类、方法、变量起的名字  
      A .必须以字母或下划线或  $  符号开始,其余字符可以是字母、数字、$  符号和下 划线。  
      B .只能包含两个特殊字符,即下划线  _  和美元符号  $  。不允许有任何其他特殊字 符。
      C .标识符不能包含空格。  
      D .区分大小写。  
    2 )关键字:只有系统才能用的标识符  
        注意事项:  
           true 、false、null 不是关键字!是字面量。
           main  不是关键字!但是是一个特殊单词,可以被JVM  识别,主函数是固 定格式,作为程序的入口。  

    3 )注释:单行注释://    多行注释:/*  „„*/            文档注释:/**„„*/  
        注意事项:开发中类前、属性前、方法前,必须有文档注视。  

八种基本数据类型  
    1)四种整数类型(byte、short、int、long) :  
          byte :8 位,用于表示最小数据单位,如文件中数据,-128~127  
          short:16 位,很少用,-32768 ~ 32767  
          int :32 位、最常用,-2^31-1~2^31  (21 亿)  
          long :64 位、次常用
        注意事项:  
             int i=5; // 5 叫直接量(或字面量),即直接写出的常数。  
            整数字面量默认都为int 类型,所以在定义的long 型数据后面加L 或l 。  
            小于32 位数的变量,都按int 结果计算。  
             强转符比数学运算符优先级高。见常量与变量中的例子。  
   2 )两种浮点数类型(float、double) :  
       float:32 位,后缀F 或f,1 位符号位,8 位指数,23 位有效尾数。  
       double :64 位,最常用,后缀D 或d,1 位符号位,11 位指数,52 位有效尾数。  
        注意事项:  
           二进制浮点数: 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3 次方)= . 1010100010*2^1010(10 次方)  
           尾数:  . 1010100010    指数:1010    基数:2  
            浮点数字面量默认都为 double  类型,所以在定义的 float  型数据后面加 F 或f;double 类型可不写后缀,但在小数计算中一定要写D 或X.X 。  
            float  的精度没有long 高,有效位数(尾数)短。  
           float  的范围大于long  指数可以很大。  
           浮点数是不精确的,不能对浮点数进行精确比较。  
    3 )一种字符类型(char):
         char :16 位,是整数类型,用单引号括起来的1 个字符(可以是一个中文字符),使用Unicode 码代表字符,0~2^16-1  (65535 )。  
       注意事项:  
            不能为0 个字符。  
            转义字符:\n  换行  \r   回车  \t Tab 字符  \"  双引号  \\  表示一个\  
           两字符char 中间用“+ ”连接,内部先把字符转成int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字 符。  
    4 )一种布尔类型(boolean):true 真  和false 假。  
    5 )类型转换:   
           自动转换:byte-->short-->int-->long-->float-->double        
           强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。  
                               ②容易超过取值范围。  
常量和变量  

    变量:内存中一块存储空间,可保存当前数据。在程序运行过程中,其值是可以改变的量。  
    1)必须声明并且初始化以后使用(在同一个作用域中不能重复声明变量)!  
    2 )变量必须有明确类型 (Java 是强类型语言)  
    3 )变量有作用域(变量在声明的地方开始,到块{}结束)。变量作用域越小越好。  
    4 )局部变量在使用前一定要初始化!成员变量在对象被创建后有默认值,可直接用。  
    5 )在方法中定义的局部变量在该方法被加载时创建。  
    常量:在程序运行过程中,其值不可以改变的量。  
       注意事项:  
           字面量、常量和变量的运算机制不同,字面量、常量由编译器计算,变量由运算器处理,目的是为了提高效率。  
              eg :小于32 位数的字面量处理  
              byte b1 = 1; byte b2 = 3;  
              //byte b3 = b1+b2;//编译错误,按照int 结果,需要强制转换  
              byte b3 = (byte)(b1+b2);  
              //byte b3 = (byte)b1+(byte)b2;//编译错误!两个byte 、short、char 相加还是按int 算  
             System.out.println(b3); //选择结果:A 编译错误B 运行异常  C 4    D b3  
             byte b4 = 1+3;//字面量运算,编译期间替换为4,字面量4
             //byte b4 = 4;  不超过byte 就可以赋值  
     不管是常量还是变量,必须先定义,才能够使用。即先在内存中开辟存储空间,才能够往里面放入数据。  
     不管是常量还是变量,其存储空间是有数据类型的差别的,即有些变量的存储空间用于存储整数,有些变量的存储空间用于存储小数。
运算符与表达式  

    1)数学运算:+   -   *   /    %   ++   --  
       注意事项:  
           +    -    *    /  两端的变量必须是同种类型,并返回同种类型。  
           %  取余运算,负数的余数符号与被模数符号相同,  - 1 % 5 = - 1,1 % - 5 =1 ;;Num % n ,n>0 ,结果范围[0,n),是周期函数。
       注意整除问题:1 / 2 = 0  (整数的除法是整除)1.0 / 2 = 0.5      1D / 2 = 0.5  
       单独的前、后自增或自减是没区别的,有了赋值语句或返回值,则值不同!
    2 )位运算:&    |    ~  (取反)  ^    (异或)>>    <<    >>>  
        注意事项:  
             一个数异或同一个数两次,结果还是那个数。  
            |:上下对齐,有1 个1 则为1;&:上下对齐,有1 个0 则为0 ;(都为二进制)  
            &相当于乘法,|  相当于加法;&:有0 则为0,|  :有1 则为1,^ :两数相同为0,不同为1。  
    3 )关系运算符:>    <    >=    <=    ==    !=  
    4 )逻辑运算符:&&    ||      (短路)    !    &    |  
        eg :短路运算:&&:前为flase,则后面不计算;||  :前为true ,则后面不计算  
          int x=1,y=1,z=1;   
          if(x--==1 && y++==1 || z++==1) //    ||  短路运算后面的不执行了!  
           System.out.println(―x=‖+x+‖,y=‖+y+‖,z=‖+z);//    0 , 2, 1  
    5 )赋值运算符:=    +=    -=    *=    /=    %=  
         eg :正负1 交替            
            int flag= -1;    System.out.println(flag *= -1);  „„  
    6 )条件 (三目)运算符:表达式1  ?  表达式2  :表达式3  
        注意事项:  
             右结合性:a > b ? a : i > j ? i : j  相当于  a > b ? a : ( i > j ? i : j )  
              三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型,
                 整个表达式的运算结果由容量高的决定。如:int x = 4;  x > 4 ? 99.9 : 9;   
                 99.9 是double 类型,而9 是int 类型,double 容量高,所以最后结果为9.9 。  
    7 )  运算符优先级:括号  >   自增自减  >    ~ !    >  算数运算符  >  位移运算  >  关系运算  >  逻辑运算  >  条件运算  >  赋值运算




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2