时隔三年的Java再再学习 DAY2 数据类型转换、运算符

1. 数据类型转换

1.1 自动转换

自动转换:取值范围小的类型自动的转化为取值范围大的类型。
例如:一个int类型变量和一个byte类型变量相加,结果将是int类型,这就是期间发生了数据类型的自动转换。
同样的道理再举一个例子:
当一个int类型变量和一个double类型变量运算时,int类型会自动提升为double类型进行运算。

转换规则:范围小的类型向着范围大的类型提升,byte、short、char运算时直接提升为int。

// An highlighted block
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

1.2 强制类型转换

// An highlighted block
int i = 1.5; // 错误
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;

强制类型转换需要注意:
浮点数转成整数,直接取消小数点,可能造成数据损失精度;
int转short,实质是损失两个字节可能造成数据丢失。

1.3 ASCLL编码表

常见的编码表:
在这里插入图片描述

2. 运算符

2.1 常见运算符

在这里插入图片描述
特别的:
++、-- 运算符:++变量自己增长1,–变量自己减少1
++在变量前后的位置在独立运算时没有区别,但是在混合运算中和其他的运算放在一起就需要注意了:
前++,变量a先加1再将值赋给b;
后++,变量a先将值赋给b再加1.

另外的,+符号在遇到字符串的时候,表示连接拼接的含义。
“a”+“b” 的结果是“ab”,连接含义。

2.2 赋值运算符

在这里插入图片描述

// An highlighted block
i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i

2.3 比较运算符

在这里插入图片描述
比较运算符的运算结果是布尔值:true或false

2.4 逻辑运算符

在这里插入图片描述
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false。

2.5 三元运算符

// An highlighted block
数据类型 变量名 = 布尔类型表达式?结果1:结果2

计算方式:
布尔类型表达式是true,结果1赋值给变量;
布尔类型表达式是false,结果2赋值给变量。

3. 说一说方法

什么是方法:就是把一个功能抽取出来把代码单独定义在大括号内,形成一个单独的功能。
注意事项:
方法必须定义在一类中方法外;
方法不能定义在另一个方法里面。

4. 小细节

// An highlighted block
public static void main(String[] args){
  byte b1=1;
  byte b2=2;
  byte b3=1 + 2; //正确赋值 
  byte b4=b1 + b2; //错误
  System.out.println(b3);
  System.out.println(b4);
}

b1、b2是变量,变量的值是可能变化的,所以javac编译的时候不确定两者相加的结果,就会自动将结果以int类型处理,因此会出现编译失败。

// An highlighted block
public static void main(String[] args){
  short s = 1;
  s+=1;
  System.out.println(s); //正确赋值
}

表面上看似会发生和上一代码段一样的编译错误,因为在我们的认识里面 s+=1等价于s=s+1,但是这里需要指出赋值运算符号只运算一次,并带有强制转换的特点,因此没有问题编译通过。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值