- 博客(16)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 ListView中adapter的getView()复用item原理
getView 经典写法@Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = inflater.
2017-08-31 12:12:16 460
原创 二叉树节点数量关系
node 表示一棵树节点总数量node1 表示度为1的节点数量node2 表示度为2的节点数量]leaf 表示叶子节点的数量line 表示一棵树中茎(也就是两个节点之间的连线)的数量显然: node -1 =line; node=node1+node2+leaf; line=node1 + 2* node2; 那么 node1+node2+leaf -1
2017-08-30 18:57:15 3139
原创 Hufuman编码
原理http://bitjoy.net/2016/08/18/the-implementation-of-huffman-code/ 哈弗曼编码是一个很经典的压缩算法,压缩率能达到50%,甚至更低。它的基本原理包括四个步骤: 1. 统计文件中每个字符出现的频率。 2. 构建一个哈弗曼树。建树的过程是不断的合并频率最小的两个节点,父亲节点的频率为两个孩子节点的频率之和。如此循环直到合并成一个根节
2017-08-30 16:50:37 1109
原创 用注解实现简单的框架 避免频繁调用FindViewById
前言:关于butterKnife用过butterKnife的同学知道,他使得我们不再需要一直FindViewById,只需要在声明控件字段的上方加上@bind(R.id.XXX)即可。他的原理就是注解。接下来我们看一个简单版本的butterKnife。From.java (注解类)package com.qunar.yuzhiyun.annotation.annotation;import java
2017-08-28 18:56:10 428
转载 一张图概括App启动流程
一、神图:二、说明笔者在下面博文内容的基础上,加上自己的理解,对图片稍加了一点点修改,启动流程文字部分也有所修改 参考:http://www.sohu.com/a/130814934_675634 (感谢楼主)三、启动流程:①点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;(startActivity()中调用Ac
2017-08-25 14:55:48 1572
原创 二叉搜索树 插入节点
package com.yuzhiyun;import com.yuzhiyun.PreOrder.BinaryTreeNode;public class DealBinarySearchTree { /** * 二叉树的树结点 */ public static class BinaryTreeNode { public BinaryTreeNode
2017-08-18 10:00:22 394
原创 Activity 的Window创建过程
1、ActivityThread 中的performLaunchActivity ( )在通过classLoader加载到MainActivity之后,反射出一个 MainActivity对象activity,然后会调用activity.attach( ),在这个函数中,会创建window//mWindow是Activity的一个成员private Window mWindow; //可以看出w
2017-08-16 14:36:43 386
原创 二叉树递归与非递归层次遍历
package com.yuzhiyun;import java.util.LinkedList;import java.util.Queue;import com.yuzhiyun.FindPathInBinaryTree.BinaryTreeNode;public class BinaryTreeLevelPrint { public static void main(String[]
2017-08-15 10:30:25 514
转载 01背包
题目现有n件物品和一个容量为c的背包。第i件物品的重量是重量为w[i],价值是v[i]。已知对于一件物品必须选择取(用1表示)或者不取(用0表示),且每件物品只能被取一次(这就是“0-1”的含义)。求放置哪些物品进背包,可使这些物品的重量总和不超过背包容量,且价值总和最大。分析m[i][j]表示当可以放入前i件物品且背包容量为j时的最大价值代码package com.yuzhiyun;public
2017-08-12 11:49:06 204 1
转载 Hook startActivity()函数追加一条日志
目的希望程序员每次调用startActivity()的时候,可以多打印一条日志。实现原理startActivity() 执行过程中,会调用到ActivityThread的成员对象mInstrumentation的 execStartActivity()函数,于是我们可以自定义一个EvilInstrumentation(extends Instrumentation )类,重写execStartAct
2017-08-11 10:52:32 422
原创 ListView实现GridView的效果
为什么不直接使用GridView?由于GridView很难实现下拉刷新功能,开源的pullToRefresh 是通过基于listView实现的。为了既要有下拉刷新功能,又要达到GridView(一行可以显示多列)效果,于是就产生了extends BaseAdapter自定义实现一个ListAsGridBaseAdapter 的想法。代码ListAsGridBaseAdapter.javapacka
2017-08-10 17:57:02 977
转载 理解HTTPS
一句话总结https使用非对称加密交换密匙key,使用这个key进行对称加密进行数据传输一个通俗易懂的比喻参考自http://www.jianshu.com/p/b894a7e1c779 感谢作者____每当我们讨论到信息安全的时候,我们最长接触到的信息加密传输的方式莫过于 HTTPS 了,当我们浏览器地址栏闪现出绿色时,就代表着这个网站支持 HTTPS 的加密信息传输方式,并且你与它的连接确实
2017-08-07 18:47:58 411
转载 二叉树非递归遍历
参考http://blog.csdn.net/sgbfblog/article/details/7773103 感谢package com.yuzhiyun;import java.util.Stack;import javax.xml.soap.Node;import com.yuzhiyun.FindPathInBinaryTree.BinaryTreeNode;public class Pr
2017-08-04 17:07:56 245
转载 回溯法 解决二叉树中找一条和为固定数值的路径(java)
问题描述其中路径指的是从跟节点到叶子节点经过的路径代码package com.yuzhiyun;import java.util.ArrayList;import java.util.List;public class FindPathInBinaryTree { /** * 二叉树的树结点 */ public static class BinaryTreeNod
2017-08-03 16:44:00 337
转载 八皇后问题 java
一、什么是八皇后问题有一块8乘8的棋盘(64个格子),还有8个皇后需要放在在64个格子上,有多少种放置方法可以使得皇后不在同一行、不在同一列,不再同一斜线。 二、代码(参考自 https://my.oschina.net/js99st/blog/417837 感谢作者辛苦注释)package com.yuzhiyun;public class NQueen { /** 皇后数组,数组的下标
2017-08-03 15:35:31 344
原创 Asynctask 原理
简介: Asynctask表示异步任务,在用法上,他有四个重要的函数,onPreExecute( ) ,doInBackground ( ),onProgressUpdate( ) ,onPostExecute( ),其中只有doInBackground ( ) 运行在子线程,其他都在主线程,在doInBackground()中可以通过publishProgress( )来更新进度,在on
2017-08-01 16:10:54 320
本人使用xcode8 ,iOS 模拟器10.1的系统可以跑动,同样10.1的真机却闪退
2016-12-18
iOS 使用tableview出现如下错误
2016-12-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人