java Atomic用法 value++ 因为被关键字 synchronized 修饰,所以会在各个线程间同步执行。但是 value++ 消耗的时间很有可能比线程状态转换消耗的时间还短,所以说 synchronized 是 Java 语言中一个重量级的操作。
retrofit+rxjava2使用中遇到的一些问题 retrofit+rxjava2使用中遇到的一些问题1、网络code为204或者205不回调问题原因:retrofit中OkHttpCall里此处拦截了导致,需要自己针对此种情况处理正在上传…重新上传取消解决:需要在自定义的公共常规拦截器的intercept处理:具体如下:如HttpBaseInterceptor 里intercept里正在上传…重新上传取消抛出异常可以参考RealInterceptorChain.java:147行的;抛出异常后rxjava2会捕获回调到
Java 中 ClassLoader 注意:“双亲委派”机制只是 Java 推荐的机制,并不是强制的机制。我们可以继承 java.lang.ClassLoader 类,实现自己的类加载器。如果想保持双亲委派模型,就应该重写 findClass(name) 方法;如果想破坏双亲委派模型,可以重写 loadClass(name) 方法。
Android Drawable的ConstantState共享问题解决,并从源码层分析其原因 在平时开发中,我们有时候会用到设置图片的透明的功能,不假思索的情况下,我们自然就会通过设置getBackground().setAlpha(XXX)来去达到我们的目的,但是我们后续会发现白色背景变成透明的状况,并且引发很多界面出现颜色错乱的问题,是不是很无奈呢?这个问题,我们网上一搜也都久知道怎么解决了?通用解决方式:getBackground().setAlpha(XXX)改成getBackground().mutate().setAlpha(XXX);这样就解决了。我们在往后面看其他的解释,也
JVM 中的内存划分、GC 回收机制与分代回收策略 Android 工程师进阶模块一:JVM 与 DVM 必知必会1、程序运行时,内存到底是如何进行分配的?(1)程序计数器(Program Counter Register)Java 程序是多线程的,CPU 可以在多个线程中分配执行时间片段。当某一个线程被 CPU 挂起时,需要记录代码已经执行到的位置,方便 CPU 重新执行此线程时,知道从哪行指令开始执行。这就是程序计数器的作用。(2)虚拟机栈的初衷是用来描述 Java 方法执行的内存模型,每个方法被执行的时候,JVM 都会在虚拟机栈中创建一个栈帧
LeakCanary的Activity的监听泄漏流程(代码层粗略梳理),并附加引用优化和引用队列的例子 LeakCanary的Activity的监听泄漏流程:LeakCanary.installl()—〉AndroidRefWatcherBuilder.buildAndInstall()—〉RefWatcher创建—〉ActivityRefWatcher.install(context, refWatcher)—〉ActivityRefWatcher.install#registerActivityLifecycleCallbacks—〉lifecycleCallbacks.onActivityDes
android UncaughtExceptionHandler的使用 在android开发中,经常会用到第三方统计崩溃sdk,好奇他们怎么实现的,于是看了一下相关资料;了解到主要用到 Thread.UncaughtExceptionHandler 来捕获出现的异常信息;知道此种捕获方式后,于是自己去写一下验证一下!在此mark一下!1.实现要去写一个工具类,实现此UncaughtExceptionHandler 接口,并写成单例; 如下:pu...
java何时使用equals和hashcode? 1. List使用List.removeall(),remove()去重时,直接remove是比较对象地址,如果想比较其内的值相等就相等的话则equals就返回true,只需要重写equals,无需重写hashcode,此时这两个对象的hashCode是不同的(理论上如此),经验之谈的话。两个都重写较好,根据实际情况; 2. Set和Hashmap的使用contain,需要重写 equals...
android listview侧滑相关文章 1.http://blog.csdn.net/lmj623565791/article/details/22961279 http://blog.csdn.net/sinat_27681957/article/details/51854525 重写listview实现2.http://www.jianshu.com/p/d738bfcac7c7 自定义item的layout与ViewD...
Android端实现单点登录的方法详解 原文链接:http://www.jianshu.com/p/3307b7956acf所谓单点登录就是指的同一个账户(id)不能在一个以上的设备上登录对应的用户系统(排除web端和移动端可以同时登录的情况),例如:用户m在A设备登录并保持登录状态,然后又在B设备登录,此时A应该要强制下线,m无法在A设备上继续执行用户相关的操作,下面来一起看看吧。前言单点登录SSO(Single Sign...
android TextView 显示不全的问题解决,此问题是设置了maxLines和ellipsize=end情况下发生的! 今天写列表时,一行文本有时一行有时多于一行,于是本人设置了android:maxLines="2",android:ellipsize="end",结果列表的这一列就显示不全了,既然出问题了,就得解决呀,一顿找问题;本来想图方便网上找一下原因,结果发现没有此类问题或者 都没有给出解决方案;还是自己找原因吧; 后来发现 了问题,此控件 的父布局是LinearLayout,...
android Relativelayout 某控件设置layout_alignParentRight=true,整行不显示问题 今天开发时,遇到android Relativelayout 某控件设置layout_alignParentRight=true,其他控件都是通过layout_toLeftOf 依附于它显示,整行则不显示;最开始一直找不到问题,问题来了,只能依次排查 控件 隐藏代码了;最终 发现,隐藏此控件时整行则不显示;因此要慎用此种情况的隐藏控件!即此种情况下,最右边的此控件不能setVisibility(...
【解惑】领略Java内部类的“内部” 转载自:http://android.blog.51cto.com/268543/384809标签:Java 职场 休闲 内部类内部类有两种情况:(1) 在类中定义一个类(私有内部类,静态内部类)(2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中内部类的两个特点: (1) 在外部类的作用范围内可以任意创建...
Java内部类的使用小结 Java内部类的使用小结引自:http://android.blog.51cto.com/268543/384844/内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念...
ScheduleExecutorService ScheduleExecutorService1.按指定频率周期执行某个任务。初始化延迟0ms开始执行,每隔100ms重新执行一次任务。[java] view plain copy/** * 以固定周期频率执行任务 */ public static void executeFixedRate() { ScheduledExecutorService executor = Execu...
ScheduleExecutorService,周期性线程池 ScheduleExecutorService1.按指定频率周期执行某个任务。初始化延迟0ms开始执行,每隔100ms重新执行一次任务。[java] view plain copy/** * 以固定周期频率执行任务 */ public static void executeFixedRate() { ScheduledExecutorService executor = Execu...
Intent过滤 如果我们的app的功能对别的app也有用,那么其应该做好响应的准备。例如,如果创建了一个social app,它可以分享messages 或者 photos 给好友,那么最好我们的app能够接收ACTION_SEND 的intent,这样当用户在其他app触发分享功能的时候,我们的app能够出现在待选对话框。通过在manifest文件中的<activity>标签下添加<inten...
android setContentView分析 1.http://www.jianshu.com/p/3b4dc52fbae4 2.http://www.jianshu.com/p/16d156bdfd04