TellH的博客

总结,分享,提升

深入理解JVM方法调用的内部机制

我们都知道,Java源代码需要编译成字节码文件,由JVM解释执行,而方法调用可以说是很常见的操作。Java不同于C++,Java中的实例方法默认是虚方法,因此父类引用调用被子类覆盖的方法时能体现多态性。下面我们来看看JVM是如何完成方法调用操作并实现动态绑定的。栈帧结构为了能高效地管理程序方法调用...

2017-08-18 15:11:42

阅读数 2485

评论数 0

一起来造一个RxJava,揭秘RxJava的实现原理

RxJava是一个神奇的框架,用法很简单,但内部实现有点复杂,代码逻辑有点绕。我读源码时,确实有点似懂非懂的感觉。网上关于RxJava源码分析的文章,源码贴了一大堆,代码逻辑绕来绕去的,让人看得云里雾里的。既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能、兼容性、...

2017-05-10 15:33:46

阅读数 28529

评论数 16

你真的懂Java泛型吗

泛型实现参数化类型的概念,使代码可以应用于多种类型,解除类或方法与所使用的类型之间的约束。在JDK 1.5开始引入了泛型,但Java实现泛型的方式与C++或C#差异很大。在平常写代码用到泛型时,仿佛一切都来得如此理所当然。但其实Java泛型还是有挺多tricky的东西的,编译器在背后为我们做了很多...

2017-05-07 11:40:43

阅读数 3571

评论数 0

select/poll/epoll到底是什么一回事

面试题:说说select/poll/epoll的区别。 这是面试后台开发时的高频面试题,属于网络编程和IO那一块的知识。Android里面的Handler消息处理机制的底层实现就用到了epoll。

2017-05-04 14:08:47

阅读数 1736

评论数 0

浅谈Java反射的实现原理

Java反射的实现原理

2017-04-30 10:54:54

阅读数 5259

评论数 2

从字节码角度理解JVM异常处理机制的原理

前几天看到一条阿里巴巴的面试题:你了解try-catch块的实现原理吗? 我服,阿里的面试题就是有深度啊。要答好这一题,我觉得需要反编译一下.java源文件,因为字节码面前了无秘密。

2017-04-28 20:38:57

阅读数 1981

评论数 0

ThreadPoolExecutor源码初探

ThreadPoolExecutor线程池

2017-03-28 22:02:07

阅读数 758

评论数 0

图解Activity的启动过程

由于Activity的启动涉及大量IPC和Binder方面的知识,因此了解这方面的知识后再来看Activity启动的相关源码可能不会那么吃力。

2017-02-26 17:13:17

阅读数 4764

评论数 2

图解+源代码 全面理解Android View事件分发

View事件分发是Android里面非常重要的知识点,我查阅了很多资料,新建demo分析Log日志加以验证,总结成这篇博文。宏观的角度View 事件分发涉及到三种角色,三个方法,三种重点事件,分别是Activity,ViewGroup,View;dispatchTouchEvent, onInte...

2017-02-21 21:35:52

阅读数 691

评论数 0

浅析AIDL的使用和工作原理

AIDL是一种接口定义语言,用于生成可在Android设备上两个进程之间进行进程间通信(IPC)的代码。AIDL的使用 新建一个aidl文件,定义进程间通信的接口 // IStudentManager.aidl package com.tellh.androidart;// Declare any...

2017-02-14 15:41:25

阅读数 632

评论数 0

正则表达式必知必会

正则表达式必知必会本文共有2571字,阅读耗费11分钟。本文首发于个人博客:http://tanlehua.top/posts/tech/others/learn-regex/

2016-10-06 15:21:54

阅读数 3245

评论数 1

消灭模板代码,自定义AndroidStudio文件模板(2)

在上一篇讲到的自定义AndroidStudio文件模板的方法,但这种方法虽然简单却只能一次生成一个文件。有没有方法能一键生成一套文件呢?

2016-08-13 12:53:37

阅读数 2508

评论数 0

消灭模板代码,自定义AndroidStudio文件模板(1)

Previously我们日常开发肯定会或多或少遇到写模板代码的时候,比如写Adapter、写单例类、写用Parcelable实现序列化的相关代码、写实现Mvp架构的相关接口等等。但作为一个追求优雅编码的人,我一直崇尚“Write the code you have to write ”,快速高效地...

2016-08-12 23:08:26

阅读数 1377

评论数 1

用最优雅的方式startActivity

相信很多人看到标题startActivity可能会轻蔑一笑,启动Activity不是Android开发里基础得不能再基础的内容吗? 但相信点进来的各位看官都是追求优雅编码的开发者:) 。我要用一个优雅的姿势,最小的代码来启动一个Activity。

2016-08-04 13:33:39

阅读数 15406

评论数 15

对如何入门Android的一些建议

前言最近带学弟学Android,我想把我学Android的一些建议和感想整理出来,分享给更多有需要的人。工欲善其事,必先利其器 科学上网 俗话说,不会fanqiang的程序员不是好的程序员。事实上,很多好的学习资源都需要到墙外去获取,所以要学会科学上网哦! 推荐免费翻墙工具:lantern ...

2016-07-23 12:04:29

阅读数 1405

评论数 0

Huffman编码解压缩的通俗讲解

前言好久没写博客了,主要是各种事缠着,难以抽出时间。这两个月以来,由于项目需要,我也逼着自己学到了很多,什么java后台,web前端,还有万恶的OpenCV图形处理……,呵呵,全栈:( 。但对Android的学习我始终不肯放下。但是今天这篇博客不是关于Android的,而是算法的相关应用–哈夫曼压...

2016-04-30 14:56:14

阅读数 7443

评论数 7

解读Google官方SwipeRefreshLayout控件源码,带你揭秘Android下拉刷新的实现原理

前言想必大家也发现,时下的很多App都应用了这个Google出品的SwipeRefreshLayout下拉刷新控件,它以Material Design风格、适用场景广泛,简单易用等特性而独步江湖。但在我们使用的过程中,不可避免地会发现一些bug,或者需要添加某些特性来满足需求。出现这些问题,最好的...

2016-03-02 22:42:04

阅读数 9015

评论数 7

实现类似微信Viewpager-Fragment的惰性加载,lazy-loading

前言今天起床,拿起手机开机第一时间当然是打开微信了,左右滑动Viewpager,发现它使用了一种叫惰性加载,或者说懒加载(lazy-loading)的方式加载Viewpager中的Fragment。效果如图: 什么是lazy-loading呢?顾名思义就是在必要的时候才加载,否则不进行View的...

2016-02-20 20:47:36

阅读数 11141

评论数 8

偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder

前言昨天开始接触江湖口碑很好的RecyclerView,事实上,我已经被她的强大所征服了!资源回收,数据绑定,布局显示,分割线,Item动画多个模块高度解耦,灵活优雅。其实,RecyclerView在使用上已经是相当简单了(个人觉得),但仍有很多代码是可以加以封装的。今天受简书上一篇博文的启发,作...

2016-02-15 21:56:07

阅读数 8172

评论数 3

判断Listview滑到顶部的最精准方案,解决Listview设置EmptyView与SwipeRefreshLayout冲突

故事发生的背景SwipeRefreshLayout是谷歌自家控件,提供下拉刷新的功能。然而这个控件简单易用的同时也有一个令人头疼的缺点,那就是它里面只能包含一个子View!有一天,需求来了,需要在为Listview添加EmptyView和下拉刷新,同时当显示EmptyView时也要求有下拉刷新。尝...

2016-02-14 13:29:01

阅读数 3798

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭