1.类型之间的转换
自动转化
byte short char int long
byte short char 可以直接转换为int
byte short char 类型之间不能相互转换
int 也可以直接转换为long 需要在数据的结尾添加L
float double
float 也可以直接转换为double
强制类型转换
语法: 接受类型 变量名 = (将要转换的类型)待转换变量
特殊情况:
long --> float
可以转换
float 32位 使用最高位1位表示符号位 8位表示E 23位表示小数
long转换为float 可以自动转换 但是这种转换之后E后的数据具有不确定性 尽量不用
long到double时同样的
浮点数转换为整数
进行转换的时候会舍弃小数位
boolean 类型占一个字节的空间
boolean true/false --> 1 / 0
理论上一位(bit)就可以保存boolean 但是最小的存储单元时byte (字节) 所以在分配空间时 依然分配一个字节
String类型:不属于8中基本类型 属于引用类型
2.进制转化:
二进制的表示形式:原码 反码 补码
正数 的原码 反码 补码都是一样
负数 原码 将一个负数表示程二进制
反码 按位取反 0变1 1 变0
补码 反码+1
3.变量:用于在内存中保存数据,该区域的数据可以在同一类型范围内不断变化
使用变量注意:
-
Java中每个变量必须先声明,后使用
-
使用变量名来访问这块区域的数据
-
变量的作用域:其定义所在的一对{ }内
-
变量只有在其作用域内才有效
-
同一个作用域内,不能定义重名的变量
-
对于声明在方法内的变量,必须被初始化才能使用(局部变量),成员变量便没有这个
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
局部变量在使用前必须赋予初始值,成员变量有默认的初始值,在使用前不必初始化。
3.运算符
-
算数运算符
-
逻辑运算符
-
赋值运算符
-
关系运算符
-
位运算
-
三元运算符
算数运算符
算数运算中 byte short char int 运算的结果都是int类型
运算中如果有long类型存在 则结果long类型
在整数类型及char类型做运算的时候 如果操作数如果时byte short char 那么运算的结果是int
如果期中有int类型的操作书 结果肯定是int
如果操作书中有long类型 结果肯定是long
如果在运算中操作数中有float类型 则结果为float
如果在运算中操作数中有double类型 则结果为double
boolean不能参与算数运算 boolean也不能和其他类型之间进行相互转换
对于/ *法运算 其中如果有负数 则结果为负
在除法运算中 取得是相除的商
%取模运算 结果为余数 结果的正负与第一个操作数保持一致
++ 自增
--自减
++ 作用都是给当前操作数+ 1
++写在操作数之后 是先取操作数的值 然后在给该数加1
++写在操作数之前 是先加1 在取值
&运算中只要有false 结果就为false
| 运算中 只要有true 结果就为true
! true 为false false 为true
^ 当两个不同时 则为true 相同时为false
&& 当在运算中 如果符号左边为false 则右边不在执行运算 只有左边为true 右边才会进行运算
|| 短路或 如果符号左边为true 右边就不执行运算 只有左边为false 右边才会执行运算
位运算是针对二进制的每一位进行运算的符号。
<<:被移除的高位丢弃,空缺位补0。
>>:被移位的二进制最高位是0,右移后,空位补0,最高位补1,空位补1。
>>:
&:
|:
^:
~:
本文深入探讨Java中的数据类型转换,包括自动和强制类型转换的规则,特别关注float和long之间的转换及其潜在的精度问题。此外,文章还介绍了算数运算符的使用,包括加减乘除和取模运算的特点,以及自增自减运算符的行为。同时,对位运算符进行了详细的解释,如左移、右移和按位与或异或运算。
1552

被折叠的 条评论
为什么被折叠?



