算术运算符

算术运算符的注意问题:

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;x=x/1000*1000; x的结果是3

“+”除字符串相加功能外,还能把非字符串转换成字符串 ,

例如:System.out.println("5+5="+5+5);//打印结果是5+5=55

转义字符:

通过 \ 来转变后面字母或者符号的含义

\n:换行

\b:退格

\r:按下回车键。windows系统中,回车符是由两个字符来表示\r\n

\t:制表符

赋值运算符

符号:

= , +=, -=, *=, /=, %=

+和+=的区别:

   1: short s = 4;

   2: //两次运算,中间有一个提升过程,所以编译失败

   3: s = s + 5;

   4: //一次运算,只做赋值运算,内部有一个自动转换动作,所以编译通过

   5: s += 5;

比较运算符

结果是boolean型

逻辑运算符

   1: //与(&),有一方为假,结果为假

   2: true & true = true;

   3: true & false = false;

   4: false & false = false;

   5: //或(|),有一方为真,结果为真

   6: true | true = true;

   7: true | false = true;

   8: false | false = false;

   9: //异或(^),两边相同,结果为假

  10: true ^ true = false;

  11: true ^ false = true;

  12: false ^ false = false;

  13: //非(!)

  14: !true = false;

  15: !false = true;

&与&&(短路)的区别:

&:无论左边是什么,右边都运算

&&:如果左边为假,右边不运算

|与||的(短路)的区别:

|:无论左边是什么,右边都运算

||:如果左边为真,右边不运算

位运算符

>>(右移)即为除以2的N次幂

<<(左移)即为乘以2的N次幂

小技巧:

交换两个数的值(不经过第三方变量)

   1: //通过第三方变量

   2: int temp = n;

   3: n = m;

   4: m = temp;

   5: System.out.println("n = "+n+";m = "+m);

   6:  

   7: //有可能超出范围,有局限性

   8: n = n + m;

   9: m = n - m;

  10: n = n - m;

  11: System.out.println("n = "+n+";m = "+m);

  12:  

  13: //利用位运算符

  14: n = n ^ m;

  15: m = n ^ m;

  16: n = n ^ m;

  17: System.out.println("n = "+n+";m = "+m);

位运算在进制转换的应用

   1: class OperatorDemo2 

   2: {

   3:     //Hex码表

   4:     static char[] list = {'0','1','2','3','4','5',

   5:                             '6','7','8','9','A',

   6:                             'B','C','D','E','F'};

   7:     public static void main(String[] args) 

   8:     {

   9:         toHex(66660);

  10:     }

  11:     public static void toHex(int n)

  12:     {

  13:         //存在有效位,继续递归

  14:         if(n > 0)

  15:             //采用>>>而不是>>,因为>>对负数不安全

  16:             toHex(n>>>4);

  17:         //不存在有效位,则返回

  18:         if(n == 0)

  19:             return;

  20:         //提取并打印最低四位

  21:         System.out.print(list[n&0x0F]);

  22:     }

  23: }

三元运算符

格式:

(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

示例:

获取两个数中大数。

int x=3,y=4,z;

z = (x>y)?x:y;//z变量存储的就是两个数的大数。

Java笔记(五)……运算符的更多相关文章

  1. 疯狂java笔记(五) - 系统交互、System、Runtime、Date类

    一.程序与用户交互(Java的入口方法-main方法): 运行Java程序时,都必须提供一个main方法入口:public static void main(String[] args){} publ ...

  2. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  3. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  4. C++基础 学习笔记五:重载之运算符重载

    C++基础 学习笔记五:重载之运算符重载 什么是运算符重载 用同一个运算符完成不同的功能即同一个运算符可以有不同的功能的方法叫做运算符重载.运算符重载是静态多态性的体现. 运算符重载的规则 重载公式 ...

  5. 自学PHP笔记(五) PHP运算符

    本文转发来自:自学PHP笔记(五) PHP运算符 首先我们需要了解运算符是什么,运算符是指的对变量.常量或者数据进行计算的一个符号,比如数学中学到的加减乘除等用来运算的代表符号,PHP中的运算符也是这 ...

  6. Java IO学习笔记五:BIO到NIO

    作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一 ...

  7. 菜鸡的Java笔记 第四 - java 基础运算符

    数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好   简化运算符 代码:x=x+y 可以 ...

  8. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  9. java的五种数据类型解析

    不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析. 一.简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自 ...

随机推荐

  1. TortoiseSVN文件夹及文件图标不显示解决方法 [转]

    由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图 标,这个问题前一段时间就遇到了(那个时候没找到合适的答案 ...

  2. 【Ubuntu12.04】安装搜狗输入法

    我的系统版本是Ubuntu12.04 32位 卸载Ibus输入法 sudo apt-get remove ibus 注意: 安装ibus的命令是  sudo apt-get install fcitx ...

  3. windows 下 scrapy的安装

    安装参考博客:http://davenzhang.com/scrapy_install.htm 我是先安装了scrapy,发现import scrapy 的时候报错.之后一次安装了下面关联软件的.ex ...

  4. 敏捷开发的价值观(转自MBAlib)

    敏捷开发的价值观 实际上敏捷开发运动在数年前就开始了,但它正式开始的标志是2001年2月的“敏捷宣言”(Agile Manifesto),这项宣言是由17位当时称之为“轻量级方法学家”所编写签署的,他 ...

  5. C#.NET连接mysql方法

    C#访问MySQL数据库的方法 (1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序 下载地址为: http://dev.mysql.com/downloads/connector/ne ...

  6. bool([x]) 将x转换为Boolean类型

    >>> a = 1 >>> b = 0 >>> c = "None" >>> d = bool(a) > ...

  7. PHP漏洞全解(五)-SQL注入攻击

    本文主要介绍针对PHP网站的SQL注入攻击.所谓的SQL注入攻击,即一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据程序返 ...

  8. 网络编程(一) 利用NSURLSession发送GET POST请求

    Xcode 7.0后,http链接不能直接访问(https可以),需要在Info.plist增加下面一项才能正确访问. 使用NSURLSession进行网络请求的流程: 1.构造NSURL 2.构造N ...

  9. ANDROID_MARS学习笔记_S02_006_APPWIDGET2_PendingIntent及RemoteViews实现widget绑定点击事件

    一.代码流程 1.ExampleAppWidgetProvider的onUpdate(Context context, AppWidgetManager appWidgetManager, int[] ...

  10. linux PCI设备初始化过程

    linux PCI设备初始化过程 start_kernel->rest_init 这个函数会启动一个核心线程0, 核心线程然后调用init -> do_basic_setup. 然后我们开 ...