- 博客(14)
- 资源 (10)
- 收藏
- 关注

转载 [干货]2017已来,最全面试总结——这些Android面试题你一定需要
var protocol = window.location.protocol; document.write(''); [干货]2017已来,最全面试总结——这些Android面试题你一定需要 - xhmj12的博客 - 博客频道 - youkuaiyun.com
2017-03-11 20:51:27
3294
原创 channel的实现原理
channel的实现,都在$GOROOT/src/pkg/runtime/chan.c里它是通过共享内存实现的。 struct Hchan { }ch := make(chan interface{}, 5) 具体的实现是chan.c里的 Hchan* runtime·makechan_c(ChanType *t, int64 hint) 此时,hint=5, t=interface{}它完
2018-01-17 18:07:42
2123
原创 android通过sdk调不起微信原因
微信经常不能调起,并且缺乏必要的日志,给定位错误带来了极大困难。本人从appid的生成过程来分析微信不能被调起的原因。给刚接触微信支付的人带来一些启示。
2017-10-10 19:39:33
4941
原创 java原子操作实现原理
在了解java原子操作之前我们需要先了解并发编程,java内存模型,volatile以及CAS算法。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。并发编程 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-
2017-03-18 19:32:43
1349
原创 ViewStub和Gone区别
虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。 推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Infl
2017-03-18 19:01:13
2431
转载 AbstractQueuedSynchronizer原理分析
简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同
2017-03-18 14:55:49
385
原创 serialVersionUID作用
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常InvalidCastException
2016-12-29 17:55:58
310
原创 VSync及UI平滑技术
VSync及UI平滑技术Android4.1中一个很大的改进是UI动画显得更平滑流畅。其中的关键技术就是vsync timing和triple buffer。1 Android4.1新画图特点1.1 VSync的作用上面是一张没有Vsync控制的画图过程:当frame0在屏幕上显示时,frame1先在CPU里准备,再在GPU中render到显示内存,最后在下一个VSYN来到时,把frame1切换到
2016-05-09 19:54:37
1820
原创 BlockCanary分析android卡顿
BlockCanary分析android卡顿在复杂的项目环境中,由于历史代码庞大,业务复杂,包含各种第三方库,所以在出现了卡顿的时候,我们很难定位到底是哪里出现了问题,即便知道是哪一个Activity/Fragment,也仍然需要进去里面一行一行看,动辄数千行的类再加上跳来跳去调来调去的,结果就是不了了之随它去了,实在不行了再优化吧。于是一拖再拖,最后可能压根就改不动了,客户端越来越卡
2016-04-11 20:18:42
10881
1
原创 LeakCanary源码分析
LeakCanary是一个Android内存泄露自动分析工具,具有简单易用,结果可读性强,不仅适用于Android开发人员,也适用于测试人员使用。能快速提高软件质量。
2016-03-17 19:37:13
1018
原创 Android内存泄漏分析及实践(三)-leakCanary
android应用程序本身系统分配的内存很少,一旦发生泄漏,程序很快就会变得非常卡顿,直至OOM崩溃。程序猿需要在Coding的时候注意静态变量的使用,以及注册监听器记得反注册,否则当程序出现内存泄露之后再去分析就变得相当困难。通过code review很难发现深层次的内存泄露问题。
2016-03-17 16:52:24
741
原创 Android内存泄漏分析及实践(二)
可以通过查询ReferenceQueue是否包含WeakReference实例,判断弱引用指向的对象 o是否被系统回收。所以根据这个理论我们可以写一个简单的内存泄露工具
2016-03-17 15:45:00
443
原创 Android内存泄漏分析及实践(一)
写本博客的目的是希望广大程序猿平时写android(java)代码的时候充分认识到内存问题不仅仅是C,C++才会出现的。虽然JVM帮助程序猿对内存进行管理,但是还是存在内存无法释放的情况,导致该释放的内存无法被系统回收。导致程序不断GC,造成程序卡顿,甚至出现ANR或者OOM。
2016-03-17 10:50:17
656
android高级编程pdf版
2013-04-10
Hibernate与Struts 2整合,学生选课系统源代码
2010-07-23
Spring与Hibernate整合,Spring与Struts2整合源代码
2010-07-23
struts2,spring,herbent(ssh)3个框架整合源代码
2010-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人