从头开始的Java学习Day03(上)

在这里插入图片描述

类型转换

默认转换

除了布尔类型不能转化,其他7个都可以转换
容量小的默认转换为容量大的数据类型
byte short char->int->long->float->double
byte short char 不能相互转换,默认转换为int类型

 		byte x=1;
        short y=x;
        char v=(char)y;
        int i=v;
        long p=i;
        float f=p;
        double d=f;
        System.out.println(d);
强制转换

容量大的向容量小的转换

问题: 1.溢出装不下

​ 2.精度降低

混合运算时,小容量的自动转换为容量大的

		double d1=10.5;
        int ii=(int)d1;
        float f1=(float)d1;
        System.out.println(ii);
        System.out.println(f1);

运算符

算术运算符

算术运算符+,-,*,/,%,++,–

“+”表示一个整数

​ 字符串的链接

​ 加法运算

-,*,/,%只能进行算术运算,数值与数值(char)

 		int x=1;
        System.out.println(x++);//先赋值,后+1
        System.out.println(++x);//先+1,后赋值

        String s="abc";
        System.out.println(x+s);//字符串的连接

运行结果:

1
3
3abc

比较运算符

比较运算符 == !=

​ 用于数值与数值

​ 布尔类型间

​ 引用类型之间

 		int x=10;
        int y=5;
        System.out.println(x == y);
        System.out.println(x != y);

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

        boolean x1=true;
        boolean y1=false;
        System.out.println(x1 == y1);
        System.out.println(x1 != y1);

        System.out.println("-------------------");
        String x2="a";
        String y2="b";
        System.out.println(x2 == y2);
        System.out.println(x2 != y2);

运行结果:

false
true
-------------------
false
true
-------------------
false
true

逻辑运算

&逻辑与 |逻辑或 ^异或 (还可以进行位运算)

&&短路与 ||短路或 !逻辑非

逻辑与& 和 短路与&& 区别在于

  • 逻辑与(&) 会将两边的运算都会进行运算
  • 短路与(&&) 如果第一个运算结果为false ,则会短路,后面的表达式不执行
  • 逻辑或| 和 短路或|| 区别于其相同
		/*
            &和&& 有false则为false
            | 和 || 有true则为true
        */
        int a=5;
        int b=10;
        int c=15;
        System.out.println(a<b & b<c);//true & true = true
        System.out.println(a>b & ++b<c);//false & true =flase
        System.out.println(b);
        System.out.println("-------------------");
        /*
        * 逻辑与& 和 短路与&& 区别在于
        * 逻辑与会将两边的运算都会进行运算
        * 短路与 如果第一个运算结果为false ,则会短路,后面的表达式不执行
        * 逻辑或| 和 短路或|| 区别于其相同
        * */
        int a1=5;
        int b1=10;
        int c1=15;
        System.out.println(a1<b1 && b1<c1);//true && true = true
        System.out.println(a1>b1 && ++b1<c1);//false && true =flase
        System.out.println(b1);
        System.out.println("-------------------");


        boolean x=true;
        System.out.println(!x);//结果取反
        System.out.println("-------------------");


        int m=5;
        int n=10;
        System.out.println(m>n ^ n>m);//相异为true
        System.out.println(m>n ^ n<m);//相同为false

运行结果:

true
false
11
-------------------
true
false
10
-------------------
false
-------------------
true
false

赋值运算符

		/*
        赋值运算符=
            +=,-=,*=,/=,%=
        */
        short s=2;//s为short类型
        s=(short)(s+3);//s+3转换为int,不能赋值给short
        s+=3;//+=会自动转换数据类型
 		/*
            区分== 和 = 的区别
        */
        boolean x=false;
        if (x=true){
            System.out.println("结果为真");

        }else{
            System.out.println("结果为假");
        }

运行结果:

结果为真

条件运算符

/*
    条件运算符(三目运算符)
    (条件表达式)?表达式1:表达式2
    判断条件表达式的正确与否
    若为真则将表达式1赋值给s,若为假则将表达式2赋值给s

    条件语句与if-else的联系与区别
       1.条件语句可以简化为if-else 语句
       2.条件运算符要求必须返回一个结果
       3.if可以有多个语句
*/
    boolean s= 1>2? true:false;
    System.out.println(s);

运行结果:

false

位运算

与& 或| 异或^ 非~

<< >> >>>

转换为二进制进行计算

        int x=2;//0000 0010
        int y=3;//0000 0011
        /*
            0000 0010
            0000 0011
           &---------
            0000 0010  =  2
        */
        System.out.println(x&y);

         /*
            0000 0010
            0000 0011
           |---------
            0000 0011  =  3
        */
        System.out.println(x|y);

         /*
            0000 0010
            0000 0011
           ^---------
            0000 0001  =  1
        */
        System.out.println(x^y);

        /*
            0000 0010  =2  右移1位  相当于/2
            0000 0001  =1
        */
        System.out.println(x>>1);//  2/2=1

        /*
            0000 0010 =2  左移1位  相当于*2
            0000 0100 =4
        */
        System.out.println(x<<1);//  2*2=4

        int z=128;
        /*
            1000 0000=128  右移一位,最高位无论0或1都用0补位
            0100 0000 =64
        */
        System.out.println(z>>>1);

运行结果:

2
3
1
1
4
64

表达式的运算顺序

在这里插入图片描述

控制台输入

在使用Scanner对象时,需要在文件头带入 java.util.Scanner;

写法为: import java.util.Scanner;

        Scanner s=new Scanner(System.in);
        System.out.println("请输入年龄");
        int age=s.nextInt();
        System.out.println("请输入姓名");
        String name=s.next();
        System.out.println("年龄:"+age);
        System.out.println("姓名:"+name);

运行结果:

请输入年龄
20
请输入姓名
肖帆咪
年龄:20
姓名:肖帆咪
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值