Java基本数据类型存储范围

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        System.out.println("byte类型可以存储的最大值: "+Byte.MAX_VALUE);
        System.out.println("byte类型可以存储的最小值: "+Byte.MIN_VALUE);
        System.out.println("short类型可以存储的最大值: "+Short.MAX_VALUE);
        System.out.println("short类型可以存储的最小值: "+Short.MIN_VALUE);
        System.out.println("int类型可以存储的最大值: "+Integer.MAX_VALUE);
        System.out.println("int类型可以存储的最小值: "+Integer.MIN_VALUE);
        System.out.println("long类型可以存储的最大值: "+Long.MAX_VALUE);
        System.out.println("long类型可以存储的最小值: "+Long.MIN_VALUE);
        System.out.println("float类型可以存储的最大值: "+Float.MAX_VALUE);
        System.out.println("float类型可以存储的最小值: "+Float.MIN_VALUE);
        System.out.println("double类型可以存储的最大值: "+Double.MAX_VALUE);
        System.out.println("double类型可以存储的最小值: "+Double.MIN_VALUE);
    }
}
byte类型可以存储的最大值: 127
byte类型可以存储的最小值: -128
short类型可以存储的最大值: 32767
short类型可以存储的最小值: -32768
int类型可以存储的最大值: 2147483647
int类型可以存储的最小值: -2147483648
long类型可以存储的最大值: 9223372036854775807
long类型可以存储的最小值: -9223372036854775808
float类型可以存储的最大值: 3.4028235E38
float类型可以存储的最小值: 1.4E-45
double类型可以存储的最大值: 1.7976931348623157E308
double类型可以存储的最小值: 4.9E-324

Java“或者||”运算真值表测试

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        // 真值表“||或者”测试
        int chengji = 85;
        if(chengji >= 60 || chengji <= 90) {
            System.out.println("1. 条件A为真,条件B为真,条件A || 条件B 的结果为真。");
        }else {
            System.out.println("1. 条件A为真,条件B为真,条件A || 条件B 的结果为假。");
        }
        if(chengji >= 60 || chengji >= 90) {
            System.out.println("2. 条件A为真,条件B为假,条件A || 条件B 的结果为真。");
        }else {
            System.out.println("2. 条件A为真,条件B为假,条件A || 条件B 的结果为假。");
        }
        if(chengji <= 60 || chengji <= 90) {
            System.out.println("3. 条件A为假,条件B为真,条件A || 条件B 的结果为真。");
        }else {
            System.out.println("3. 条件A为假,条件B为真,条件A || 条件B 的结果为假。");
        }
        if(chengji <= 60 || chengji >= 90) {
            System.out.println("4. 条件A为假,条件B为假,条件A || 条件B 的结果为真。");
        }else {
            System.out.println("4. 条件A为假,条件B为假,条件A || 条件B 的结果为假。");
        }
    }
}
1. 条件A为真,条件B为真,条件A || 条件B 的结果为真。
2. 条件A为真,条件B为假,条件A || 条件B 的结果为真。
3. 条件A为假,条件B为真,条件A || 条件B 的结果为真。
4. 条件A为假,条件B为假,条件A || 条件B 的结果为假。

Java“并且&&”运算真值表测试

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        // 真值表“&&并且”测试
        int chengji = 85;
        if(chengji >= 60 && chengji <= 90) {
            System.out.println("1. 条件A为真,条件B为真,条件A && 条件B 的结果为真。");
        }else {
            System.out.println("1. 条件A为真,条件B为真,条件A && 条件B 的结果为假。");
        }
        if(chengji >= 60 && chengji >= 90) {
            System.out.println("2. 条件A为真,条件B为假,条件A && 条件B 的结果为真。");
        }else {
            System.out.println("2. 条件A为真,条件B为假,条件A && 条件B 的结果为假。");
        }
        if(chengji <= 60 && chengji <= 90) {
            System.out.println("3. 条件A为假,条件B为真,条件A && 条件B 的结果为真。");
        }else {
            System.out.println("3. 条件A为假,条件B为真,条件A && 条件B 的结果为假。");
        }
        if(chengji <= 60 && chengji >= 90) {
            System.out.println("4. 条件A为假,条件B为假,条件A && 条件B 的结果为真。");
        }else {
            System.out.println("4. 条件A为假,条件B为假,条件A && 条件B 的结果为假。");
        }
    }
}
1. 条件A为真,条件B为真,条件A && 条件B 的结果为真。
2. 条件A为真,条件B为假,条件A && 条件B 的结果为假。
3. 条件A为假,条件B为真,条件A && 条件B 的结果为假。
4. 条件A为假,条件B为假,条件A && 条件B 的结果为假。

Java输出ASCII码可见字符表

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        char a = 1;
        for(a = 32;a<127;a++) {
            System.out.print(String.format("%5d", (int)a)+"\t");
            System.out.print(a+"\t");
            if((a-31) % 6 == 0) {
                System.out.println();
            }
        }
    }
}
/images/pic001111202220166887428424.png

Java代码案例29——字符串相等比较时需要使用equals函数

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        String zfc1 = "ab";
        String zfc2 = "ab";
        dayin("zfc1: " + zfc1);
        dayin("zfc2: " + zfc2);
        dayin("1. zfc1 == zfc2       " + (zfc1 == zfc2));
        dayin("2. zfc1.equals(zfc2)  " + (zfc1.equals(zfc2)));
        zfc1 = zfc1 + "c";
        zfc2 = zfc2 + "c";
        dayin("zfc1: " + zfc1);
        dayin("zfc2: " + zfc2);
        dayin("3. zfc1 == zfc2       " + (zfc1 == zfc2));   // 引用类型不能用 == 比较是否相等
        dayin("4. zfc1.equals(zfc2)  " + (zfc1.equals(zfc2)));  // 引用类型使用 equals 函数比较是否相等
    }
    public static void dayin(Object obj) {
        System.out.println(obj);
    }
}
zfc1: ab
zfc2: ab
1. zfc1 == zfc2       true
2. zfc1.equals(zfc2)  true
zfc1: abc
zfc2: abc
3. zfc1 == zfc2       false
4. zfc1.equals(zfc2)  true

Java代码案例28——交换两个变量的值

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int a = 3;
        int b = 5;
        int c = 0;
        dayin("交换前:");
        dayin("a: " + a);
        dayin("b: " + b);
        c = a; // 通过临时变量c存储变量a中的值,避免被直接覆盖
        a = b;
        b = c;
        dayin("交换后:");
        dayin("a: " + a);
        dayin("b: " + b);
    }
    public static void dayin(Object obj) {
        System.out.println(obj);
    }
}
交换前:
a: 3
b: 5
交换后:
a: 5
b: 3

Java代码案例27——分支判断是否做核酸

// Java分支判断是否做核酸,用或者||连接多个条件
// 每周一、四、六常态化核酸
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int xingqi = 6;
        if(xingqi == 1 || xingqi == 4 || xingqi == 6) {
            dayin("今天做核酸");
        }else {
            dayin("今天不做核酸");
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
今天做核酸

Java代码案例26——开关分支计算某年某月某日是这一年的第几天

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int nian = 2020;
        int yue = 3;
        int ri = 5;
        int tian = 0;
        switch(yue) {
            case 12: tian = tian + 30;
            case 11: tian = tian + 31;
            case 10: tian = tian + 30;
            case 9: tian = tian + 31;
            case 8: tian = tian + 31;
            case 7: tian = tian + 30;
            case 6: tian = tian + 31;
            case 5: tian = tian + 30;
            case 4: tian = tian + 31;
            case 3:
                if(nian % 4 == 0 && nian % 100 != 0 || nian % 400 == 0) {
                    tian = tian + 29;
                }else {
                    tian = tian + 28;
                }
            case 2: tian = tian + 31;
            case 1: tian = tian + ri;
        }
        dayin(nian+"年"+yue+"月"+ri+"日是这一年的第"+tian+"天");
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
2020年3月5日是这一年的第65天

Java代码案例25——基本数据类型的自动类型转换

// Java基本数据类型的自动类型转换
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        // byte、short、char三种类型的变量,运算过程中会自动转成int类型
        // 赋值直接给整数,Java默认按int类型
        // 赋值直接给小数,Java默认按double类型
        // 自动转换按照 int => long => float => double 的顺序
        // 具体案例看以下代码
        byte a = 1;
        dayin("1. " + getType(a));
        dayin("2. " + getType(a + 1));
        short b = 1;
        dayin("3. " + getType(b));
        dayin("4. " + getType(b + 1));
        char c = 'a';
        dayin("5. " + getType(c));
        dayin("6. " + getType(c + 1));
        int d = 1;
        dayin("7. " + getType(d));
        dayin("8. " + getType(d + 1));
        // 定义long型变量,需要在赋值结尾加字母l
        // 这里没有加结尾字母l,是因为Java默认做了类型转换,把int型的1,换成了long型的1
        // int型和long型都可以存下1,所以没有问题
        long e = 1;
        dayin("9. " + getType(e));
        dayin("10. " + getType(e + 1));
        // 没有结尾字母l,这里会报错,因为123456789123456789超过了int的上限
        // 不加字母l,Java默认将123456789123456789按int处理,存不下
        long f = 123456789123456789l;
        dayin("11. " + getType(f));
        dayin("12. " + getType(f + 1));
        // 定义float型变量,需要在赋值结尾加字母f
        // 这里没有加字母f,是因为Java默认做了类型转换,把int型的i,换成了float型的1.0
        float g = 1;
        dayin("13. " + getType(g));
        dayin("14. " + getType(g + 1));
        // 没有结尾字母f,这里会报错,因为Java默认将小数按double类型处理
        // 而double类型范围大于float类型,无法自动转换。
        float h = 1.5f;
        dayin("15. " + getType(h));
        dayin("16. " + getType(h + 1));
        double i = 1.2;
        dayin("17. " + getType(i));
        dayin("18. " + getType(i + 1));
        // 以下为混合运算
        // byte和short运算,得到int类型
        dayin("19. " + getType(a + b));
        // short和char运算,得到int类型
        dayin("20. " + getType(b + c));
        // int和long运算,得到long类型
        dayin("21. " + getType(d + e));
        // int和float运算,得到float类型
        dayin("22. " + getType(d + g));
        // long和float运算,得到float类型
        dayin("23. " + getType(e + g));
        // int和double运算,得到double类型
        dayin("24. " + getType(d + i));
        // long和double运算,得到double类型
        dayin("25. " + getType(e + i));
        // float和double运算,得到double类型
        dayin("26. " + getType(g + i));
        // 所以 9/5 的结果是整数1,因为9默认是int类型,5默认是int类型,运算结果也是int类型
        dayin("9 / 5 = " + 9/5 + "  " + getType(9/5));
        // 而 9.0/5 的结果是1.8,因为9.0默认是double类型,5默认是int类型,运算结果是double类型
        dayin("9.0 / 5 = " + 9.0/5 + "  " + getType(9.0/5));
        // 如果做强制类型转换成float,也就是 (float)9/5,那么9被强制转换成了float类型,5默认是int类型,运算结果是float类型
        dayin("(float)9 / 5 = " + (float)9/5 + "  " + getType((float)9/5));
    }
    public static String getType(Object obj) {
        // 此函数用于输出变量类型名
        return obj.getClass().toString();
    }
    public static void dayin(Object obj) {
        System.out.println(obj);
    }
}
1. class java.lang.Byte
2. class java.lang.Integer
3. class java.lang.Short
4. class java.lang.Integer
5. class java.lang.Character
6. class java.lang.Integer
7. class java.lang.Integer
8. class java.lang.Integer
9. class java.lang.Long
10. class java.lang.Long
11. class java.lang.Long
12. class java.lang.Long
13. class java.lang.Float
14. class java.lang.Float
15. class java.lang.Float
16. class java.lang.Float
17. class java.lang.Double
18. class java.lang.Double
19. class java.lang.Integer
20. class java.lang.Integer
21. class java.lang.Long
22. class java.lang.Float
23. class java.lang.Float
24. class java.lang.Double
25. class java.lang.Double
26. class java.lang.Double
9 / 5 = 1  class java.lang.Integer
9.0 / 5 = 1.8  class java.lang.Double
(float)9 / 5 = 1.8  class java.lang.Float

Java代码案例24——摄氏度转成华氏度

package xiangmu;
import java.util.Scanner;
public class Ceshi {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入摄氏度:");
        float sheshi = sc.nextFloat();
        // 注意这里的 (float) 必须要写,否则9/5先按整数算,会丢掉小数,导致计算错误
        float huashi = ((float)9/5) * sheshi + 32;
        System.out.print(sheshi+"摄氏度等于"+huashi+"华氏度。");
    }
}
请输入摄氏度:37.3
37.3摄氏度等于99.14华氏度。

Java代码案例23——画树

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        System.out.println("         *");
        System.out.println("        ***");
        System.out.println("       *****");
        System.out.println("      *******");
        System.out.println("     *********");
        System.out.println("    ***********");
        System.out.println("   *************");
        System.out.println("  ***************");
        System.out.println(" *****************");
        System.out.println("*******************");
        System.out.println("         *");
        System.out.println("         *");
        System.out.println("         *");
    }
}
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************
         *
         *
         *

Java代码案例22——画格子

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        System.out.println("+---+---+");
        System.out.println("|   |   |");
        System.out.println("|   |   |");
        System.out.println("+---+---+");
    }
}
+---+---+
|   |   |
|   |   |
+---+---+

Java代码案例21——画心

package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        System.out.println("        ^^^^^^^^^^         ^^^^^^^^^^");
        System.out.println("     ^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^");
        System.out.println("   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
        System.out.println(" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
        System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
        System.out.println(" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ");
        System.out.println("   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("           ^^^^^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("             ^^^^^^^^^^^^^^^^^^^ ");
        System.out.println("               ^^^^^^^^^^^^^^^ ");
        System.out.println("                 ^^^^^^^^^^^ ");
        System.out.println("                   ^^^^^^^ ");
        System.out.println("                     ^^^ ");
    }
}
        ^^^^^^^^^^         ^^^^^^^^^^
     ^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
           ^^^^^^^^^^^^^^^^^^^^^^^
             ^^^^^^^^^^^^^^^^^^^
               ^^^^^^^^^^^^^^^
                 ^^^^^^^^^^^
                   ^^^^^^^
                     ^^^

Java代码案例20——开关分支计算某月某日是2022年的第几天

// Java开关分支计算某月某日是2022年的第几天
// 固定年份,暂不考虑闰年的问题
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int yue = 10;
        int ri = 21;
        int tian = 0;
        switch(yue) {
            case 12: tian = tian + 30;
            case 11: tian = tian + 31;
            case 10: tian = tian + 30;
            case 9: tian = tian + 31;
            case 8: tian = tian + 31;
            case 7: tian = tian + 30;
            case 6: tian = tian + 31;
            case 5: tian = tian + 30;
            case 4: tian = tian + 31;
            case 3: tian = tian + 28;
            case 2: tian = tian + 31;
            case 1: tian = tian + ri;
        }
        dayin("2022年"+yue+"月"+ri+"日是这一年的第"+tian+"天");
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
2022年10月21日是这一年的第294天

Java代码案例19——开关分支判断是否做核酸

// Java开关分支判断是否做核酸
// 每周一、四、六常态化核酸
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int xingqi = 4;
        switch(xingqi) {
            case 1:
            case 4:
            case 6:
                dayin("今天做核酸");
                break;
            default:
                dayin("今天不做核酸");
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
今天做核酸

Java代码案例18——开关分支判断星期

// Java开关分支判断星期
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int xingqi = 3;
        switch(xingqi) {
            case 1:
                dayin("星期一");
                break;
            case 2:
                dayin("星期二");
                break;
            case 3:
                dayin("星期三");
                break;
            case 4:
                dayin("星期四");
                break;
            case 5:
                dayin("星期五");
                break;
            default:
                dayin("周末");
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
星期三

Java代码案例17——标志变量法判断闰年

// Java判断闰年——嵌套分支,标志变量
// 闰年:能被4整除并且不能被100整除,或者能被400整除
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int nian = 1900;
        int biaozhi = 0;
        if(nian % 4 == 0) {
            if(nian % 100 != 0) {
                biaozhi = 1;
            }
        }
        if(nian % 400 == 0) {
            biaozhi = 1;
        }
        if(biaozhi == 1) {
            dayin(nian + "是闰年");
        }else {
            dayin(nian + "不是闰年");
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
1900不是闰年

Java代码案例16——三个正整数求最大值2

// Java三个正整数求最大值——嵌套分支
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int a = 9;
        int b = 10;
        int c = 8;
        if(a >= b) {
            if(a >= c) {
                dayin("最大值是:" + a);
            }else {
                dayin("最大值是:" + c);
            }
        }else {
            if(b >= c) {
                dayin("最大值是:" + b);
            }else {
                dayin("最大值是:" + c);
            }
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
最大值是:10

Java代码案例15——三个正整数求最大值1

// Java三个正整数求最大值——多分支
package xiangmu;
public class Ceshi {
    public static void main(String args[]) {
        int a = 3;
        int b = 5;
        int c = 4;
        if(a >= b && a >= c) {
            dayin("最大值是:" + a);
        }else if(b >= c) {
            dayin("最大值是:" + b);
        }else {
            dayin("最大值是:" + c);
        }
    }
    public static void dayin(String zifuchuan) {
        System.out.println(zifuchuan);
    }
}
最大值是:5