java中使用阻塞队列实现生产这与消费这之间的关系
摘要:需求如下: 有一个生产者和一个消费者,生产者不断的生产产品,消费这不断的消费产品.产品总数为N. 1.生产顺序按队列的方式,先进先出. 2.生产者和消费这可以同时进行. 3.当生产者生产了N个产品后不能继续生产,消费者消费完后不能继续消费. 4.当生产完成,或者消费完成时,要节约CPU开支(不能使用Sleep); 5.尽量少定义变量,高效率实现.说明:花了一个小时实现的,如果有不同的意见,希望大家能够指出,共同学习共同进步.下面说一下我分析的过程: 题目上说: 1.有一个生产者和消费者,这个告诉我们至少要建立两个线程,一个生产者线程,一个消费者线程 2.由生产顺序:先...
阅读全文
posted @
2014-03-16 19:06
飘杨......
阅读(556)
推荐(0) 编辑
java Switch中的case后面加上大括号({})和不加大括号的区别
摘要:java基础求真之switch 的case 后面加上大括号和不加大括号的区别。下面给出三段代码大家看一下有什么不同以及哪段代码能够编译通过那段代码编译不能通过,为什么?(Why?)代码片段一: int value = 10; switch (value) { case 1: int value1 = 5; break; case 2: int value1 = 6; break; }代码片段二: int value = 10; ...
阅读全文
posted @
2014-03-14 17:46
飘杨......
阅读(16190)
推荐(0) 编辑
Java中关于类型自动提升的两个注意点。
摘要:问题一:在进行赋值运算时,进行类型提升: 例如:short s1 = 1;s1 = s1 + 1; (错的编译通不过)short s2 = 1;s2 += 1;(正确,编译和运行都能通过) 为什么呢?这其中就涉及到了类型的自动提升问题。解释如下: short s1 = 1; // 这个表达式会进行自动类型提示,因为1为int类型, // 所以提升后整体的数据类型为int类型。因为short类型为2个字节,int类型为4个字节, // 把四个字节的内容放到2个字节的内容中,编译肯定通不过。 //下面的表达式等效于:short...
阅读全文
posted @
2014-03-14 16:48
飘杨......
阅读(1146)
推荐(0) 编辑
Android FragmentPagerAdapter翻译
摘要:public abstract classFragmentPagerAdapterextendsPagerAdapterjava.lang.Object↳android.support.v4.view.PagerAdapter↳android.support.v4.app.FragmentPagerAdapter Class Overview它是PagerAdapter的一种实现,每一个页面都是一个Fragment,并且每一个页面都会保存到fragment manager中,当用户没有可能回到该页面时fragment manager才会将这个fragment销毁。这种页面十分适用于有一些静态.
阅读全文
posted @
2014-03-10 15:50
飘杨......
阅读(666)
推荐(0) 编辑
Android PageAdapter翻译
摘要:介绍:ViewPager和PagerAdapter结合使用public abstract classPagerAdapterextendsObjectjava.lang.Object↳android.support.v4.view.PagerAdapterKnown Direct SubclassesFragmentPagerAdapter,FragmentStatePagerAdapterClass Overview提供一个适配器用于填充ViewPager页面. 你很可能想要使用一个更加具体的实现, 例如:FragmentPagerAdapterorFragmentStatePagerAda
阅读全文
posted @
2014-03-10 15:05
飘杨......
阅读(3442)
推荐(0) 编辑
Android java.lang.RuntimeException: Unable to instantiate activity ComponentInfo 特殊异常
摘要:本来是不想写的,因为这个异常太常见了,而且也容易处理。但是还是决定记录一下,因为之前遇到过,没留心,今天又遇到了,苦逼了,想了好大一会儿才想起来。通常容易找的就不写了,今天写个特殊的。现象:当你在网上下载一个新项目导入eclipse,发现一切OK,但是当运行的时候程序就会崩溃,你一遍一遍的检查你的代码和包,发现代码正常的不能再正行了。But Why ? 看到这里时你就应该自信一点”代码肯定是没有问题的“。问题本身一定出在jar包上或者eclipse的问题。然而程序又报找不到xxx类。那么肯定是在程序打包成apk时有些类没有被打包进去。Buy Why ?经过查阅资料得知,如果在Order And
阅读全文
posted @
2014-03-10 12:07
飘杨......
阅读(2972)
推荐(0) 编辑
Android Canvas saveLayerAlpha使用
摘要:Canvas.saveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags):本身和save方法差不多,但是它单独分配了一个画布用于绘制图层。它定义了一个画布区域(可设置透明度),此方法之后的所有绘制都在此区域中绘制,直到调用canvas.restore()方法。例如:在调用saveLayerAlpha方法之前绘制了一个“圆形”,在调用saveLayerAlpha方法之后绘制了一个“圆形”此时这两个圆形并不在同一个图层。下面给出一个例子以及样图来说明这个问题。实例代码:pack
阅读全文
posted @
2014-03-05 10:28
飘杨......
阅读(4896)
推荐(0) 编辑
Android TimeAnimator && TimeListener翻译
摘要:TimeAnimator:提供了一个简单的回调机制,通过 TimeAnimator.TimeListener,在动画的每一帧处通知你。这个动画器没有时间,插值或是对象值设定。回调监听器为每一帧动画接受信息,包括总运行时间和从前一帧到现在的运行时间.相关方法:setTimeListener(TimeAnimator.TimeListenerlistener):设置监听器.start():开始动画TimeAnimator.TimeListener:实现这个接口可以对动画的每一帧进行监听onTimeUpdate(TimeAnimatoranimation, long totalTime, long
阅读全文
posted @
2014-03-04 22:57
飘杨......
阅读(2104)
推荐(0) 编辑
Android 利用属ObjectAnimator,AnimatorSet性动画绘制一个弹球,加速下落,到底部时挤压,然后减速上弹
摘要:属性动画主要的几个类介绍:1.ValueAnimator:这个类提供了一个简单的计时引擎运行动画动画计算值和设置目标对象。注意:使用该类时一般都是用:ObjectAnimator,而基于ObjectAnimator执行的属性动画,都是根据java的反射机制来设置的,因此设置动画的目标对象的属性必须有getter 和setter方法。 setDuration:设置动画的时间 setInterpolator:设置一个插入器,例如:减速器(DecelerateInterpolator),加速器(AccelerateInterpolator),当然也可以自定义,自定义时只需要继承这两个类就行了,这..
阅读全文
posted @
2014-03-04 18:02
飘杨......
阅读(7140)
推荐(0) 编辑
Android使用属性动画ValueAnimator动态改变SurfaceView的背景颜色
摘要:以下是主要代码,难点和疑问点都写在注释中:/** * 开始背景动画(此处为属性动画) */ private void startBackgroundAnimator(){ /* *参数解释: *target:设置属性动画的目标类,此处是当前自定义view所以使用this *propertyName:属性名称。(要对View的那个属性执行动画操作) *values数组:根据时间的推移动画将根据数组的内容进行改变 */ ValueAnimator anim = Obj...
阅读全文
posted @
2014-03-04 15:51
飘杨......
阅读(4458)
推荐(0) 编辑
Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
摘要:需求:制作一个加载动画,向一个不规则图片图形中从从下到上依次填充颜色,形成动画效果。效果如下:代码如下:LoadingAnimatorView.javapackage cn.yw.lib.animation;import cn.yw.lib.R;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.g
阅读全文
posted @
2014-03-04 11:59
飘杨......
阅读(4998)
推荐(0) 编辑
at android.view.Surface.unlockCanvasAndPost(Native Method)
摘要:at android.view.Surface.unlockCanvasAndPost(Native Method)在绘制动画特效的时候点击back键会报以上异常。主要原因:当点击back按钮时Activity退出视野。此时并不会出现画面更新情况,但是用于更新动画的线程仍然在工作,即flag = true。由于Activity已退出解锁操作holder.unlockCanvasAndPost(canvas);不能完成因此就会引发上述异常。解决办法: 1.在public void onBackPressed() {}函数中加上结束线程标记即flag= false; 2.在解锁画布操作的哪一行..
阅读全文
posted @
2014-03-04 11:30
飘杨......
阅读(1481)
推荐(0) 编辑