Java基础知识之运算符


算术运算符

+- * /%

public class TestDemo1{
public static void main(String[] args){
    System.out.println(5/2);
    System.out.println((double)(5/2));
    System.out.println(5.0/2);
    System.out.println((double)5/2);
}
}
//运行结果是:
//2
//2.0(java的小数不会后面保留很多位)
//2.5                    
//2.5
 public static void main(String[] args) {
        int a = 10;
        int b = 0;
        System.out.println(a/b);
        System.out.println("thank");
    }

程序直接报错 (抛出),并且在除0的位置代码直接就结束了

Exception in thread "main" java.lang.ArithmeticException: / by zero
at test.main(test.java:5) //算术异常 出现在第五行

所以除数绝对不能是0

%表示取余数,或者取模

%既可以对int,也可以对小数进行运算

public class TestDemo1{
public static void main(String[] args){
    System.out.println(10%3);
    System.out.println(-10%3);
    System.out.println(10%-3);
    System.out.println(-10%-3);
    System.out.println(11.5%2.0);
}
}
//运行结果为:
//1
//-1
//1
//-1
//1.5(取模数都输小数)

复合运算符

+= -= *= /= %=

自增运算符

++ --

public class TestDemo1{
public static void main(String[] args){
    int a = 10;
    int b = ++a;//b=11,a=11
    System.out.println(b);
    int c = a++;//c=11,a=12
    System.out.println(c);
}
}

image-20220329182238275

关系运算符

== != < > <= >=
关系运算符的运算结果只会是 true false (boolean类型)

public class TestDemo1{
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);
}
}
//false
//true
//true
//false
//true
//false

逻辑运算符

&& || !

逻辑运算符的运算结果也只会是 true false (boolean类型)

逻辑与&&

规则: 两个操作数都为 true, 结果为 true, 否则结果为 false.

逻辑或 ||

规则: 两个操作数都为 false, 结果为 false, 否则结果为 true

逻辑非 !(只能作用于boolean类型的数据上)

规则: 操作数为 true, 结果为 false; 操作数为 false, 结果为 true

&& 与 || 遵守短路求值原则

System.out.println(10 > 20 && 10 / 0 == 0); // 一旦左边为假,右边就不会被执行了,直接打印 false
System.out.println(10 < 20 || 10 / 0 == 0); // 一旦左边为真,右边就不会被执行了,直接打印 true

&按位与

|按位或

^按位异或

以上3个都是对二进制进行操作的

image-20220329201947019

&:都是1才为1

image-20220329202025931

|:有1就是1

image-20220329202058879

^:异为1,同为0

~:按位取反

image-20220329202332236

移位运算

、>>右移

在不考虑负数的情况下,右移相当于除法(左边补符号位)

左移<<相当于乘法

image-20220329203156575

image-20220329203210143

,>>>无符号右移(不管原本是正数还是负数,直接在左边补0就行了)

三目运算符

a?b:c

就是if else的简化版 
举一个最简单的例子:

(a>b)?a:b; //取出a b 中的大值


全部评论
这个经常要用到,感谢分享
点赞 回复 分享
发布于 2022-08-13 17:37

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务