我是靠谱客的博主 迷路荔枝,最近开发中收集的这篇文章主要介绍JavaSe基础06:运算符、Math类以及面试题(笔记),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

视频学习地址

点我跳转ψ(`∇´)ψ

前言

计算机里面最重要的是计算,而计算过程中,需要用到运算符来操作。

运算符

  • 算数运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=instanceof
  • 逻辑运算符:&&,||,!,~,∧,>>,<<,>>>(了解即可)
  • 位运算符:&,|,
  • 条件运算符:?:
  • 扩展赋值运算符:+=,-=,*=,/=

基本运算符

public class Demo{
	public static void main(String[] args){
		//这是一个二元运算符,按Ctrl+D可以复制当前行到下一行
		int a = 10;
		int b = 10;
		int c = 10;
		int d = 10;
		int f = 21;
		
		//取余也叫模运算
		System.out.println(f%a);	//21/10=2...1 结果应该是等于1

		System.out.println(a+b);	//结果是30
		System.out.println(a-b);	//结果是-10
		System.out.println(a*b);	//结果是200
		System.out.println(a/b);	//结果是0  本来应该等于0.5 但是舍去末尾了
		System.out.println((double)a/b);	//所以需要进行强制转换 其结果等于0.5
	}
}

运算结果类型

public class Demo{
    public static void main(String[] args){
        double a = 1;
        float b = 2;
        long c = 3L;
        int d = 4;
        char e = 5;
        short f = 6;
        byte g = 7;

        System.out.println(a+b+c+d+e+f+g);	//double类型 结果是28.0
        System.out.println(b+c+d+e+f+g);	//float类型 结果是27.0
        System.out.println(c+d+e+f+g);	//long类型 结果是25
        System.out.println(d+e+f+g);	//int类型 结果是22
        System.out.println(e+f+g);	//int类型 结果是18
        System.out.println(f+g);	//int类型 结果是13
		//总结:如果是用比int还要高的容量进行定义,那么输出值就是容量最高的那个类型的值,如果没用,则会自动转换为int类型。
	}
}

关系运算符

public class Demo{
    public static void main(String[] args){
        //关系运算符返回的结果是布尔值
        int a = 10;
        int b = 20;

        System.out.println(a>b);	//结果是false
        System.out.println(a<b);	//结果是true
        System.out.println(a==b);	//结果是false
        System.out.println(a!=b);	//结果是true
    }
}

自增自减

public class Demo{
    public static void main(String[] args){
        //关系运算符返回的结果是布尔值
        int a = 3;
        int b = 3;
        int a2 = a++;	//先输出后再加 a2 = a = a + 1
        int b2 = ++b;	//先加后再输出 b2 = b + 1 = b

		System.out.println(a);	//结果是4
        System.out.println(a2);	//结果是3
        System.out.println(b2);	//结果是4
    }
}

Math类的幂运算

public class Demo{
    public static void main(String[] args){
        //幂运算 2的3次方 2*2*2
        double pow = Math.pow(2,3);
        System.out.println(pow);	//结果是8
    }
}

逻辑运算符

public class Demo{
    public static void main(String[] args){
        //与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println(a && b); //结果是false
        System.out.println(a || b); //结果是true
        System.out.println(!(a && b));  //结果是true
        System.out.println(!(a || b));  //结果是false

        //短路运算
        int c = 5;
        boolean d = c < 4 && c++ < 4;
        System.out.println(d);  //&&逻辑运算时,如果前面是false,那么后面的运算将不会运行,直接返回false
        System.out.println(c);  //如果后面的运算执行了,那么此时的c应该是6,如果为5,那么可以说明没有执行
    }
}

位运算

public class Demo{
    public static void main(String[] args){
        /*
        A = 0011 1100;
        B = 0000 1101;

        A&B = 0000 1100;    上下都为1则为1,否则为0
        A|B = 0011 1101;    上下都为0则为0,否则为1
        A^B = 0011 0001;    上下相同则为0,否则为1
        ~A = 1100 0011; 取A的反值
         */
    }
}

面试题:2*8怎么运算最快

public class Demo{
    public static void main(String[] args){
        /*
        <<左移 >>右移   相当于左移是乘以2 右移是除以2
        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 0101   5
        0000 0110   6
        0000 0111   7
        0000 1000   8
        0001 0000   16
         */
        System.out.println(2<<3);   //所以往左移动3位就是16 这样的效率极高 直接跟底层的二进制打交道
    }
}

拓展赋值运算符+连接符

public class Demo{
    public static void main(String[] args){
        int a = 10;
        int b = 20;

        System.out.println(a+=b);	//a=a+b     a=10+20=30
        System.out.println(a-=b);	//a=a-b     上面的a是30 所以是a=30-20 =10

        //字符串连接符 +
        System.out.println(""+a+b);     //会将后面的也转换为String类型,然后拼接字符串 结果是1020
        System.out.println(a+b+"");     //会依旧进行运算 结果是30
    }
}

三目运算符

public class Demo{
    public static void main(String[] args){
        /*
        x ? y : z   如果x == true,则为y,如果为false,则为z
         */
        int score = 80;
        String type = score < 60 ? "不及格":"恭喜你及格了";  //返回的值是String类型,所以要定义为String类型
        System.out.println(type);
    }
}

运算符的优先级

运算符的优先级

最后

以上就是迷路荔枝为你收集整理的JavaSe基础06:运算符、Math类以及面试题(笔记)的全部内容,希望文章能够帮你解决JavaSe基础06:运算符、Math类以及面试题(笔记)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部