Java基础语法
一、数据类型
(一)最好避免使用浮点数进行比较
-
银行业务怎么表示?
采用BigDecimal(数学工具类)
(二)所有的字符本质还是数字
编码 Unicode 2字节
(三)类型转换
类型自动转换
低 ------------------------------------> 高 byte,short,char—> int —> long—> float —> double
- 不能对布尔类型转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
(四)JDK7新特性,数字之间可以用下划线分割
int a = 10_0000_0000;
int b = 20;
int c = a * b;//-1474836480,计算时溢出
long d = a * b;//-1474836480,先计算,在转换。计算的时候就转换成int类型了。
二、变量
(一)实例变量,如果不自行初始化,会赋值这个类型的默认值
//除了基本类型,其他都是null
byte = 0;
short = 0;
int = 0;
long = 0L;
float = 0.0f;
double = 0.0d;
char = 'u0000'//输出空
String(or any object) = null;
boolean = false;
//...
(二)类变量 static
static char = 'a';
类变量直接用,不用new。
(三)常量
final int MAX_NUM = 10;//一般使用大写字母和下划线
三、基本运算符
(一)计算规则
double a = 123456;
long b =10000000L;
int c = 10;
short d = 5;
byte e = 3;
//混合类型计算,输出最高类型
//当最高类型不超过int时,输出int类型
a + b + c + d + e;//输出double类型
b + c + d + e;//输出long类型
c + d + e;//输出int类型
d + e;//输出int类型
(二)自增,自减
public class Demo01 {
public static void main(String[] args) {
int a = 3;
int b = a++; //先赋值,b=a,b为3,在执行a=a+1,a为4
int c = ++a; //先执行a=a+1,a为5,在赋值,c=a,c为5
//整个过程,a的值一直在暗中变化
System.out.println(a); //5
System.out.println(b); //3
System.out.println(c); //5
}
}
(三)字符串连接符 +
int a = 5
int d = 5;
//字符串连接符 +
// 字符串在前面,整体转成字符串拼接,加括号可以把类型分开
// 字符串在后面,先计算
System.out.println("" + a + d);//55
System.out.println("" + (a + d));//10
System.out.println(a + d + "");//10