• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-06-15)  Java基础 |   抢沙发  210 
    文章评分 1 次,平均分 5.0

    【Java基础】零基础学习Java之运算符

     

    前言:

    上一篇给大家聊了Java的语法,这一篇给大家聊聊Java的运算符。

    学习计算机编程语言都会遇到运算符这一知识点,运算符这个知识点是教怎么运用编程语言进行最基本的数据处理,下面就讲一下在Java语言中运算符是怎么回事。

    算术运算符:

    基本上和C/C++语言中的一样;

    加(+):计算两个数之和或者将较小的数据类型提升为int;

    减(-):计算两个数的差或者转变数据的符号;

    编译器会自动识别是两个数之间的计算还是其他。

    比如:x = -a; x= a +b;

    乘(*):计算两个数的积;

    除(/):计算两个数之商。注意a/b,b不能为0,要不然编译不过;整数的除法如果除不尽会直接把小数部分抹掉而不是四舍五入。

    取余(%):还叫取模,取的是两个数的余数。

    自动递增/减(--、++):++a相当于a=a+1;注意这两个操作符分前缀(++a)和后缀(a++),前缀会先进行运算,再使用这个变量,后缀是先使用变量再进行计算;

    比如:int a = 1;

    println("a = " + ++a);//2;

    println("a = " + a++);//2

    上面打印出来都是2,第一个因为是前缀,所以先执行运算后打印a,第二个是先打印a再执行运算;

    这个经常出现在面试题中,在实际项目中也经常用到。

    关系运算符:

    关系运算生成的是一个boolean结果;

    大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)。

    在基本数据类型之间使用关系运算符很容易理解,就是比较两个数的大小关系,但是对于等于和不等于可以用在其他的数据类型(对象)之间,这个时候比较的是对象的内存地址是否一样,这里先不过多讲解,后面的文章在学习完类和对象之后会拿来和equals()方法放在一期讲。

    逻辑运算符:

    与(&&),或(||),非(!)生成的结果也是一个boolean值。

    a&&b,a和b全为true时结果才是ture;

    a||b,a或者b有一为true结果就是true;

    这里a和b可能是两个boolean变量,也可能是两个结果为boolean的表达式。

    注:说一下短路问题,这个在实际编程中也会遇到,短路是在进行逻辑运算时,如果通过前面的判断已经能够明确的知道整个表达式的值,就不会再进行后面表达式的逻辑判断。例如:表达式a || 表达式b || 表达式c 在知道表达式a是true时就已经能够知道整个表达式的值为true,所以表达式2和3 都不会再进行判断。

    位运算符:

    用来操作整数基本数据类型的每一个位,也就是把整数按照二进制进行计算。

    int a = 50;

    int b = 30;

    System.out.println(Integer.toBinaryString(a));// 110010

    System.out.println(Integer.toBinaryString(b));// 011110

    System.out.println(Integer.toBinaryString(a & b));// 010010

    System.out.println(Integer.toBinaryString(a | b));// 111110

    System.out.println(Integer.toBinaryString(a ^ b));// 101100

    System.out.println(Integer.toBinaryString(a << 2));// 11001000

    System.out.println(Integer.toBinaryString(a >> 2));// 1100

    & 按位与操作符,当且仅当两个操作数都为1时结果才为1。

    | 按位或操作符,只要两个操作数的某一位是1结果就为1。

    ^ 按位异或操作符,两个操作数不相同时则结果为1。

    〜 按位补运算符翻转操作数的每一位,0翻转为1,1翻转为0。

    << 按位左移运算符。左操作数按位左移右操作数指定的位数,低位补0。左移几位等于乘2的几次幂。

    >> 按位右移运算符。左操作数按位右移右操作数指定的位数,高位补0或者1,取决于操作数正负,正则补0,负则补1。右移几位等于除2的几次幂。

    >>> 按位右移补零操作符(无符号右移)。左操作数的值按右操作数指定的位数右移,移动得到的空位以0填充。

    三元运算符:

    三元操作符也叫条件操作符。表达式如下:

    boolean-expression ? value0 : value1;

    如果boolean-expression 是true则就计算value0,并且作为整个表达式的值返回,如果为false则计算value1,并作为结果返回。

    关于优先级:

    网上流传最多的是下面的口诀:

    单目乘除为关系,逻辑三目后赋值。

    单目:单目运算符+ –(负数) ++ -- 等

    乘除:算数单目运算符* / % + -

    为:位移单目运算符<< >>

    关系:关系单目运算符> < >= <= == !=

    逻辑:逻辑单目运算符&& || & | ^

    三目:三目单目运算符A > B ? X : Y

    后:无意义,仅仅为了凑字数

    赋值:赋值=

    在实际工作中写代码尽量都加上括号,用括号来区分哪个优先,还有就是避免写太长的运算符表达式。专业的代码是美观,易懂的,谁也不会单纯死记这些优先级,除非哪个变态面试官出这样的无聊题目。

     

    想第一时间获得更多原创文章,请关注个人微信公众平台:程序员互动联盟(coder_online),扫一扫下方二维码或者搜索微信号coder_online即可关注,里面有大量Android,Chromium,Linux,编程技巧等相关文章等着您,我们还可以在线交流。

    【Java基础】零基础学习Java之运算符

      
     

    本文原始地址:http://www.coderonline.net/java-based-zero-based-learning-java-operators.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册