基础变量与运算
运算
整数运算
1 整数的除法在除数为0的时候,运行报错,但编译不报错。
2 整数由于存在范围限制,计算超出了范围会溢出,但不会报错
System.out.println(2147483640+15)//-2147483641
3 应该选择合适范围的整型(int或long),没有必要为了节省内存而使用byte和short进行整数运算
浮点数
1 比较两个浮点数是否相等
if(Math.abs(x-y)<0.00001)
2 类型提升
运算中一个是整型,一个是浮点型,那么整型可以自动提升到浮点型
但如果是在一个复杂的四则运算中,则不会,如下面第二个栗子
double d=1.2+24.0/5 //6
double d=1.2+24/5 //5.2
3 溢出
相比较整数/0运行时会报错
浮点数/0会出现 NaN(0.0/0) Infinity -Infinity
4 强制转型 四舍五入
int n =(int)(d+0.5);
5 Java三元运算符
b?x:y;
字符和字符串
字符类型
因为Java总用unicode在内存中保存字符,所以可以用来保存中文、英文字符
字符串
1 是个引用类型,字符串不可变,变的是变量的指向
2 从Java 13开始,多行字符串可以用"""…"""表示
String s = """
SELECT * FROM
users
WHERE id > 100
ORDER BY name DESC
""";
数组
数组是引用类型,数组本身不变大小也不变,改的是变量的指向
int[] ns=new int[5];
流程控制
if判断
1 判断引用类型是否相等,用equals()
"=="是表示是否指向同一个对象,所以出现下例中的结果
String s1="hello";
String s2="HELLO".toLowerCase();
s1==s2//false
2 使用equals时,为了避免空指针错误
可以使用短路运算符&&
if(s1!=null&&s1.equals(s2))
switch
1 switch还可以匹配字符串,比较内容相等
2 还可以使用枚举类型(后续补充)
3 Java 12后不需要用break
public class Main {
public static void main(String[] args) {
String fruit = "apple";
int opt = switch (fruit) {
case "apple" -> 1;
case "pear", "mango" -> 2;
default -> {
int code =fruit.hashCode();
yield code;//switch语句返回值
};
}; // 注意赋值语句要以;结束
System.out.println("opt = " + opt);
}
}
注意编译的时候 要javac --source 13 --enable-preview Main.java
循环
while;do while;for
for each 语法
int[] ns={1,2,3,4,5};
for(int n:ns){
System.out.println(n);
}
数组操作
Arrays.toString() 以字符串形式输出整个数组
Arrays.sort() 从小到大排序,对数组排序会直接修改数组本身
命令行参数
public class Main(){
public static void main(String[] args){
for(String arg: args){
System.out.println(arg);
}
}
}