黑马程序员_Java编程基础(二)

来源:互联网 发布:2017网络婚恋诈骗 编辑:程序博客网 时间:2024/06/07 13:39

----------------------     android培训 、java培训期待与您交流! ----------------------

 

运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算付。

1、 算术运算符:+-*/%+ +- -+(字符串相加)

      注:%取模规律:如,若a<b a; a==b0; a>b 取余;b=1,则取0;若有负数,则只看a 如:-1%5 --->-1     1%5 --->1

        示例代码:

/*注:取余运算*/public class QuYu{  public static void main(String args[])   {  int a,b;      a=-3%2;      b=3%-2;      System.out.println(a);      System.out.println(b);   }}

      [小知识点]1、字符串数据和任何数据使用+都是相连接,最终都会变成字符串。

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

                                   \n:换行。

                                   \r:按下回车键。

                                   \b:退格。相当于backspace

                                   \t:制表符。相当于tab键。制表符对的相当齐(特别是以后得九九乘法表应用)

                                   注:linux系统里面换行用\n表示的

                                           windows系统里面回车符用\r\n表示的

                                           dos里面直接能识别\n    

                                   如:System.out.print("hello \t world");

                                 要想输出带双引号的hello,就用到转义字符了,在要转义的字符前加\。如:System.out.println("\"hello\"");

2、赋值运算符:=+=-=*=/=%=

      示例:int a=3; a+=5;等同运算 a=a+5;

      思考:short s = 3;  s = s + 2; s += 2; 有什么区别?

      解析:1s = s + 2 //编译失败,因为会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型。

                  2s += 2 //编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。

3、比较运算符:==!=<><=>=instanceof(检查是否是类的对象)

      注:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false

              2、比较运算符”==”不能误写成”=”

4、逻辑运算符:&|^!&&| |

      注:1、逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

              2、一般用&&| |进行连接的,&|用于连接布尔型表达式、位运算。

      注:&():只要两边的boolean表达式结果,有一个为false,那么结果就是false。                       

                         只有两边都为true,结果才为true

                           如:true & true = true;

                                    true & false = false;

                                    false & true =false;

                                    false & false = false;           

              |():两边只要有一个为true,结果为true。只有两边都有false,结果为false

                        如:true | true = true;

                                 true | false = true;

                                 false | true = true;

                                 false | false =false;         

             ^(异或):就是和|有点不一样,当true ^ true = false;两边相同结果是false。两边不同结果是true

                            如:true ^ true = false;

                                     true ^ false = true;

                                     false ^ true = true;

                                     false ^ false = false;

             !()! ture = false

             &&(短路即双与)&&&的特点:&:无论左边是true还是false,右边都运算。

                                                                           &&:当左边为false时,右边不运算。

             ||(短路即双或)|||的特点:|:两边都参与运算。

                                                                ||:当左边为true,右边不运算。

5、位运算符:<<>>>>>&|^~

      注:<<(左移):相当于乘与2的倍数;被移除的高位丢弃,空缺位补0

              >>(右移):相当于除以2的倍数;被移除的二进制高位是0,右移后,空缺位补0,最高位是1,空缺位补1

              >>>(无符号右移):被移位二进制最高位无论是0或者是1,空缺位都用0补。

              &(与运算):二进制位进行&运算,只有1&1时结果是1,否则是0

              |(或运算):二进制位进行|运算,只有0|0时结果是0,否则是1

              ^(异或运算):任何相同二进制位进行^运算,结果是01^1=0, 0^0=0;不相同二位^运算结果是11^0=1, 0^1=1

              ~(反码)~6 = -7

      注:1、位运算是直接对二进制进行运算。位运算其实是最快的一种运算,但是它有一个局限性:它都是在以2的倍数在增长,即以2为基数。

              2、二进制1就是true0就是false

              3、移n位,就是对乘以或者除以2n次幂。

              4-6的二进制就是 6的二进制取反+1。即:6二进制取反+1=-6。即:6二进制取反=-6-1=-7

                     ~(反码):相当于取反。6二进制反码(取反)=-6-1=-7

              5^异或符号的应用:加密、一个数异或同一个数两次还是那个数。

                    如:代码1:         

/*利用“异或”运算性质,对几个字符加密并输出密文,然后再解密。*/class Password{  public static void main(String args[])   {  char a1='十',a2='点',a3='进',a4='攻';       char secret='8';       a1=(char)(a1^secret);       a2=(char)(a2^secret);       a3=(char)(a3^secret);       a4=(char)(a4^secret);       System.out.println("密文:"+a1+a2+a3+a4);       a1=(char)(a1^secret);       a2=(char)(a2^secret);       a3=(char)(a3^secret);       a4=(char)(a4^secret);       System.out.println("原文:"+a1+a2+a3+a4);   }}

      注:位运算的练习:

              应用1:         

/*最有效率的方式算出2乘以8等于几?*/public class Demo {    public static void main(String args[])    {          //输出打印2左移3位的结果。       System.out.println(2<<3);     }}

              应用2:           

/*要求:对两个整数变量的值进行互换(不用第三方变量)*/public class WeiYiHuo{  public static void main(String[] args)   {  int m=8,n=3;       System.out.println("原始值:m="+m+",n="+n);       n = n ^ m;       m = n ^ m;  //(n^m)^m;       n = n ^ m;  //n^(n^m);       System.out.println("异或后:m="+m+",n="+n);   }}

              当然了对两个整数变量的值进行互换还有以下的方法:    

/*第1种:通过第三方变量*/             int n=3,m=8,temp;             temp = n;             n = m;             m = temp;   //开发最常用的/*第2种*/             int n=3,m=8;             n = n + m;             m = n - m;             n = n - m;   //如果n和m的值非常大,容易超出int范围。

               应用3:

              

6、三元运算符:

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

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

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

      示例:获取两个数中大数。

                  int x=3,y=4,z;

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

      注:表达式就是具有一定语法规则的语句。

 

----------------------     android培训java培训期待与您交流! ----------------------

 

      详细请查看:http://edu.csdn.net

 

 

原创粉丝点击