java中的运算符!!绝对经典!值得收藏!!

java中的运算符
1、 + - * / %
[+ 当+遇到String类型的时候 表示追加链接 不在表示算数加法]
[* 当心数值超出int类型最大的边界 -》 注意使用long类型]
System.out.println(365L * 24 * 60 * 60 * 1000);
[/ 整数除以整数 结果一定是整数]
拓展:
5 / 0.0 = Infinity = 无穷大。
0.0 / 0.0 = Nan = not a number = 不是一个数。

*  [% 取模运算符 求余数 最终结果的符号位取决于参与运算的第一个数的符号]

public class ExecOperation4{
public static void main(String[] args){
//浪潮的笔试题
int num = 998;
// / %
//592的个位数是2
//592的十位数是9
//592的百位数是5

    int bai = num / 100;//592 / 100 = 5
    System.out.println(bai);
    int shi = num / 10 % 10;
    System.out.println(shi);
    int ge = num % 10;
    System.out.println(ge);
}

}

+= -= *= /= %=...
* [他们能够保证运算符左侧的数据类型不发生改变 -》 隐式的强转]

如果左侧的数据类型根右侧的数据类型不一样,则自动强制转换为左侧的数据类型。

++ --[自增自减运算符]      
[a:取值    b:运算     x++ -> ab    ++x -> ba]

注意:x++:x在++ 的前面的时候,先取值,后运算。取值只是针对本语句有效。出了这语句,取值就没有用了。X–一样。++x,–x则是相反。先运算后取值。

> < >= <= ! = != ==
!:非     !boolean
    !true = false       !false = true
!=:判断左右两边的值是否不相等
    System.out.println(34 != 34);//false
面试题:=和==之间的区别?
    =:赋值运算符  将右侧的值交给左侧的变量进行保管
        int x = 55;
    ==:判断左右两边的值是否相等
        System.out.println('a' == 'b'); //false

2、&& || & |[逻辑运算符]
    面试题:&&和&之间的区别?
    相同点:&&和&都是逻辑的与 相当于汉文中并且的意思
    需要前后两个条件都成立才行,

&&的运算效率要比较高一些。
不同点:
1: &&叫做逻辑的短路与 有短路特性
如果通过前面的条件可以得出最终结果的话 后面的条件直接舍弃,不在判断。
2:&可以作为逻辑运算符还可以作为按位运算符 && 只能作为逻辑运算符
例子:今天晚上如果我有空的话 而且你们愿意 我请大家唱歌
if(我有空 && 你们愿意){
我请大家唱歌
}

    boolean  &&  boolean
    true          判断
    false         短路

    ||和|之间的区别?
    相同点:||和|都是逻辑的或  相当于汉文中或者的意思
    需要前后只要有一个条件成立就可以

    不同点:||叫做逻辑的短路或 有短路特性
    如果通过前面的条件可以得出最终结果的话 后面的条件直接
    舍弃 不在判断

    例子:QQ注册的时候 如果用户名长度>6 或者是密码长度<12位
    显示注册失败
        if(用户名长度>6 || 密码长度<12){
            显示注册失败
        }

    boolean || boolean
    true       短路
    false      判断

3、& | ^ ~[按位(二进制)运算符]

    & | 可以作为逻辑运算符 可以作为按位运算符 怎么区分?
    看运算符两边是什么类型:
        如果运算符两边是数字 -》 按位运算符
        如果运算符两边是boolean -> 逻辑运算符


    基本用法(了解)

&:按位的与 上下都为1的时候才写1。
System.out.println(9 & 5);//1

    9:8+1=00001001
    5:4+1=00000101

    00001001
&   00000101
    00000001

|:按位的或 上下只要有1就写1
System.out.println(9 | 5);//13

    00001001
|   00000101
    00001101 -> 8+4+1=13

^:按位的异或 上下不一样的时候就写1(上下一样,才写0)
System.out.println(9 ^ 5);//12

    00001001
^   00000101
    00001100 -> 8 + 4 = 12

~:按位的取反 0-》1 1-》0 ;
byte x = 5;
~x;
5 = 4 + 1 = 00000101 -> 11111010

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值