java学习第三天

java学习第三天

package operator;

import com.sun.media.jfxmediaimpl.HostUtils;

public class Demo01 {
    /**
     *
     *JAVA 运算符
     *

     * */
    public static void main(String[] args) {
         // 二元运算符:加减乘除
        //Ctrl + D :复制当前行到下一行
        int a  = 10;
        int b  = 20;
        int c  = 30;
        int d  = 40;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*c);
        System.out.println((double)a/b);//结果可能会有小数,需要把类型进行强转



        long a1  = 1234567890L;
        int  b1  = 1234;
        short c1 = 12;
        byte  d1 = 2;

        System.out.println(a1+b1+c1+d1);//结果为long类型,在进行运算时结果会自动转换为运算中最高的类型。
        System.out.println(b1+c1+d1);//结果为int 类型
        System.out.println(c1+d1);//结果为int类型(特殊情况)
        /*在java运算中,在涉及到数据类型范围小于int的(如byte,char,short)时,
        数据类型会自动提升为int类型,比如,两个byte类型的数据在进行运算时,运算结果就会变成int类型,
        如果要结果是byte类型的话,就要强转成byte类型,这是因为java编译器内部对其进行处理。*/


        //关系运算符:正确 错误,布尔值
        //一般在判断中会用到:if  which
        int num1 = 10 ;
        int num2 = 20 ;

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);

        //取模 %:取余数

        int num3 = 22;
        System.out.println(num3/num1);

        //一元运算符: ++   -- ,自增  自减;
        // 口诀:加号在前先加一,再赋值,加号在后先赋值,再加一。减号在前先减一,再赋值,减号在后先赋值,减加一。

        int a2 = 3;

        int b2 =a2++;//++放后面,代表先是 a2 的值赋给了 b2, a2 再自增。
        //a2 = a2 +1;自上而下

        System.out.println(a2);
        //4,在这里插入输出语句,是为了检验a2的值在这里进行的改变,其中因此两条运算公式

        //a2 = a2 +1;自上而下
        int c2 = ++a2;//++放前面,代表先是 a2 自增,a2 的值再给 c2 赋值。


        System.out.println(b2);
        System.out.println(c2);


        //幂运算 2的3次方:2^3 ,在java中是不能这样表示的,一般会使用一些工具类进行操作

        double pow = Math.pow(2,3);
        System.out.println(pow);











    }
}
package operator;

public class Demo02 {

    public static void main(String[] args) {
         //逻辑运算符
        //与  &&     或  ||       非 (取反)

        boolean a = false;
        boolean b = true;
        System.out.println("a && b:"+ (a&&b));//逻辑 与运算中: 两个变量都为真,结果才为true
        System.out.println("a || b:"+ (a||b));//逻辑 或运算中: 两个变量中有一个为真,结果才为true
        System.out.println("!(a && b):"+ !(a&&b));//逻辑 非运算中: 如果是真,则变假,如果假则变真


        //知识点:短路运算(偷懒运算)

        int c  =5 ;
        boolean d  = (c<4)&&(c++<4);
        //通过下面输出c的值来看,c++是没有被执行的。
        //当然不同情况有不同的答案,
        /*
        *  节选网络:
        *  2、&&和||的短路运算,是指如果在进行前面的表达式的运算过程,通过判断已经明确的知道整个表达式的结果,那么就不会进行后面表达式的运算判断。
        * 例如:
        *  表达式1 || 表达式2 || 表达式3...|| 表达式n,如果表达式1的运算结果为true,则整个表达式的结果为true,
        *  同时不会再对后面的表达式2、表达式3到表达式n进行运算判断。如果表达式1的运算结果为false,则根据表达式2的运算结果继续判断。
        *
        *  表达式1 && 表达式2 && 表达式3...&& 表达式n,如果表达式1的运算结果为false,则整个表达式的结果为false,
        *  同时不会再对后面的表达式2、表达式3到表达式n进行运算判断。如果表达式1的运算结果为true,则根据表达式2的运算结果继续判断。
        *
        *
        *  问题二:&&和||的短路运算有什么用?
        *  1、由于&&和||的表达式存在短路运算现象,在短路之后不会对后面的表达式进行运算,所以含有&&和||的表达式最好不要进行变量的赋值和运算操作,可以先计算好每个表达式的结果,直接拿结果进行&&和||的运算。
        *  在代码编写的时候就要注意这一点,以防由于&&和||的短路运算导致写出来的代码运算结果与预期的不同。
        *  2、把能快速确定整个表达式结果true或false的表达式放在前面,这样由于短路运算后面的表达式可能不会被运算到,节省处理器的运算时间。
        *
        *
        *
        *
        * */



        System.out.println(d);
        System.out.println(c);


        //位运算(一般很少用到,了解就行)
        /*
        *
        * A = 0011 1100
        * B = 0000 1101
        * ---------------------------
        * &   |  ^   ~ :与 或  非  取反
        *
        * A&B: 0000 1100 (相同取相同,不相同取0)
        * A|B: 0011 1101 (相同取相同,不相同取1)
        * A^B: 0011 0001 (相同取0,不相同取1)
        * ~B:  1111 0010   (相反)
        *
        *  面试题: 2*8 最快算法 (一般算法写的比较麻烦)
        *  使用移位符,记住左移等于成2,右移等于除2。
        *  << : 相当于 *2
        *  >> : 相当于 /2
        *
        *  System.out.println(3<<3);
        *  说明:上面解读为    3*2*2*2
        *
        *
        * */












    }





}
package operator;

public class Demo03 {

    public static void main(String[] args) {

              int a  = 10;
              int b  = 10;
              a+=b;   //a=a+b

              //字符串连接符  + ,
              System.out.println(a+b);//结果很容易得出 30

              System.out.println(""+a+b);//但是在前面加上字符串符号的话,结果是什么?
              //拓展:把字符串号放在二元运算后面,结果又会是什么?
              System.out.println(a+b+"");
               /*
               * 先说结果是:1020,30。
               * 解释:其实java运算符的计算顺序是从左往右的,因此在二元运算的前面的是字串符号,所以计算得到的结果就是字串符1020。
               * 同理,下面的拓展题二元运算在前,所以结果是30。
               *
               * */


              //三元运算
              // x ? y : z
              // 通过x来判断,如果x==true ,则结果为y ,否则结果为z

             int x  = 77;
             String  Type =  x <60 ? "不及格":"及格";

             System.out.println(Type);

             //优先级 :(),课后动动手

             int a1  = 10;
             int b2  = 20;
             int c1  = 30;

             //看下是先乘,还是先加,结果明显是先算括号内,再算括号外。
             System.out.println(c1*(a1+b2));




    }








}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值