5 new洪彬

尚未进行身份认证

亮出你的锟斤拷

等级
TA的排名 25w+

我应该标记一下的java同步知识

synchronizedsynchronized使用起来非常的方便,但是方便不等于简单,里面涉及的知识点还是挺多的,这里简单记录一点笔记。首先记录一下我所认识的锁,任何对象在头信息里都有一个锁标记,类也是特殊的对象(class对象),同一时刻只能有一个线程能持有这个锁,当用synchronized时,线程会获取锁,别的线程想要获取这个锁时只能等待这个线程释放锁。这两天看了很多人的文章...

2019-07-10 13:56:42

ThreadLocal · 源码解读

        第一次知道ThreadLocal是在看Looper源码的时候知道的,那时候只知道它的作用是让数据在各个线程单独保持一份,互不干扰,也一直没有去研究它的具体实现。昨天下班前粗略地看了一遍,我心里想的是“这玩意儿真的是太麻烦了,要是我的话,直接在线程里维护一个Object数组就能实现这个功能啊”。然后下了班回到家,我又仔仔细细的看了一遍,果然大佬还是你大佬,我还是太天真了。     ...

2018-06-01 11:26:39

一点一点啃RxJava(四#背压#)

        emmmm......本来我以为Rxjava应该写完了,但是仔细想想,还有一个比较重要的概念还没有涉及到,那就是“背压”。        一开始看RxJava的文档时看到背压这个概念的时候我是拒绝的,因为,你不能说这是背压,我就能理解这就是背压,我要自己试一下,我试过之后再告诉你们,我试过之后知道这是背压,你们看完之后也会知道。      想象一个经典的生产者消费者模型,生产者...

2018-05-14 14:10:20

一点一点啃RxJava(三#操作符#)

本文将分析RxJava2中常见的操作符。·justjust的作用是将参数依次发射出来,而且有很多的重载方法除了单参数的之外,别的方法都会调用fromArray,这个放到后面说。        just单参数方法返回ObservableJust对象:publicfinalclassObservableJust<T>extendsObservable<T>impl...

2018-04-25 17:11:01

一点一点啃RxJava(二#线程调度#)

        用RxJava实现线程切换是非常方便的,而且线程切换也是RxJava最大的特点之一。        依旧是先上一段示例代码和执行结果Observable.create(newObservableOnSubscribe<Object>(){@Override...

2018-04-24 10:18:20

一点一点啃RxJava(一#观察者模式实现#)

        项目里的网络库替换成RxJava+Retrofit也已经大半年了,之前因为时间紧,也一直没有来得及去看具体的实现原理,现在打算打算完整地梳理一遍RxJava,好东西当然要学习学习。        扔物线的给Android开发者的RxJava详解这篇文章对刚开始接触RxJava的同学非常友好,建议像我一样的可以先去了解一下,不过他那篇文章是基于RxJava1.0的,本文涉及到...

2018-04-19 18:05:21

Activity启动模式的那点事

要说Activity是Android四大组件最重要的一点也不为过,因为用户最能直观感受的也就是Activity。在讲启动模式之前有两个概念要先理一理,Stack和Task。TaskActivity是显示以及用户直接进行交互的组件,我们可以简单理解为许多个Activity组合在一起就是一个app。而这么多的Activity就在一个或多个Task中。StackActivity存在于Ta

2017-07-31 18:53:07

Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?

0、写在前面本文涉及到屏幕密度的讨论,这里先要搞清楚DisplayMetrics的两个变量,摘录官方文档的解释:density:Thelogicaldensityofthedisplay.ThisisascalingfactorfortheDensityIndependentPixelunit,whereoneDIPi

2017-04-24 09:53:12

Android广播的源码解析

最近打算把Android基础的一些知识再深入一点,所以就打算从四大组件开始入手,广播是经常使用的,但是也仅仅只停留在会用,却不知其原理,就着这个机会把源码给撸一遍吧。publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){

2017-03-29 14:03:19

Android SQLite使用

数据库是Android的一种数据存储方式,但是SQLiteOpenHelper是抽象类,我们需要自己写一个实现类来实现onCreate方法和onUpgrade方法,这两个方法分别会在数据库创建和更新的时候调用到。getWritableDatabase方法和getReadableDatabase方法分别返回一个可写的数据库和一个可读的数据库。如果发现数据库不存在,就会调用onCreate方法创建一个数据库,如果版本号升级就调用onUpgrade升级数据库。创建的数据库在/data/data/xxx(pac

2017-03-06 14:37:32

TCP UDP、Socket

TCP(TransmissionControlProtocol传输控制协议)优点在于信息传输的稳定性、可靠性,传输前进行三次握手确定连接;缺点在于效率相对较低,且头部较大。UDP(UserDataProtocol,用户数据报协议)优点在于传输速度较快,指定地址和端口号就能直接传输数据;缺点在于传输前没有连接确认,有可能会出现丢包的现象。TCP和UDP都是传输层的协议,区别在传输前

2016-12-23 17:18:40

adb 命令

命令解释adbshell启动adblogcat-c清除所有log日志logcat*:e查看所有错误logcat-sxxx查看log“xxx”的信息cat/proc/meminfo查看手机内存情况ps查看所有进程ps|grepxxx过滤显示“xxx”的进...

2016-11-29 13:20:00

base64 加密方式详解

base64加密方式详解base64编码表命名base64是用于传输8Bit字节代码,由上图的编码表可以知道,编码后的内容只包含这64个字符类型,所以称为base64编码(不足四个字符的时候会用‘=’来补足,下面会说明)。编码过程首先将待编码的内容转换成8位二进制,每3个字符为一组;如果编码前的长度是3n+1,编码后的内容最后面补上2个‘=’,如果编码前的长度是3n+2,编码

2016-11-24 15:09:42

线程、多线程、线程池

·线程线程是操作系统能够进行运算调度的最小单位,线程被包含在进程中,一个进程至少包含一个线程,进程也可以并发的执行多个线程。线程的生命周期:新建状态(New)新创建了一个线程,还没有调用.start()启动。就绪状态(Runnable)调用.start()方法,启动了该线程,等待CPU的调度。运行状态(Running)获取到了CPU使用权,执行代码。阻塞状态

2016-05-24 10:29:32

HttpURLConnection发送Get和Post请求

HttpURLConnection是java的标准类,可发送get请求和post请求。关于Get和Post的区别,这里就不细说了,网上普遍的说法是:1、GET请求是从服务器上获取数据,POST请求是向服务器传送数据。2、GET的请求参数放在URL链接中,POST的请求参数放在body中。3、GET的URL会有长度上的限制,则POST的数据则可以非常大。4、POST比GET安全,因为数据在地址栏上不可见。5

2016-05-17 18:07:29

Parameter must be a descendant of this view 错误

Parametermustbeadescendantofthisview相关最近做的项目,有ListView的嵌套问题,但是在某些机型上面会崩溃,报Parametermustbeadescendantofthisview异常,我查了很多资料,都说是在移除一个View的时候没有把这个View的焦点一起移除。我也不能解释得很清楚,有类似问题的可以查阅以下两个链接http:/

2016-05-06 12:37:14

AsyncTask注意事项

昨天看《Android开发艺术探索》的时候,对AsyncTask中的几个点比较感兴趣:先贴源码注释截图1、AsyncTask不适合特别耗时的任务     AsyncTask的生命周期和Activity的生命周期不同步,Activity销毁了但是AsyncTask中的任务还是会继续执行完毕,一个最典型的例子就是Activity的横竖屏切换,AsyncTask中引用的Act

2016-03-30 10:07:37

Android中从ImageView中取出图片bitmap注意事项

最近在工作中遇到一个需求,是在做视频播放器时,要求中间的播放按钮是毛玻璃效果。这就要在这个图片的相应位置取出bitmap对象,然后进行模糊处理再设置回去。这张图片是从服务端异步获取的,所以在获取图片完成时会设置完整个控件的大图,然后我再从空间中取出我需要的那一小块bitmap.bitmap=Bitmap.createBitmap(imageVie

2016-03-26 15:28:04
勋章 我的勋章
    暂无奖章