数据类型,二元运算符,自动类型提升规则,关系运算,取余模运算

package com.kun.operator;

public class Demo1 {
    public static void main(String[] args) {

        //八大基本数据类型
        //整数
        int unm1 =10;//最常用
        byte unm2 =20;
        short unm3 =30;
        long unm4 =40L;//Long类型要在数字后面加个L
        //小数:浮点数
        float unm5 =50.1F;//float类型要在数字后面加个F
        double unm6 =3.1415926;
        //字符
        char name = '请';
        //字符串,String不是关键字,类
        String  namea = "中国";
        //布尔值:是非
        boolean flag = true;
        //boolean flag = false
        //二元运算符
        int a = 1;
        int b = 2;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);//0 (向下取整)
        //如果 a 和 b 都是整数类型(如 int 或 long),则结果为整数除法,即会舍弃小数部分,只保留商的整数部分。
        //如果 a 或 b 中至少有一个是浮点数类型(如 float 或 double),则结果为浮点数除法,会保留小数部分。
        System.out.println(a/(double)b);//0.5
        //为了得到浮点数的结果,需要将其中一个操作数强制类型转换为double类型。
        // (double)b,将变量b转换为double类型。
        float c = 2.0F;
        System.out.println(a/c);//0.5 c为浮点类型

        System.out.println("=================================");

        //自动类型提升规则
        Long a1 = 123456789L;
        int b1 = 123;
        short c1 = 12;
        byte d1 = 3;
        System.out.println(a1+b1+c1+d1);
        //a1+b1+c1+d1:由于a是long类型,根据类型提升规则,b1、c1、d1都会自动提升为long类型,因此最终结果是Long类型。
        System.out.println(b1+c1+d1);
        //b1+c1+d1:由于b是int类型,根据类型提升规则,c1、d1都会自动提升为int类型,因此最终结果是Int类型。
        System.out.println(c1+d1);
        //c1+d1:由于c1是short类型,根据类型提升规则,d1会自动提升为int类型,因此最终结果是Int类型。
        /**
         * 如果操作数中有一个是long类型,则结果类型为long。
         * 如果操作数中没有long类型,但有一个是int类型,则结果类型为int。
         * 如果操作数中没有long和int类型,但有一个是short类型,则结果类型为short。
         * 如果操作数中没有long和int类型,但有一个是short类型,且另一个操作数是byte或char类型,那么两个操作数都会被提升为int类型
         * 如果操作数中有float,整个表达式提升为float。
         * 如果操作数中有double,整个表达式提升为double。
         * Java中的类型提升规则保证了在混合类型运算时,结果类型会是参与运算的操作数中的最高等级类型
         */
        System.out.println("=================================");

        //关系运算返回结果 :正确,错误    布尔值
        // if
        int a2 = 10;
        int b2 = 20;
        int c2 = 31;
        System.out.println(c2%a2);//1
        //取余模运算     31/10 = 3...1
        System.out.println(a2>b2);
        System.out.println(a2<b2);
        System.out.println(a2==b2);
        System.out.println(a2!=b2);
        /**
         *  >(大于):检查左操作数是否大于右操作数。如果是,返回true;否则,返回false。
         *  <(小于):检查左操作数是否小于右操作数。如果是,返回true;否则,返回false。
         * ==(等于):检查两个操作数是否相等。如果是,返回true;否则,返回false。
         * !=(不等于):检查两个操作数是否不相等。如果是,返回true;否则,返回false。
         */
    }
}
posted on 2025-10-22 14:05  Sea(kun)  阅读(4)  评论(0)    收藏  举报