八大基本类型及其转换、boolean类型、分支结构、debug、逻辑运算符
文章目录
其他整数类型
- byte——字节型 -128~127
- short——短整型
- long——长整型,若赋的值没有超过 int 范围则不用在值得末尾加 F|f ,否则需要
基本类型转换
八大基本类型取值范围排序(暂时就学了六种)
从小到大:byte < short < int < long < float < double
隐式转换
将低精度的值赋予高精度的类型,由于不可能产生精度损失,所以可以自动完成,叫自动类型转换(提升)
显式转换
高精度赋值给低精度,由于可能会产生精度损失,所以需要手动完成,高精度向低精度转换时,采取从低位截取二进制的形式,故若原高精度值超过低精度类型的最大范围时,最终得到的值不一定是低精度的最大范围值。
语法:int num1 = (int)57.0;
八大基本类型与引用类型String默认值
数据类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
String | null |
八大基本类型表示数值范围及占用字节大小
范围其实是很好记的,
只要把数据类型对应的字节数记住,
然后字节数乘8(每个字节有8bit嘛)
首位表示正负所以减去
所以int 占 4 字节,4*8=32位,32-1 =31,所以2的指数就是32
至于为啥正数范围-1,其实正数最大二进制还真的是这个,
因为正数可以表示0,所以正数是从0开始的,
而没有-0,所以负数是从-1开始的,一直到 10000000 表示 -27,
但是正数可不能这样表示,他的最高位永远表示正也就是说0,
(以上是我的个人理解,但是我确实推敲了挺长时间,欢迎各位大佬提出不同意见)
数据类型 | 字节数 | 范围 |
---|---|---|
byte | 1 | -27 - 27-1 |
short | 2 | -213-213-1 |
int | 4 | -231-231-1 |
long | 8 | -263-263-1 |
float | 4 | 特殊不计 |
double | 8 | 特殊不计 |
char | 2 | ‘\u0000’ |
boolean | 最小为一 | false |
基本类型的赋值
-
byte——直接赋值
-
short——直接赋值
-
int——直接赋值(整数默认int)
-
long——不超过int的范围可以不在最后加 l / L 否则需要加
-
float——
- 赋值int时,不超过int最大范围不用加 f / F,否则需要加
- 赋值小数时,一定要加
-
double——
- 赋值int 时,若不超过int范围则不用加 d / D,否则需要
- 赋值小数时,不用加(默认小数是double)
判断是基本类型还是引用类型
其实很简单,基本类型是jdk自己带的,没有经过封装,所以都是小写的
而引用类型可以根据变量名调用各种方法,所以一定是封装类,而类的命名规则是大驼峰型
所以
- 数据类型字母全小写——基本数据类型
- 有大写——引用类型(是否为引用数据类型需要看他是否可以作存储数据的容器)
boolean布尔类型
介绍
- true——表示真
- false——表示假
常与循环、判断等结合使用
用法
boolean 变量名 = ture|false;
比较运算符
介绍
-
==
-
!=
-
<=
-
>=
-
>
-
<
比较运算符两侧可以是数字或者变量名
最终整体称为——表达式
算术运算符的优先级 比 比较运算符优先级 高
if 分支结构
代码执行结构
1、顺序结构——从上到下依次执行
2、分支结构——符合条件则执行对应语句,否则不执行
if语句
if(boolean){
执行语句;
}
Debug 调试
断点
表示从断点开始调试,
点击小绿色虫子图标
蓝色表示即将执行的语句
if…else
if…else if…else
if…else 嵌套结构
if(judgement condition){
if(judgement condition){
}else if(judgement condition){
}else{
}
}else if(judgement condition){
if(judgement condition){
}else if(judgement condition){
}else{
}
}else{
}
逻辑运算符
&
——逻辑与,两边都为 true结果才为true,两边的boolean表达式都会进行判断,效率略低|
——逻辑或,两边都为 false,结果才为false,两边的boolean表达式都会进行判断,效率略低&&
——短路与,若左边boolean表达式结果为false则会直接跳过右边的Boolean表达式,效率高||
——短路或,若左边 boolean 表达式结果为 True,则会直接跳过右边的boolean表达式,效率高- ! ——非,! 后的结果相反
- ^ —— 异或,左右两边表达式结果相同则为false,两边结果不相同则为true