day-3
1、数据类型
1)byte 值的问题:
byte 类型的范围是:-128~127
byte b1 = 127;–>结果127
byte b2 = (byte)128;–>结果 -128
byte b3 = (byte)129;–>结果:-127
byte b4 = (byte) 130; -->结果:-126
128的二进制表示:10000000
-128的二进制表示:1000000 这里的1既是符号位,也是数值位
结论:我们在任何一个范围内,如何给一个较大的值,超出范围了。在截取的时候,走到最大值的时候,就会绕回来,从最小值重新走一圈!
2)数据类型抓换之默认转换:byte、short、char 只要这三种类型参与运算,会首先提升为int类型!
接着,如果运算中有long类型,就提升到long类型,
如果有float类型,就提升到float类型
如果运算中有double类型,就提升到double类型
布尔 不参加运算
long类型有8个字节
float类型有4个字节
A:他们底层的存储结构不同。
B:float类型表示的数据范围比long类型要大!
3)面试题: java语言中的字符char可以存储一个中文汉字吗?为什么?
回答:可以存储汉字。不过更推荐使用String类型。
java语言中,一个字符占用两个字节。无论是汉字还是数字、字母都是占用两个字节。
char基本数据类型长度是2个字节,而汉字也是两个字节的,所以可以存储。
java语言采用的是Unicode编码;
2、运算符
算数运算符:
i++,i–
++i,–i
作用:是对变量进行自增1或自减1;(不可是常量,常量是不可变的)
单独使用时;放在操作数前后都一样,没有差别;
参与运算时使用;
放在操作数前面,先自增或自减,然后再参与运算
放在操作数后面,先参与运算,然后再自增自减
赋值运算符:i += 1; --> i=i+1;
比较运算符:“==” “!=”
特点:无论你的操作是简单还是复杂,结果是boolean类型值
逻辑运算符:
与|| 或&& 非! 异同^(相同为false,异同为true。便于记忆,可类比情侣关系)
&& 与 &的区别:
1、最终结果没有区别;
2、&&是一个短路的效果。 如果左边是false,右边则不执行
位运算符:&、 |、 ^、 ~
在源码中使用,注意:要做位运算,首先要把数据转换换为二进制
三元运算符:
基本格式:比较表达式? 表达式1:表达式2;
比较表达式:结果是boolean值
3、键盘录入-Scanner
基本格式:三部曲
导包–>创建对象–>调用方法获取数据
4、流程控制语句
代码的先后顺序,从上往下,一次执行。
if语句:
if(关系表达式) {
语句体
}
关系表达式无论复杂还是简单,结果必须是boolean类型
一般来说,有左大括号就没有分号,有分号就没有左大括号;
5、三元运算符与if语句的区别:
三元可以实现的,if都可以实现;反之则不成立
当if语句 语句体的操作是一个输出语句的时候,就不能用三元来代替;
因为三元运算符是一种运算符,运算符操作完毕后,就应该有一个结果,而不是一个输出;