java中各种运算符
比如java中常用的运算符
一 符号++ ,+,--,-
有时这个符号拼凑起来也有点复杂
比如这样一个运算式
int i=3;
i+++i-i++-++i
+ -运算符的优先级 低于++,-- 先运算++,--
可以将上面的式子拆开
i++ + i - i++ - ++i
这样是不是容易多了
先来个简单点的
1 K++
int k=0;
System.out.println(K++)
System.out.println(k)
输出结果为 0
1
这说明 K++式子并没有相加 而是k本身加了1
2 ++K
int k=0;
System.out.println(++k)
System.out.println(k)
输出结果为 1
1
这说明 K++式子本身加了1 而是k本身也加了1
K--与--K效果与上一样
再来算上面的式子
i=3
i++ + i - i++ - ++i
1………….2………3…………..4
1处 i++本身不变 i++=3 i=4
2处 i=4
3处 i++本身不变 上面i=4 此时i++=4 i=5
4处 ++i本身变化 上面i=5 此时 ++i=6 i=6
取出上面红色的值
结果为 : 3+4-4-6=-3
二 符号 ~
比如 int i=102;
~i=-103
int i=-3
~i=2
~计算可以匹配一个运算式
int I;
~I=(-I)-1;
也就是求相反值-1
三 符号>> <<
举例
int i=100;
int j=2;
i>>j=25
i<<j=400
<<匹配运算式
i>>j 等价于 i/(int)Math.pow(2, j)
i<<j 等价于 i*(int)Math.pow(2, j)
也就是 i除以或乘以 2的j次方
四 符号(抑或) |
符号 | 就比较复杂一点 里面涉及到二进制与十进制之间的转换问题
比如 32 | 24
将 32 转换为二进制
Integer.toBinaryString(32) = 100000;
24转换为 二进制
Integer.toBinaryString(24) = 11000;
两个并排比较 比较式为数不同 补0
100000
011000
位与位比较 0与0=0 0与1=1 1与1=1
上面的结果就是
111000
然后将 111000转换为十进制
1*(int)Math.pow(2, 5)+1*(int)Math.pow(2, 4) +1*(int)Math.pow(2, 3)
=2*2*2*2*2+2*2*2*2+2*2*2
=32+16+8
=56
四 符号&
同样32 | 24
将 32 转换为二进制
Integer.toBinaryStri
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
在实际的开发中, jvm 默认的内存大小是不够的,需要自定义设置。可按如下的方法进行设置:
第一、进入到指定运行文件的 run configurations, 就会弹出运行设置对话窗体
第二、在 ja ......
集合模式:
作用:处理由一些对象组成的组或者集合;处理如何组织类和对象来形成更大结构的细节;关注设计一个无冗余数据类的最有效方法;允许在一组对象构成的集合上定义操作。
1. 合成:允许单个对象合成对象以一种统一的方式被访问。换句话说,合 ......
Java传递参数有两种 :值传递,引用传递
一般引用类型 是引用传递,值类型是值传递
值类型是原始数据类型 包括 int,byte,char short long,boolean,float,double
引用类型就是一般的class类 当然也包括原始数据的封装类型 比如int的
封装类型为Integer
一般情况下:
值传递:
例子 1 public void show1(int str ......
java回调机制
回调概念:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似 ......