java基础学习 day08(运算符和类型转换)

1. 运算符和表达式

  • 运算符:对字面量(常量)或者变量进行操作的符号
  • 表达式:用运算符把字面量或者变量连接起来,且符合java语法的式子就可以称之为表达式。

2. 运算符包含:算术运算符,自增自减运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符。

  • 算术运算符:+ - * / %(取余/取模)
      注意:
      * 在代码中,如果有小数参与运算,结果可能会不精确。原因会在Javase中进行讲解。
       * 在代码中,如果只有整数参与运算,结果只能是整数,想要得到小数,必须有浮点数(小数)参与运算。
      * /和%的区别:两个都是数据做除法,/是取结果的商,%是取结果的余数。
    Tips:数值拆分的公式:
    个位:数字 % 10
    十位:数字 / 10 % 10
    百位:数字 / 100 % 10
    千位:数字 / 1000 % 10

3. 类型转换分为:隐式转换,强制转换

  • 隐式转换(自动类型提升):取值范围小的数值转换为取值范围大的数值。
  • 隐式转换注意点:
      * 取值范围:double > float > long > int > short > byte
      * 什么时候转换:数据类型不一样,不能直接进行计算,需要转换成一样的数据类型才可以进行计算(转换只是变量的值进行转换,变量本身并不发生改变)
      * 转换规则1:取值范围小的,和取值范围大的进行计算,小的会先提升为大的,再进行计算
      * 转换规则2:byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。关系运算符也是计算,其中char类型会查询ASCII码表,再提升为int。
  • 强制转换:取值范围大的数值转换为取值范围小的数值。
  • 强制转换注意点:
      * 不允许将取值范围大的数值直接赋值给取值范围小的变量,但如果一定要这么做,就要加入强制转换。
      * 格式为:目标数据类型 变量名 = (目标数据类型)被强制转换的数据;
    例如:
       byte a = 10;
       byte b = 20;
       byte c = (byte)(a + b);
    // a 和 b都是byte变量,在进行运算时,先提升为int,再进行计算,结果为int类型,大转小需要进行强制类型转换
       byte d = 10 + 20;
    // 10+20并不是变量,直接将10+20的结果30作为byte类型数据,直接赋给d,不涉及强转

    * 当被强制转换的数据过大,超出目标数据类型的取值范围时,转换后的数据会出现错误。

  • int类型数据可以直接赋值给char类型变量,但若一个方法的返回值是int类型,那么不能将这个方法的返回值直接赋值给char类型变量,例如:

Random r = new Random();
Scanner sc = new Scanner(System.in);
char a = 65;// ‘A’
char b = 3 + ‘g’;// ‘j’
char c = r.nextInt(4);//程序报错
char d = sc.nextInt();//程序报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值