变量
程序中+号的使用
- 当左右两边都是数值型时,则做加法运算
- 当左右两边有一方为字符串,则做拼接运算
- 运算顺序,是从左到右
整型细节
- Java的整型变量(具体值)默认为int,声明long型常量需要后加"l"或“L”
- Java各整数类型有固定的范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
- bit:计算机中的最小存储单位。 byte:计算机中基本存储单元,1byte=8bit
浮点类型
-
浮点数存放形式: 浮点数=符号位+指数位+尾数位
-
位数部分可能丢失,造成精度损失(小数都是近似值)
-
与整数类型相似,Java浮点类型也有固定的范围和字段长度,不受具体OS的影响
-
Java的浮点型常量(具体值)默认为double型,声明为float型常量,须后面加‘f’或‘F’
-
浮点型常量有两种表示形式:十进制数形式以及科学计数法形式 5.12e2{5.12*10的2次方}
-
通常情况下应该使用double型,因为它比float型更精确
-
浮点数的比较:
-
double num1=2.7; double num2=8.1/3; if(Math.abs(num1-num2)<0.00001){ System.out.println("相等"); }
-
-
字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如’a’
存储: ‘a’==》码值97 》二进制(1100001)》存储
读取:二进制(1100001)=》97===》‘a’=》显示
-
字符和码值的对应关系是通过字符编码表决定的(是规定好的)
布尔类型
- 布尔类型也叫Boolean类型,boolean类型数据只允许取值true和false,无null
- boolean类型占1个字节
- 不可以用0或非0的整数代替true和false
类型的转换
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
- 当我们把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动转换
- (byte ,short)和char之间不会相互自动转换
- 当把具体数据赋值给byte时会先判断该数是否在byte范围内,如果是就可以。而如果是用变量赋值则不可以
- byte,short,char 它们三者可以计算,在计算式首先转换成为int类型
- boolean不参与类型的自动转换
- 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
- 强制类型转换:将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意
- 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转
- byte和short,char类型在进行运算时,当做int类型处理
基本数据类型和String类型的转换
- 基本类型转String类型,将基本类型的值+**“”**即可
- String类型转基本数据类型,通过基本类型的包装类调用parseXX方法即可
- 在将String类型转成基本数据类型时,要确保String类型能够转成有效数据,如果格式不正确,就会抛出异常,程序就会终止