JavaSE Day2

1.数据类型转换

1.1 自动类型转换

数据范围从小到大
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

1.2 强制类型转换

范围小的类型 变量名 = (范围小的类型)原本范围大的数据

注意事项

  1. 强制类型转换一般不推荐使用,有可能发生精度损失、数据溢出
    (小数转换为int时,直接舍弃掉小数点后的部分)
  2. byte/short/char这三种类型都可以发送数学运算,例如加法“+”。在运算时,都会首先被提升成为int类型,然后再计算
  3. boolean类型不能发生数据类型转换

1.3 ASCII 编码表

48 = 0
65 = A
97 = a

2.运算符

2.1 算术运算符

对于整数表达式来说,除法用的是整除,结果仍是整数,只看商。
只有对于整数的除法来说,取模运算符才有余数的意义

注意:运算中有不同类型的数据,结果将是范围大的那种

“+”的三种用法:

  1. 对于数值来说,就是加法
  2. 对于char来说,在计算之前,会被提升为int然后再计算(对照关系:ASCII, Unicode)
  3. 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作(无空格),任何数据类型和字符串进行连接的时候,结果都会变成字符串

优先级问题:
str+20+30 ‐‐> str2030
str+(20+30) ‐‐> str50

自增、自减运算符(前++:++x ,后++:y++)

  1. 单独使用:前++和后++没有任何区别
  2. 混合使用(与赋值、打印等操作混合):
    前++:变量马上+1,然后拿着结果进行使用(先加后用)
    后++:首先使用变量本来的数值,然后再让变量+1(先用后加)

注意:只有变量才能使用自增、自减运算符

2.2 赋值运算符

a %= 2 相当于 a = a % 2
注意:复合赋值运算符其中隐含了一个强制类型转换
eg.

byte num = 30
num += 5
// num = byte + int
// num = int
// num = (byte) int

2.4 逻辑运算符

与“&&”, 或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行。
与、或运算符如果有多个条件,可以连续写

2.5 三元运算符

数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
判断条件是否成立,如果成立,将A的值赋值给左侧变量,如果不成立,将B的值赋值给左侧变量
注意:

  1. 必须A和B同时符合左侧数据类型的要求
  2. 三元运算符结果必须被使用(不能单独写)

3.方法入门

方法定义:
修饰符 返回值类型 方法名 (参数列表){
代码…
return ;(返回值是void时可不写)

4.其他注意事项

  1. 对于byte/short/char来说,如果右侧赋值的数值没有超过左侧范围,那么javac编译器将会自动隐含的补上一个(byte)(short)(char),如果超过了会直接报错
  2. 在给变量进行赋值时,如果右边表达式当中全部是常量,没有任何变量,那么javac会直接将若干常量表达式计算得到结果。编译后得到的字节码文件中相当于【直接就是】数据类型 变量 = 常量,当右侧数值没有超过左侧范围时,就不会报错。这称为“编译器的常量优化”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值