第03章 变量(P035 - P062)
韩顺平 零基础30天学会Java 学习笔记
-
变量 = 变量名 + 值 + 数据类型 (变量三要素)
-
+
号的使用- 当左右两边都是数值型时,则做加法运算
- 当左右两边有一个是字符型时,则做拼接运算
-
Java数据类型
String 属于类
类型 占用存储空间 范围 byte [字节] 1字节 -128 ~ 127 short [短整型] 2字节 -(2^15) ~ 2^15-1
-32768 ~ 32767int [整型] 4字节 -(2^31) ~ 2^31-1
-2147483648 ~ 2147483647long [长整型] 8字节 -(2^63) ~ 2^63-1 float [单精度] 4字节 -3.403E38 ~ 3.403E38 double [双精度] 8字节 -1.798E308 ~ 1.798E308 -
java的整型常量(具体值)默认为int型,声明long类型常量需加
l / L
-
浮点数 = 符号位 + 指数位 + 尾数位
-
浮点数尾数部分可能丢失,造成精度损失(小数都是近似值)
-
java的浮点型常量(具体值)默认为double型,声明float类型常量需加
f / F
float num = 1.1
错误,应该改为float num = 1.1f
此外,
doublet num = 1.1f
也对 -
浮点数使用陷阱:2.7 和 8.1 / 3。所以对运算结果是小数的进行判断时,要小心。应该是两个数的差值的绝对值,在某个精度范围内判断。如果是直接查询得到的小数或者直接赋值,可以判断相等。
-
在java中,char的本质是一个整数。在输出时,是unicode码对应的字符。所以可以直接给char赋一个整数,然后输出对应的unicode字符。同时,char类型可以进行运算
-
字符编码表
-
不可以用0或者非0来表示布尔值(true, false)
-
-
Java API 文档
-
数据类型转换
-
自动类型转换:精度小的类型自动转换为精度大的数据类型
char / (byte --> ) short --> int --> long --> float --> double
-
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,再进行运算
-
(byte, short)和 char之间不会相互转换
-
byte, short, char 三者之间可以计算,在计算时首先转换为int类型(char, byte和short参与运算时,当作int类型处理)
char参与计算时注意,本质是整数,不要被表面的字符迷惑
-
boolean不参与转换
int a = 'c'; // √ double d = 80; // √ float d1 = a + 1.1; // 1. ×,后面相加类型为double byte b2 = 1; short s1 = 1; short s2 = b2 + s1; // 3. ×,后面相加类型为int int s2 = b2 + s1; // 3. √
-
-
强制类型转换
将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符
()
。但可能造成精度降低或者溢出,格外要注意。- 强转符号只针对最近的操作数有效,往往会使用小括号提升优先级。
-
基本数据类型和String类型的转换
-
基本类型 --> String
将基本类型的值 + ”" 即可。
-
String --> 基本类型
通过基本类型的包装类调用parseXX方法即可
// 基本类型 --> String int n1 = 100; float f1 = 1.1F; double d1 = 4.5; boolean b1 = true; String s1 = n1 + ""; String s2 = f1 + ""; String s3 = d1 + ""; String s4 = b1 + ""; // String --> 基本类型 String s4 = "123"; int num1 = Integer.parseInt(s5); double num2 = Double.parseDouble(s5); float num3 = Float.parseFloat(s5); long num4 = Long.parseLong(s5); byte num5 = Byte.parseByte(s5); boolean num6 = Boolean.parseBoolean("true"); short num7 = Short.parseShort(s5);
-
-