java/android 做题中整理的碎片小贴士(16)
1、java并发库的semaphore可以完成信号量控制,控制某个资源可被同时访问的个数,通过acquire()获取许可,不能获取就等待,然后用release()释放许可。
2、cyclicbarrier主要有一个方法await(), 每调用一次计数减少1,并阻塞当前线程,计数减至0时解除阻塞。然后所有在cyclicbarrier上阻塞的线程都开始运行。(很奇怪的功能)
3、countdownlatch是倒计数的门栓,通过CountDownLatch.await()在倒数到0之前阻塞当前线程。感觉跟上面那个有点像。
4、以上三个是并发编程的同步器,Counter不是。
5、double b1 = -0.5; Ceil b1 == -0.0 ;
6、java, Objective c, c#都是类C语言,Python不是,它是解释执行的,不需要先编译。
7、Applet显示相关的方法有三个;paint, update,repaint。但没有draw 。
8、final方法不能重写,但是如果父类有一个private final方法,则因为子类没有继承它,可以写一个同名的方法而不会报错(看似重写)。但若父类有一个public final方法,强行重写会报错。
9、\d匹配数字,\D就匹配非数字。
10、int a=1, b=2, c=3;是可以的。
11、数值型变量在默认情况下为int型,byte 和 short在计算时会自动转换成int型计算,结果也会是int型。
12、HttpServletResponse接口,设置http头标,设置cookie, 输出返回数据,这3个功能都可以实现。
13、活动中写了setContentView之后,才可以为控件findviewById。
14、getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) ;//隐藏状态栏getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);//重力感应强制横屏
15、碎片生命周期中
onCreate(可初始化数据)—>onCreateView(是有返回栈情况下返回的构造,可以inflate视图,可以不用super)—>onActivityCreated(可以初始化控件)
16、sendmessage的参数是message类,sendemptyMessage的参数是msg.what 的int类,会自己组装出message。