黑马程序员_JAVA基础-运算符

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

1:常量(掌握)

      (1)在程序运行过程中其值不发生改变的量。

      (2)定义分类:

            字面值常量

            自定义常量(后面讲)

      (3)常量的分类:

            整数常量      12,-34

            小数常量      12.5

            布尔常量      true,false

            字符常量      'a','A','0'

            字符串常量   "hello",""

            空常量         null

     

2:Java中对整数常量有四种表示形式(理解)

      (1)二进制:JDK7以后的新特性。

            组成:由0,1组成。用0b开头表示。

      (2)八进制:

            组成:由0-7组成。用0开头表示。

      (3)十进制:

            组成:由0-9组成。默认整数就是十进制。

      (4)十六进制:

            组成:由0-9,a-f(不区分大小写)。用0x开头表示。

 

3:进制转换(理解)

      (1)其他进制到十进制的转换

            系数*基数的权次幂之和。

      (2)十进制到其他进制的转换

            除基取余,直到商为0,余数反转。

      (3)二进制和十进制间快速转换 8421码

            二进制:

                  1    1    1    1    1    1    1    1   

            十进制:

                  128      64  32  16  8    4    2    1

 

            二进制到十进制:

                  1001010    = 64 + 8 + 2 = 74  

 

            十进制到二进制:

                  200      = 128 + 64 + 8

 

                  11001000 

 

4:有符号数据表示法(理解)

      (1)有三种形式,原码,反码,补码。

      (2)规则如下:

            正数:正数的原码,反码,补码都一致。  .java  .class

            负数:

                  负数的原码和正数的区别是最高位是1。表示符号位。

                  负数的反码和负数的原码的区别是:符号位不变,数值位1变0,0变1。

                  负数的补码是负数的反码+1。

     

 

5:变量(掌握)

      (1)变量就是指在一定范围内可以发生改变的量。

      (2)变量的定义和使用格式:

            A:数据类型变量名 = 初始化值;

int a = 3;

            B:数据类型变量名;

              变量名 = 初始化值;

int a;

a = 3;

            注意:变量在使用前,一定要有值。

 

6:数据类型(掌握)

      (1)数据类型分类:

            基本数据类型:48种。

            引用数据类型:类,接口,数组。

      (2)基本数据类型:

            整数:

类型          字节数    

                  byte           1

                  short         2

                  int            4    //开发用它

                  long           8

            浮点数:

                  float          4

                  double       8  //开发用它

            字符:

                  char           2

            布尔:  

                  boolean     1

 

            注意:

                  整数默认是int类型。long整数加后缀L或者l

                  浮点数默认是double类型。float浮点数加后缀F或者f

 

7:类型转换(掌握)

      在参与运算的过程中,要求运算符两端的数据类型一致。

      (1)隐式转换(自动转换从小到大)

            A:boolean类型不参与。

            B:按照如下格式

 

                  为什么long可以到float?

                        因为浮点数的存储机制和整数不太一样。

                        浮点数的存储只存储有效数字,和次幂数字等。

                              23456.123;

 

                              2.3456123 * 10 ^ 4

                        不管怎么说,long能够表示的数据的值是小于float的。

                        所以,这种转换是可以的。

                       

                        long  2^63

                        float10^38 > 8^38 = 2^3^38 = 2^114 > 2^63

           

            注意:

                  如果运算中有最后边的数据类型,结果一定是最后边的数据类型。

      (2)强制转换(从大到小)

            这种做法不推荐。因为可能有数据精度的损失。

 

            格式:

                  目标数据类型变量名 = (目标数据类型) (被强制转换的数据);

 

                  byte b = (byte) (100 + 200); //300>127

int i = 100+300;

int age = 20;

 

18.运算符

      定义 : 运算符就是把常量和变量连接的符号,一般参与运算使用。

      分类:

            算术运算符

赋值运算符

比较运算符

逻辑运算符

位运算符

三元运算符

      (1)算术运算符

            +,-,*,/,%,++,--

 

            +:正号,加法,字符串连接符。

                  System.out.println("5+5="+5+5);//5+5=55

                  System.out.println(5+5+"=5+5");//10=5+5

 

            %:取得余数

                  左边如果大于右边,结果是余数。  5%2=1   2%5=2

                  左边如果小于右边,结果是左边。

                  左边如果等于右边,结果是0

 

                  正负号跟左边一致。

 

            ++/--

                  ++ 其实相当于把数据+1

 

                  单独使用:

                        在数据的前后,结果一致。

           

                  参与操作使用:

                        如果在数据的后边,数据先操作,在++/--

int a = 3; System.out.println(a++>4);

                        如果在数据的前边,数据先++/--,在操作。

 

 

      (2)赋值运算符

            =,+=,-=,*=,/=,%=

 

            int a = 10;

                  10赋值给int类型的变量a

 

            a += 20;  // a = (int)(a+20)

                  把左边和右边的和赋值给左边。

 

            注意事项:

                  a = a + 20;

                  a += 20;

                  结果是等价的,理解不是等价的。

 

                  因为+=这种运算符,内含了强制类型转换功能。

                  比如:

                        shorts = 2;

 

                        s+=3;

                        等价于

                        s= (short)(s+3);

 

(3)比较运算符

 

举例:

int a=4;

            int b=5;

            boolean flag = a==b;

            System.out.println(flag);

 

 

(4)逻辑运算符

boolean b1 = 5>3;

          boolean b2 = 9>=3;

          System.out.println(b1& b2); // true

          System.out.println(b1| b2); // true

         System.out.println(!b1 & !b2); // false

         System.out.println(!!b1 ^ b2); // false

 

 

重点:

&”和“&&”的区别:     作用:为了提高运算效率,开发时用&&.

&时,左边无论真假,右边都进行运算;

&时,如果左边为真,右边参与运算,

     如果左边为假,那么右边不参与运算。

开发用: &&  && 没人用单的.

 

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。(理解就行,后面几乎不用)

 

 

 

(5)位运算符(做为理解或了解,能看懂即可, 开发几乎不用,目前我没看到谁开发用它!)

 

看下面程序的执行结果:

int a=3;

int b=4;

System.out.println(a&b);

System.out.println(a|b);

System.out.println(a^b);

System.out.println(~b);

 

 

(6)三元运算符

格式:

(条件表达式) ? 表达式1 : 表达式2 ;

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

示例:

int a=3, b=4,z;

z = (a>b)?100:200;

 

练习题巩固:

int x=100;

int y=100;

int z =(x>200)?(y<40?100:200):(y>100?300:400);

System.out.println(z);

z=400;

 

结果是什么?

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值