JAVA&Android随记(5)

1. JAVA中的关键字Volatile,这个关键字只能写在变量前面,并且只保证了可视性,并没有保证原子性。而Synchronized关键字既保证了可视性又保证了原子性。具体参照

http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html

http://blog.csdn.net/fanaticism1/article/details/9966163

http://sakyone.iteye.com/blog/668091

http://www.bubuko.com/infodetail-488137.html


2. 单例的标准写法(不直接在方法前面加Synchronized,而先判断空并使用同步控制块提高效率)。具体参照http://blog.csdn.net/guolin_blog/article/details/8860649。


3. 关于Thread的interrupt的这个方法,它只对sleep(),wait()等会抛出InterruptedException异常的函数有用,会让程序进入该异常,但是,你不能中断试图获取sunchronized锁或者试图执行I/O操作的线程。像ExecutorService的shutdownNow()函数就会调用其中Thread的interrupt()。中断I/O操作的方法是关闭对应的流,比如inputstream.close()。


4. wait()函数会防止程序CPU进入忙等待。


5. 有关于使用wait()和notifyAll()而产生的信号错失(JAVA编程思想P706)。


6. 当notifyAll()函数调用时,只有等待这个锁的人物才会被唤醒(P707)。


7. notify()和notifyAll()的区别: notify()只会唤醒一个wait的线程,而notifyAll()会唤醒所有并竞争。只有一个生产者而有多个消费者的时候,应该使用notify()。具体参照

http://www.cnblogs.com/armyao/archive/2010/12/27/1917989.html


8. 有关于Android PoerManager和WakeLock的知识。http://www.cnblogs.com/keyindex/articles/1819504.html


9. 关于JAVA的短路。http://blog.sina.com.cn/s/blog_64e5287101012f9l.html


10. Alarm之所以可以唤醒程序,是因为它是基于BP的(BasebandProcessor)而不是AP的(ApplicationProcessor)。 在Android中使用Alarm比使用handler会要省点,不过做普通的计时或者循环还是用handler,Alarm用于在某一个时刻做特定的事。具体参考http://blog.csdn.net/eclipsexys/article/details/45274451。


11. 关于TextView实现长按复制。http://blog.sina.com.cn/s/blog_4ac1b5f60102v15n.html


12. 关于Android中Bitmap,byte[],Drawable,InputStream的相互转换。http://blog.sina.com.cn/s/blog_7dbac1250101nps0.html


13. 在Android中,onTouch和onTouchEvent的区别是,会先执行onTouch,如果return true,则不会执行onTouchEvent,至于具体的View和ViewGroup的touch机制,很多大神的博客多有很好的解释,我就重复造轮子了。


14. 在Android中,onClick和onLongClick两个回调函数是可以同时执行的。如果onLongClick里return true,则onClick不会执行,这是因为,这两个函数都是在onTouchEvent中的,onClick和Action_UP里的PerformClick()有关,onLongClick和Action_DOWN里的postCheckForLongClick()有关,onLongClick的发生在Action_UP之前,onClick在Action_UP之后,所以先执行的是onLongClick,return true了则onClick不会执行。具体参照http://blog.csdn.net/yulan1433096363/article/details/7412265。但是笔者在测试的时候,发现如果onTouchEvent里return false,则onClick和onLongClick都不会执行,return super则会执行。


15. 关于AsyncQueryHandler的使用。

http://blog.csdn.net/hudashi/article/details/6896356

http://blog.sina.com.cn/s/blog_5da93c8f0100yy7x.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值