自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (6)
  • 收藏
  • 关注

原创 动态代理学习笔记

动态代理的实现流程(JDK版)预备工作:指定类加载器,被代理的接口,一个代理类(在JDK的动态代理中以InvocationHandler接口的形式存在)工作步骤:动态代理顾名思义就是要动态的生成一个代理类来代替静态代理中程序员手写代理类的方式,类似于一种生成自动生成代理类的框架(姑且叫框架没想到好的词),那我们需要一个怎样的代理类? 答案是 1.代理类需要具有执行被代理类方法的能力 JDK中通过

2017-09-23 22:34:04 315

转载 数据仓库的一些基本概念

数据仓库从下到上 原始层 基础层 集市层 应用层 DWD:data warehouse detail 细节数据层,有的也称为 ODS层,是业务层与数据仓库的隔离层 DWB:data warehouse base 基础数据层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。 DWS:data warehouse service 服务数据层,基于DWB上的基础数据,整合汇总成分析

2017-07-15 11:05:24 719

原创 Spark2.X源码学习--从SparkContext创建分析AppClient注册

spark appclient的注册过程

2017-07-15 11:02:01 663

转载 ElasticSearch中,集群(Cluster),节点(Node),分片(Shard),Indices(索引),replicas(备份)之间的关系

Cluster包含多个node,Indices不应该理解成动词索引,Indices可理解成关系数据库中的databases,Indices可包含多个Index,Index对应关系数据库中的database,它是用来存储相关文档的。Elasticsearch与关系数据的类比对应关系如下:Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ ColumnsE

2017-05-19 11:32:12 1781

原创 多个属性动画同时执行的方法

用ValueAnimator ValueAnimator animator = ValueAnimator.ofFloat(0f,200f); animator.setDuration(200); animator.addUpdateListener(new AnimatorUpdateListener() { @Override

2017-03-15 20:04:29 8192

原创 非Activity下跳转Activity的问题

Service继承自ContextWrapper,ContextWrapper的startActivity最终调用的是ContextImpl的startActivity,代码如下,会先检查Intent的Flag@Override public void startActivity(Intent intent, Bundle options) { warnIfCallingFr

2017-03-15 19:56:40 803

原创 外观模式的简单理解

最近在OKHttp源码的时候看到了Intercept接口,了解到了其中运用的设计模式—-责任链模式。回想起了曾经学习struts时候的拦截器,感觉很想,决定了解下什么是责任链模式。 先写一个小的demo:模拟日志输出。 日志基类:public abstract class BaseLogger { private int level; private BaseLogger ne

2017-03-06 21:39:10 421

转载 如何在 Git 里撤销(几乎)任何操作(转)

如何在 Git 里撤销(几乎)任何操作任何版本控制系统的一个最有的用特性就是“撤销 (undo)”你的错误操作的能力。在 Git 里,“撤销” 蕴含了不少略有差别的功能。当你进行一次新的提交的时候,Git 会保存你代码库在那个特定时间点的快照;之后,你可以利用 Git 返回到你的项目的一个早期版本。在本篇博文里,我会讲解某些你需要“撤销”已做出的修改的常见场景,以及

2017-02-21 20:04:25 321

原创 学习计划

1高级UI绘制(学习周期2个月)UI流程绘制分享源码级分析、View的测量、View的布局、View的绘制过程绘图及特效制作Paint画笔高级技能(Paint的方法使用技巧、高级渲染(BitmapShader位图渲染、LinearGradient线性渲染、RadialGradient环形渲染、SweepGradient扫描渐变渲染、ComposeShader

2017-02-16 17:10:46 648 1

转载 深入理解javascript中的立即执行函数(function(){…})()

这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包住业务代码,使用jquery时比较常见,需要的朋友可以参考下javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascrip

2017-01-31 13:58:33 547

原创 Actvity启动过程涉及到的数据结构

TaskRecord:记录Activiyt栈的信息,持有一个ArrayList<ActivityRecord>和ActivityTaskActivityRecord:记录Activiyt的信息,持有一个ActivityInfoActivityStack:持有一个TaskRecord的list:ArrayList<TaskRecord> mTaskHistory = new ArrayList<Tas

2017-01-28 17:54:35 241

原创 Activity启动流程笔记(二)

接着Activity启动流程笔记(一)来写,这个启动过程可以看做是C/S模式的通信,那么一分析的是Client端,这篇文章看看Server端做了哪些事情。public final int startActivity(IApplicationThread caller, String callingPackage, Intent intent, String resolvedT

2017-01-28 17:39:17 499

原创 Activity启动流程笔记(一)

从startActivity开始说起:public void startActivity(Intent intent, Bundle options) { if (options != null) { startActivityForResult(intent, -1, options); } else { // Not

2017-01-27 10:18:52 271

转载 什么是VSync

VSync是垂直同期(Vertical Synchronization)的简称。基本的思路是将你的FPS和显示器的刷新率同期起来。其目的是避免一种称之为"撕裂"的现象。再下面我将详细介绍这些内容。每一台CRT显示器都有自己的刷新率。其单位是HZ.其数值是显示器每秒钟更新画面的次数。不同的显示器支持再不同分辨率下的不同刷新率。它的范围可以从低到60高到100。注意它不是你游戏中所

2016-10-13 15:38:55 990

转载 JS中的let变量

js中let和var定义变量的区别,主要体现在作用于的不同。var定义的变量是全局变量或者函数变量。let定义的变量是块级的变量。例如:while(1){ let let1 = 2; var var1 = 2;} alert(let1); //不可访问 alert(var1); //可以访问也就是说,let只对它所在的最内侧块内有效,而va

2016-09-19 15:12:11 3353

原创 hadoop学习笔记(1)

1.HDFS架构:NameNode保存元数据信息,包括文件的owner,permission,block存储信息等。存储在内存。2.HDFS设计思想文件以块的形式存贮,即block,大小为64M,大于64的文件分块,小于64则为1块。文件在上传的时候会产生副本,副本与原文件在不同的节点上,这样当一个节点挂掉后不至于丢失文件。节点挂掉后会在空闲节点生成损失的文件,

2016-04-15 17:26:22 1222 1

原创 Android view中invalidate方法学习小节

/**     * Invalidate the whole view. If the view is visible,     * {@link #onDraw(android.graphics.Canvas)} will be called at some point in     * the future. This must be called from a UI thread

2016-04-03 19:16:28 1721

转载 Android开发之内存管理

学习了下android的SDK里对内存管理部分的描述,结合搜集的一些资料汇分享总如下:在任何软件开发环境中,RAM都是非常宝贵资源。在移动操作系统里,由于物理内存的限制,它会变得更加的宝贵。虽然Android的Dalvik虚拟机会常规的执行垃圾回收,但是开发人员仍然不能忽略什么时候、在哪里申请和释放内存资源。为了能够使垃圾回收器从应用里正常的回收内存资源,开发人员需要避免产生内存泄露,注意

2016-02-22 16:33:06 437

转载 Android进程的内存管理分析

尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系

2016-01-29 17:59:35 306

原创 电视应用开发遇到的问题的总结

电视应用开发中主要用到遥控器的的按键事件,按键事件和触摸事件一样最初被Activity捕获,初步传递到最里面的View,返回false的话抛给上一层,最终抛回给activity,但是遥控器按键也分为按下和抬起,但是默认一般只处理按下的逻辑,所以需要在dispatchKeyEvent方法中先筛选down事件(down和up二选一即可),不然会执行两次dispatch逻辑,一次是down的一次是up的

2015-12-31 20:45:18 339

转载 ADB使用方法及常用命令

ADB是android sdk里的一个工具, 它的主要功能有:    运行设备的shell(命令行)     管理模拟器或设备的端口映射     计算机和设备之间上传/下载文件     将本地apk软件安装至模拟器或android设备ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.先说安装方法, 电脑上需要安装客

2015-12-30 17:58:48 450

转载 重磅教程!帮你全面彻底搞定MATERIAL DESIGN的学习笔记

自从Material design发布以来,可乐橙就在一直收集相关素材与资源,研究别人的作品。这套设计风格非常鲜明,带有浓郁的Google式严谨和理性哲学,深得我心。实际上,光是研究素材和别人作品,就能发现一些明显的规律,做出几分相似的设计。这样半吊子的状态一直保持到现在,最近有时间通读一遍官方的设计指南,终于有了深入的理解。在朋友的项目(http://lydiabox.com)中实践了一番,虽然

2015-12-23 13:54:00 1234

转载 2015年Android开发新技术盘点

又到年末, 利用中午的时间,汇总盘点一下今年Android开发方面的新技术,感觉现在Android开发没有以前那么纯粹了,出现了很多新的开发模式。2015年影响比较普遍的新技术应该就是Material Design了,毕竟现在的新手机系统基本都升到Android5.1了, 个别的手机已经升到Android 6了,其它例如DataBinding, RxAndroid,React native等的

2015-12-17 16:33:55 865 1

转载 What is the difference between addView and addViewInLayout?

转自stackoverflow Its generally a bad idea to call addView inside onLayout because addView internally triggers a requestLayout which eventually will call onLayout. So you end

2015-12-17 16:21:21 1425

原创 hasStableIds的作用

如果hasStableIds返回false的话 每次调用notifyDataSetChanged方法时 adapter就会判断getItemId 并且在只调用那些Item发生变化的getView方法,说白了就是通过getItemId来判断那些需要getView从而达到局部刷新的效果,在getView比较耗时的情况下起到优化的效果。下面是stackoverflow的原文,并给出了用例。

2015-11-10 20:41:02 8362 1

原创 Scroller类及scroll相关方法总结

Scroller是一个辅助滚动的类,有一个startScroll方法,顾名思义就是开始滚动,但是他的源码中并没有真正滚动的代码,看下startScroll源码/** * Start scrolling by providing a starting point, the distance to travel, * and the duration of the scroll

2015-10-18 15:10:42 827

转载 Java中字符串switch的实现细节

自从Java允许在switch及case语句中使用字符串以来,许多开发人员都使用了这一特性,不过如果使用整型或者枚举的话会更好。这是JDK7中最受欢迎的特性之一,同样的还有自动资源管理以及多异常捕获。尽管我个人不太喜欢这个特性,因为使用枚举的方式其实更好,但我并不是特别反对使用它。一个原因当然是它很方便,如果程序中已经用到了字符串,这样做的确很顺手,不过我建议在生产环境的代码中使用新特性之前最好了

2015-10-08 13:57:46 2112 1

原创 android中AdapterView的观察者模式

首先介绍一下Observer类和Observable类public abstract class DataSetObserver { /** * This method is called when the entire data set has changed, * most likely through a call to {@link Cursor#reque

2015-09-20 20:09:47 487

转载 Android App 内存泄露

Android App 内存泄露之HandlerHandler也是造成内存泄露的一个重要的源头,主要Handler属于TLS(Thread Local Storage)变量,生命周期和Activity是不一致的,Handler引用Activity会存在内存泄露。看一下如下代码[html] view plaincopy/**   *    * 实现的主要功能。   * @vers

2015-09-17 11:46:53 395

原创 ThreadLocal存储原理

首先每一个Thread都有一个ThreadLocal.Values类型的localValues变量,ThreadLocal的set,get方法如下:public void set(T value) { Thread currentThread = Thread.currentThread(); Values values = values(currentThre

2015-09-15 19:40:44 1173

转载 Android drawable selector foucus,pressed,selected的区别

android:state_pressed 是否按下,如一个按钮触摸或者点击。android:state_focused 是否取得焦点,比如用户选择了一个文本框。android:state_hovered 光标是否悬停,通常与focused state相同,4.0的新特性android:state_selected 被选中,它与focus state并不完全一样,如一个list vie

2015-09-10 13:59:14 620

转载 final变量

从jdk1.0到今天,JAVA技术经过十余年的发展,技术上已经发生了巨大的变化.但final变量的定义从它诞生那天起,就没有发生任何变化,也就是这十多年它就一直表示它原来的意思.但遗憾的是,经过十多年仍然有90%的人没有理解它的真实含义,也没有一篇文章,包括我所见到的所有介绍JAVA的书籍(包括TKJ)都没有说清楚,我相信肯定有些作者是理解的,但没有一个作者向读者说清楚.而中国网友

2015-09-05 18:32:38 293

原创 Android中的Looper,MessageQueue,Handler的理解

Looper中的ThreadLocal对象sThreadLocal保存有Looper对象,在其构造方法中会获取当前的线程并且创建一个消息队列mQueueprivate Looper(boolean quitAllowed) { mQueue = new MessageQueue(quitAllowed); mThread = Thread.currentThre

2015-09-05 18:30:56 283

转载 Android开发相关的Blog推荐

Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神分类: Android开发经验2015-02-11 11:53 12777人阅读 评论(44) 收藏 举报经验码农blog开发者开源项目    本篇文章主要纪录我在学习过程中,发现的非常给力的CSDNBlog和个人Blog,这些Blog都有一个共同的特点,即内容详实,讲解透彻,也算是给后来的初学

2015-08-31 17:40:51 313

转载 Android屏幕适配全攻略

Android屏幕适配全攻略(最权威的官方适配指导) 目录(?)[+]转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相

2015-08-31 17:35:20 472 1

转载 Https和Http

协议基础不同:Https在Http下加入了SSL层,通讯方式不同:Https在数据通信之前需要客户端、服务器进行握手(身份认证),建立连接后,传输数据经过加密,通信端口443。Http传输数据不加密,明文,通信端口80。SSL协议基础SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层:SSL记录协议(SSL Record Protoc

2015-07-16 18:43:22 389

转载 ConcurrentHashMap原理分析

原文链接 http://www.iteye.com/topic/344876ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生

2015-07-16 16:32:40 260

转载 Java内存模型

【Java线程】Java内存模型总结分类: 【Java SE】2013-02-13 18:23 7283人阅读 评论(8) 收藏 举报内存模型目录(?)[+]学习资料:http://www.infoq.com/cn/articles/java-memory-model-1源地址http://blog.csdn.net/vking_wa

2015-07-16 16:29:35 215

转载 px 与 dp, sp换算

px 与 dp, sp换算公式?PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"xhdpi: 2.0hdpi: 1.5mdpi: 1.0 (baseline)ldpi: 0.75drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分别为低、中(android默认)、高。对应的图片大小为:36x

2015-07-12 21:12:14 359

原创 android中view 的setTag,getTag方法的作用

在重写adapter的getView方法的时候经常会用到View类的setTag和隔天Tag方法,这个两个方法到底做什么的呢。先贴一段代码:public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView == null)

2015-07-12 20:43:13 844

HowTomcatWorks

手把手带你实现一个tomcat,理解tomcat源码设计思想。

2017-11-08

自己动手写Java虚拟机

用go语言实现了一个简单的jvm,不包括垃圾收集,对想了解jvm原理的同学很有帮助

2017-11-08

Hive编程指南

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析

2017-09-25

maven实战PDF

maven实战

2015-04-02

java nio PDF

java nio中文版

2015-04-02

C/C++经典算法

C/C++经典算法,有助于笔试面试和开拓逻辑思维。

2015-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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