public static final int FLAG_SYSTEM = 1<<0

张玉伟 发布于 2012/11/20 09:53
阅读 1K+
收藏 0
public static final int FLAG_SYSTEM = 1<<0; 这是android源码里的,请问这句话是什么意思啊

加载中
0
Ryan-瑞恩
Ryan-瑞恩

你在里面试试,,,,,看看FlAG_SYSTEM是什么值就知道了。


loki_lan
loki_lan
回复 @Rayn-瑞恩 : 这个就不清楚了,也不排除有这个可能,这个应该是编译速度吧,执行起来都一样。
张玉伟
张玉伟
回复 @Rayn-瑞恩 : 怎么和优先级扯上关系的?
Ryan-瑞恩
Ryan-瑞恩
回复 @loki_lan : 这样写的效率难道比直接赋值的高???
Ryan-瑞恩
Ryan-瑞恩
回复 @张玉伟 : 应该是优先级把!
张玉伟
张玉伟
回复 @loki_lan : 优先级?
下一页
0
loki_lan
loki_lan
public static final int FLAG_SYSTEM = 1<<0也就是public static final int FLAG_SYSTEM = 1;正常的定义一个int成员变量,不可修改。
loki_lan
loki_lan
这个跟JVM底层有关,我没有深入研究,你可以问问其他人或者去看看JVM和编译器相关的东西。
张玉伟
张玉伟
回复 @loki_lan : 你说的这个我可以理解,但是<<0怎么可能会快呢?
loki_lan
loki_lan
运算速度更快,像2<<3运算速度比2*2*2*2快,直接2进制位操作。
张玉伟
张玉伟
对,但他为什么要写成1<<0这种形式呢?
0
王宏达
这个是左移的意思。左移0没有任何意义。如果你换成 1<<2那输出结果就会是个4
返回顶部
顶部