5.7-5.8内容消化总结

比较重要

  • 变量的转换类型
  • 算术运算符
  • 赋值运算符

特别重要

  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 三元(三目运算符)


变量相关

定义变量的注意事项

  1. java语言不能重复定义同一变量

    例如:int a = 3;

            int a = 4;

            这样的语法是错误的

  2. 代码书写要规范,定义完变量写了分号,立马另起一行重新定义变量或者继续代码
    (有的面试题是可以的)
  3. 目前定义的变量都在main当中,方法中定义的变量都称作"局部变量"
    局部变量在使用前必须初始化,必须要有初始化值!!

       

 强转以及自动转换

/*
面试题:
		第一题:
		byte b1=10,b2=20,b;
		b=b1+b2;
		b=10+20;
		哪句是编译失败的呢?为什么呢?
		
		
	考点:
		1)Java隐式类型转换
		2)Java强转类型转换
		3)变量相加和常量相加的区别
		
		变量相加:要考虑这个两个变量的数据类型,
		b =b1 +b2 ; b1和b2都是byte类型,当前参与运算,b1和b2先提升为int,结果应该int类型
		而b是byte类型,无法接收int类型的结果,必须强制类型转换
		
		常量相加:先相加,然后看计算结果是否在固定的类型范围内,在范围内就直接赋值了!
	
*/

在上述的案例中,b1以及b2都是byte 类型,占用一个字节,参与运算时,自动提升为int类型

b = b1 + b2;

上述代码右边进行运算之后,结果需要被byte类型的变量接手,会造成数据损失,长字节变成短字节,所以要进行强转,也就是显式转换

应当更改为

b = (byte )(b1 + b2);

常量相加的逻辑:先相加,看运算结果是否在类型的范围之内,如果未超范围,直接赋值,不会报错.

作业题

byte  x = 129; 是否编译通过,结果是多少,计算过程;

byte x = 129 ,编译不正确,超出了类型的取值范围

强制转换后赋值,计算方法如下:

byte x = (byte)129;

第一步,先写出129的二进制值

(00000000    00000000    00000000 )   100000001      原码

正数原码反码补码相

第二步,进行数据截取,红色部分丢弃

   截取后的补码:              100000001

                                      最高符号位                     数值位

                                             1                            0000001

反码                                      1                            0000000

原码                                      1                            1111111


结果                         -                                      64+32+16+8+4+2+1

最终得到的结果是-127

练习题

请输出x的值,写计算过程

byte x = (byte)300;

写出300的二进制数

  00000000            00000000            00000001        00101100

原码,反码,补码相同,截取补码进行计算

  (00000000            00000000            00000001)        00101100

截取后补码:          00101100

最高符号位                           数值位

     0                                     0101100              补码

     0                                     0101100              反码

      0                                    0101100              原码


计算结果:         32+8+4=44           

class Change3{
	
	public static void main(String[] args){
		
		
		
		byte x = (byte)300;
		System.out.println(x) ;
	}
}

输出结果:   

算数运算符

  1.  基本算术运算符:+,-,*,/,%(模),求余数
  2.   扩展的算术运算符:++或者--

注意事项:/:在Java语言中默认取整,

比如

        int a = 3 ;
        int b = 4 ;  

System.out.println(a/b) ;

其结果是 0  ,默认取整.

但是,如果参与数据计算有小数.提升double类型

赋值运算符

基本赋值运算符 =

        将等号右边的值赋值给=左边的变量

        扩展的赋值运算符:

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

举例:%=

class Number{
	
	public static void main(String[] args){
		
		int a = 100 ;
		a %= 30 ;  //都是int类型 等价于 int a = a%200 ;
		System.out.println("a:"+a) ;
	}
}

结果输出:a为10

关系运算符(比较运算符)

注意,关系运算符输出结果是 ture  or  false

    <,  <=,         >,      >=,          ==,    !=(非等于,真变假,假变真)

步骤:

  1. 定义变量
  2. 直接输出结果      或者      使用布尔类型变量接受结果

逻辑运算符

项目逻辑运算符扩展的逻辑运算符
与 &逻辑单与&(并列关系(交集),有false,则false)逻辑双与&&(有false,则false,有短路效果)
或 |逻辑单或|(或的关系(并集),有true,则true)逻辑双或||(有true,则true!有短路效果)
异或^逻辑异或^(相同则为false,不同则为true)/
非!逻辑非!(非true,则false;非false,则true;)/

位运算符(比较记忆)

注意:

逻辑运算符用于连接布尔型表达式

位运算是直接对二进制进行运算。

左移,右移,无符号右移

  <<   相当于乘以2的多少次幂。

 >>   相当于除以2的多少次幂。

 >>>被移位二进制最高位无论是0或者是1,空缺位都用0补。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值