note_doit_day02

1.变量:
    内存--->一块田地
    变量--->田地中的萝卜坑
    *一个变量只能存储一个数据,并且一种类型的变量只能存储这种类型的数据.
    变量概念:内存中一块临时存储数据的空间.
    示例:Demo_01:
    
        /*
        变量
            就是内存中一块临时存储数据的空间
            
        定义变量的格式
            数据类型 变量名 = 变量值;     --定义变量并赋值
            数据类型 变量名             --定义变量
            变量名 = 变量值                --变量赋值
            数据类型:就是当前容器能够存储的数据的类型
            变量名:变量名称
            变量值:容器中存储的数值
            int 整数
            double 小数
            char 字符
            boolean 布尔
        */
        public class Demo_01
        {
            public static void main(String[] args)
            {
                //数据类型 变量名 = 变量值
                int a = 10;
                //给变量a赋值
                a = 20;
                System.out.println(a);
                
                //定义一个小数类型变量
                double a1=10.1;
                System.out.println(a1);
                //定义一个字符类型变量
                char a2='a';
                System.out.println(a2);
                //定义一个布尔类型变量
                boolean a3=false;
                a3=true;
                System.out.println(a3);
            }
        }
        
    示例:Demo02_Var: 
        /*
        变量注意事项
            1.变量使用之前必须赋值,不赋值不能使用
            2.变量是由作用域的
            3.变量不可以重复定义,在相同作用域范围内,变量名不能重复.
        */
        public class Demo02_Var
        {
            public static void main(Strins[] args)
            {
                int a;
                a = 10;
                int b;
                {
                    int b;//报错:变量不可以重复定义
                    b=10;
                    System.out.println(b);
                }
                int b;
            }
        }

2.计算机的存储单元:
    最小的信息单位叫做"位(bit)",要么存"0"要么存"1".
    最基本的存储单元叫"字节(byte)",一个字节占8个位,可存储256个数.
    *当程序需要使用内存的时候,系统最少分配一个字节.
    1B(字节)=8bit
    1KB=1024B
    1MB=1024KB
    1GB=1024MB
    1TB=1024GB
    1PB=1024TB
    
3.基本数据类型
        数据类型        关键字        内存占用        取值范围
    整数型:    
        字节型            byte        1字节            -128至127
        短整型            short        2字节            -32768至32767
        整型            int            4字节            -2^31至2^31
        长整型            long        8字节            -2^63至2^63
    浮点数:
        单精度浮点数    float        4字节            忽略
        双精度浮点数    double        8字节            忽略
    字符型:
        字符型            char        2字节            0至2^16
    布尔类型:
        布尔类型        boolean        1字节            true,false
    
    示例:Demo03_Var:
            /*
                基本类型 4类8种
                    整数
                        byte        1    -128 +127
                        short        2
                        int            4    默认
                        long        8    需要在末尾加上l或者L,推荐L
                    小数
                        float        4    f或F
                        double        8    默认
                    字符
                        char        2
                    布尔
                        boolean        1
                引用类型String
                    String是引用类型,但是现在来说使用方法和基本类型类似
                    String s = ""
                        
            */
            public class Demo03_Var
            {
                public static void main(String[] args)
                {
                    byte b = 10;
                    System.out.println(b);
                    
                    //long l = 1000000000000000;//报错,因为默认是int类型
                    //System.out.println(l);
                    long l = 1000000000000000L;//正确
                    System.out.println(l);
                    
                    float f = 3.14f;//正确
                    
                    System.out.println("-------------------------------------");
                    String s = "abc";
                    System.out.println(s);
                    
                }
            }
            
4.数据类型转换:
    1.自动类型提升:(小萝卜放大坑)
        char c = 'a';
        int i = c;
        //输出c得到97
    2.强制类型转换:(大萝卜放小坑,多余部分消除)
        int i = (int)10.1
        System.out.println(i);
        //输出10
        int i2=97;
        char c2=(char)i2;
        System.out.println(c2);
        //输出a
        
        byte b3 = 10+20;
        System.out.println(b3);//输出30
        
        byte b1=10;
        byte b2=20;
        byte b3=b1+b2;//编译报错
        byte b4=(byte)(b1+b2);//正确输出30
        
5.运算符:
    1.算数运算符:
        +:算数加号;连接字符串
        -;算数减号
        *:算数乘号
        /:算数除号
        ++:
        --:
    Demo05:
        /*
        算术运算符
        + 正常加法,也可以连接字符串
        - 正常减法
        *    正常乘法
        /    整数整除,不要余数,小数正常计算
        %    取模 整数整除只要余数 取模的符号知与被取模数相同
        
        ++    自增
            单独使用+1即可;混合使用:
            ++在前,先++再使用
            ++再后,先使用再++
        --    自减
            单独使用,减一
        */    
        public class Demo05
        {    
            public static void main(String[] args)
            {
                int  a = 10;
                int b = 20;
                System.out.println(a+b+"是a+b的和");//正常输出
                System.out.println("a+b的和是"+a+b);//不正确输出,先算成字符串类型
                System.out.println("a+b的和是"+(a+b));//正确输出
                
                System.out.println(a-b);//-10
                System.out.println(a*b);//200
                System.out.println(a/b);//0
                System.out.println(5/2);//2
                System.out.println(5.0/2);//2.5
                
                System.out.println(5%2);//1
                System.out.println(a%b);//10
                System.out.println(-5%2);//-1
                System.out.println(-5%-2);//-1
                
                System.out.println("-----------------------------------------");
                int i = 10;
                int j=10;
                i++;//1.取到a的值;2.将a的值加一;3.将结果赋值给a
                i--;
                System.out.println(i);
                System.out.println(i++);//先打印i的值,再做++
                System.out.println(++j);//先做++,再打印j的值
                
                int c= 100;
                int d = c++;
                System.out.println(d);//100
            }
        }
        
    2.赋值运算符:
    Demo06:
        /*
            赋值运算符
            =,+=,-=,/=,*= 将等号两边先用指定的运算符连接,然后将结果强制类型转换为等号左边的类型,最后赋值给左边
        */
        public class Demo06
        {
            public static void main(String[] args)
            {
                int a= 10;
                a+=20;
                System.out.println(a);
                
                byte b =10;
                b+=20;//隐藏了一个强制类型转换
                //b=(byte)(b+20);
                System.out.println(b);
            }
        }
    
    3.比较运算符:
    Demo07:
    /*
        比较运算符
            比较运算符的结果是布尔值 true/false
            
            == 判断是否相等
            !=
    */

    public class Demo07
    {
        public static void main(String[] args)
        {
            int a = 10;
            int b = 20;
            System.out.println(a>b);//
            System.out.println(a<b);//
            System.out.println(a>=b);//
            System.out.println(a<=b);//
            System.out.println(a==b);//
            System.out.println(a!=b);//
            
            System.out.println((a+=b)>(a-=b));//
            System.out.println(10+20>20-10);//true
        }
    }

    4.位运算:
        12<<2(左移)
        1.先将12转换成2进制
        2.0000 1100---->
          0011 0000 48
          如果左移3位:
          0110 0000 96
         总结:
         M<<N=M*2^N
         
         12>>2(右移)
         1.0000 1100
           0000 0011 3
         总结:
         M>>N=M*2^N  
         
    5.逻辑运算符:
    Demo08:
        /*
    逻辑运算符
        进行布尔值的计算 结果也是布尔值
    && 双与 并且 有假则假
    || 双或 或者 有真则真
    !  非    取反 真变假假变真
    异或    不同才是true,相同即为false
    
    &和&&的区别
        都是并且的意思 只要有一个条件是假的,结果一定是假的
        如果是&        判断第一个条件为假后 还会继续判断第二个条件 然后得出结论为假
        如果是&&    判断第一个条件为假后 直接得出结果为假 不再往后判断
    */
    public class Demo08
    {
        public static void main(String[] args)
        {
            boolean a=true;
            boolean b=false;
            System.out.println(true &&false);//false
            System.out.println(true ||false);//true
            System.out.println(true ^ false);//false
            
            System.out.println(a &&b);//false
            System.out.println(b ||b);//true
            System.out.println(!a);//false
            System.out.println(!b);//true
            
            int a1=10;
            int b1=20;
            System.out.println(a1>b1 && a1<b1);//false
            System.out.println((a1+=20)>50 && (a1+=100)>50);//由于没有短路功能,前面条件为false后面继续运算a=30
            System.out.println((a1+=20)>50 & (a1+=100)>50);//由于没有短路功能,前面条件为false后面继续运算a=130
        }
    }
    
    6.三元表达式:
    Demo09:
        /*
            三元运算符
            条件表达式 ? 表达式1 : 表达式2
            满足条件 true     执行 表达式1
            不满足条件false    执行 表达式2
            
            需要注意 三元表达式一定会有一个结果 这个结果一定要被使用
        
        */
        public class Demo09
        {
            public static void main(String[] args)
            {
                int a = 10;
                int b = 20;
                int max = a>b ? a : b;
                System.out.println(max);
                
                System.out.println(a>b ? "a大":"b大");
            }
        }
        
练习:
    public class Test01
    {
        public static void main(String[] args)
        {
            int bananaId = 1;
            String bananaName = "香蕉";
            double bananaPrice = 8.0;
            char bananaQuality = 'A';
            int bananaQuantity = 5;
            
            int appleId = 2;
            String appleName = "苹果";
            double applePrice = 6.5;
            char appleQuality = 'B';
            int appleQuantity = 3;
            
            int orangeId = 3;
            String orangeName = "橙子";
            double orangePrice = 9.0;
            char orangeQuality = 'A';
            int orangeQuantity = 4;
            
            double totalPrice = bananaPrice*bananaQuantity+applePrice*appleQuantity+orangePrice*orangeQuantity;
            System.out.println("-------------------------购买水果信息-------------------------");
            System.out.println("水果编号              水果名称               水果单价              品质           购买数量        品质");
            System.out.println(bananaId+"          "+bananaName+"             "+bananaPrice+"          "+bananaQuality+"            "+bananaQuantity+"      公斤");
            System.out.println(appleId+"          "+appleName+"             "+applePrice+"          "+appleQuality+"            "+appleQuantity+"      公斤");
            System.out.println(orangeId+"          "+orangeName+"             "+orangePrice+"          "+orangeQuality+"            "+orangeQuantity+"      公斤");
            System.out.print("您购买水果的总价为");
            System.out.print(totalPrice);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值