上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页

2013年11月1日

Java Atomic

摘要: 十五年前,多处理器系统是高度专用系统,要花费数十万美元(大多数具有两个到四个处理器)。现在,多处理器系统很便宜,而且数量很多,几乎每个主要微处理器都内置了多处理支持,其中许多系统支持数十个或数百个处理器。要使用多处理器系统的功能,通常需要使用多线程构造应用程序。但是正如任何编写并发应用程序的人可以告诉你的那样,要获得好的硬件利用率,只是简单地在多个线程中分割工作是不够的,还必须确保线程确实大部分时间都在工作,而不是在等待更多的工作,或等待锁定共享数据结构。问题:线程之间的协调如果线程之间不需要协调,那么几乎没有任务可以真正地并行。以线程池为例,其中执行的任务通常相互独立。如果线程池利用公共工作 阅读全文

posted @ 2013-11-01 14:37 小嘟 阅读(647) 评论(0) 推荐(0)

android面试题

摘要: 1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念:答:dvm是dalivk虚拟机。每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实例。而每一个dvm都是在linux的一个进程。所以说可以认为是同一个概念。2.android的动画有哪几种?他们的特点和区别是什么?答:两种,一种是tween动画,一种是frame动画。tween动画,这种实现方式可以使视图组件移动,放大或缩小以及产生透明度的变化。frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。3.handler进制的原理:答:android提供了han 阅读全文

posted @ 2013-11-01 14:10 小嘟 阅读(299) 评论(0) 推荐(0)

多线程Callable和Future

摘要: 关于多线程Callable和Future 实现多线程我们可以继承Thread类或者实现Runnable接口,通过Thread类把run()方法包装成线程执行体,但是这两种方法都不能直接把任意方法直接包装成线程执行体,比如说一个带返回值的方法,或者一个抛异常的方法。 从java 5开始,Java提供了Callable接口,该接口是Runnable接口的增强版,Callable接口提供了一个call()方法,可以作为线程执行体,但call()方法比run()方法的功能更强大。call()方法可以有返回值。call()方法可以声明抛出异常。因此我们完全可以提供一个Callable对象作为Thread 阅读全文

posted @ 2013-11-01 11:44 小嘟 阅读(418) 评论(0) 推荐(0)

volatile和synchronized

摘要: 这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两种关键字来指定三种简单的存取变量的方式。 int i1; int geti1() {return i1;}volatile int i2; int geti2() {return i2;}int i3; synchronized int geti3() {return i3;}geti1()在当前线程中立即获取在i1变量中的值。线程可以获得变量的本地拷贝,而所获得的变量的值并不一定与其他线程所获得的值相同。特别... 阅读全文

posted @ 2013-11-01 10:03 小嘟 阅读(235) 评论(0) 推荐(0)

2013年10月29日

Bitmap.Config

摘要: Bitmap.Config下面有4个参数:Java代码Bitmap.Config ALPHA_8Bitmap.Config ARGB_4444Bitmap.Config ARGB_8888Bitmap.Config RGB_565首先Java代码A:Alpha透明度R:Red红色G:Green绿色B:Blue蓝色然后Java代码Bitmap.Config ALPHA_8 图形参数应该由一个字节来表示,应该是一种8位的位图Bitmap.Config ARGB_4444 图形的参数应该由两个字节来表示 分别用4个bit来记录每个像素的A、R、G、B数据,16色位图Bitmap.Config ARG 阅读全文

posted @ 2013-10-29 18:11 小嘟 阅读(421) 评论(0) 推荐(0)

setXfermode

摘要: 设置两张图片相交时的模式我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint;而setXfermode就可以来解决这个问题一般来说 用法是这样的[java]view plaincopyCanvascanvas=newCanvas(bitmap1);paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(mask,0f,0f,paint);就是在图片bitmap1上面绘制图片mask时 处理两者相交时候显示的问题can 阅读全文

posted @ 2013-10-29 17:50 小嘟 阅读(223) 评论(0) 推荐(0)

BitmapFactory.Options

摘要: 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfMemoryError),只有在BitmapFactory加载图片时使用BitmapFactory.Options对相关参数进行配置来减少加载的像素。加载和显示图片是很消耗内存的一件事,BitmapFactory.Options 类, 允许我们定义图片以何种方式如何读到内存,BitmapFactory.decodeFile(imageFile);用BitmapFactory解码一张图片时,有时会遇到 阅读全文

posted @ 2013-10-29 15:08 小嘟 阅读(439) 评论(0) 推荐(0)

ConcurrentHashMap

摘要: ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。现在总算理解ConcurrentHashMap实现机制了,其实现之精巧,令人叹服,与大家共享之。实现原理锁分离 (Lock Stripping)ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的has 阅读全文

posted @ 2013-10-29 09:00 小嘟 阅读(416) 评论(0) 推荐(0)

2013年10月26日

Environment

摘要: 1、讲述 Environment 类Environment 是一个提供访问环境变量的类。Environment 包含常量:MEDIA_BAD_REMOVAL解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除MEDIA_CHECKING解释:返回getExternalStorageState() ,表明对象正在磁盘检查。MEDIA_MOUNTED解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限MEDIA_MOUNTED_READ_ONLY解释:返回getExternalStorageState() , 阅读全文

posted @ 2013-10-26 21:45 小嘟 阅读(410) 评论(0) 推荐(0)

wait(),notify(),notifyAll()

摘要: 在多线程的情况下,由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。wait与notify是java同步机制中重要的组成部分。结合与synchronized关键字使用,可以建立很多优秀的同步模型。synchronized(this){ }等价于publicsynchronized void method(){.....}同步分为类级别和对象级别,分别对应着类锁和对象锁。类锁是每个类只有一个,如果static的方法被synchronized关键字修饰,则在这个方法被执行 阅读全文

posted @ 2013-10-26 21:07 小嘟 阅读(497) 评论(0) 推荐(1)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页

导航