黑马程序员-学习日志Day02

------- android培训java培训、期待与您交流! ---------- 

 

Day02 java基础语法1

1.Java语言基础组成:
       关键字:被java语言赋予了特殊含义的单词,所有字母都小写。标识符:在程序中自定义的一些名称。由26个英文字母大小写组成
,数字:0-9 符号:_$组成。另外还有注释,常量和变量,运算符,语句,函数,数组。

 

2.进制的转换
       一个整数有四种表现形式,即二、八、十、十六进制。
二进制的表现形式,用1010的排列组合表现不同的数据。1个字节=8个二进制位组成,最大是255,一个汉字=2个字节。
 
       a.十进制转成二进制
          原理:对十进制数进行除2运算。
      
           二进制转十进制
           原理:二进制乘以2的过程。
           注意:二进制的加法运算和十进制的一样。
 
         b.八进制转成十六进制
            以90为例子,先将十进制转成二进制,然后将二进制转成
十六进制,或其他进制。
 
        c.负数的二进制表现形式
       6=110
      -6:其实就是6的二进制取反加1.
      取反:将二进制的1变成0,0变成1.
      0000-0000 0000-0000 0000-0000 0000-0110
      1111-1111 1111-1111 1111-1111 1111-1001
    +0000 0000 0000 0000 0000 0000 0000 0001
    =1111 1111 1111 1111 1111 1111 1111 1010
    规律:负数的最高位都是1。

3.变量
        通过明确数据类型、变量名称、数据来完成将不确定的数据
进行存储。
        概念:内存中的一个存储区域
        目的:用来不断的存放同一类型的常量,并可以重复使用。

         什么时候定义变量?
         当数据不确定,需要对该数据进行存储时,就定义一个变量
来完成存储动作。
 


4.类型转换
        java强类型特点容易导致类型在转换时候发生”可能损失精
度的问题“。
      

       思考:为什么byte b = 3可以,而b = b+2就不行了呢?
       因为前者的3是常量,等式会做一个判断3是否属于byte类型
的区间,而后者的b是不确定的数,它加2之后的值是不确定的,有可能会超出byte类型的值,故后者不行。
 
        a.自动类型提升(隐式类型转换)参考老毕PPT(Page14):

                        
 
            思考1:System.out.println('a')与
System.out.println('a'+1);
           
           

            思考2:byte b1=3,b2=4,b;b=b1+b2;b=3+4;哪句是编译失败的呢?为什么?
           

             b1+b2的值是不确定的,有可能会超出byte类型的b的取值范围。
             可以改成b=(byte)(b1+b2):

             

             

              b.强制类型转换(显式类型转换)
             


5运算符
        a.取模运算,如下图:

       
 
         b.赋值运算符
         思考题:short s = 3;s = s+2;s+=2 两者有什么区别?
         分析如下图:

         


         

 

        s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s =(short)(s+1),简单来讲就是 s+=1 <=> s =  (s的类型)(s+1)。

 

 
 
          c.位运算符
         左移<<:如3<<2?
         右移>>:6>>2?

         规律:右移变小,左移变小。其实左移其实就是乘以2的移动的位数次幂,右移动就是除以2的移动的位数次幂:即左移=3*2(位数),右移=6/2(位数)

         注意:右移带符号,最高位补什么以最高位为准!而>>>右移无论最高位是什么,都补0;
                    注意异或的妙用!加法运算可能损失精度,而异或则补存在这个问题,而且可以简化转换赋值的操作。


 
 
          d.三元运算符
          格式:(条件表达式)?表达式1:表达式2;
          如果条件为true,则运算结果为表达式1,否则为表达式2.
 

 

6.程序流程控制
          它包括三种结构:判断,选择,循环结构。
          a.if判断结构.if语句常见三种格式,它的特点:

              a1.每一中格式都是单条语句。
              a2.条件表达式无论写成什么样子,只看最终的结
果是true或者false.
 
              a3.它与三元运算符的区别:后者必须要有结果。
   
           b.switch语句
               特点:
               b1.switch语句选择的类型只有四种:
byte,short,int,char,java5开始多了个枚举,java7多了个String。
               b2.case之间与default没有顺序。先执行第一个case,没
有匹配的case执行default。
               b3.结束switch语句的两种情况:遇到break,执行到
switch语句结束。
               b4.如果匹配的case或者default没有对应的break,那么程
序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
               注意:当default放在第一个位置时候,语句执行顺序依然
是先读第一个case!如果所有的case都不符合再读default!!!
                
 
             c.循环语句
                有三种:while,do while,for
                c1.格式: while(条件表达式){执行语句};do while:do{执行语句}while();for(初始化表达式;循环条件表达式;循环后的操
作表达式){执行语句}
                注意:do while特点是条件不论是否满足,循环体至少被执
行一次。
                
c2.for和while可以互换,区别在于for为了循环而定义的变量再for循环结束时在内存中释放,而后者的变量再循环结束后还可以继续使用。
 
                c3.最简单无限循环格式:while(true),for(;;),原理是
没有循环的结束条件。
               总结:什么时候使用循环结构?
               当需要对某些语句执行很多次的时候,就用循环结构
 
 
              d.break与continue
                 break:应用范围为选择结构和循环结构。
                 continue:应用与循环结构;
                 注意:这个两个语句离不开应用范围,并且在该语句下面的
语句是执行不到的。

 

------- android培训java培训、期待与您交流! ----------

详情请查看:http://edu.csdn.net/heima

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值