自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流月的博客

Talk is Cheap,show me the code.

原创 程序员的哲思录

在此记录一些自己觉得有道理的语句或随想 有时候体制的创新或者制度的变革比建立技术护城河重要的多。 一想到为人父母不需要经过考试就觉得很可怕,很多父母并不知道如何为人父母,只是自私自利,冠冕堂皇罢了。 每天7点半准时坐在电视前,幸福感以方程式增长。 如果一个人的...

2019-08-14 09:08:02 289 0

原创 Android OpenGl学习(一)

最近由于项目需要,所以开始学习OpenGL,网络上的东西零零散散,所以就想写一系列博客来记录学习OpenGL。 一、简介 首先我们要对其有一个简单的认识 什么是OpenGL? 官方描述:OpenGL是一个跨平台的图形API,用于指定3D图形处理硬件中的标准软件接口。 OpenGL的优势?...

2019-07-29 17:42:49 296 3

原创 Git基础操作

一、流程与概念 首先在使用git之前我们需要了解它的几个概念和基础使用流程,在git操作中有四个重要的地方,你所有的操作都是在和他们打交道。 workspace : 工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 ...

2019-07-28 19:18:39 90 0

原创 Git踩坑指南

最近入职了七牛云,因为安全性的原因,加入github上的开发小组必须开启二次验证,今天想上传一个新的demo代码,搞了半天老是说我账号密码不对,RSA也不行,经过多次重试并且之前也使用git,所以我确定我的操作没有错,问题就在账号的二次验证上,经过一番曲折,终于搞定了,所以决定写下一篇博客作为记录...

2019-07-28 16:17:50 87 0

原创 【精选】JAVA算法题(二十五)

好长时间没有写博客了,之前因为期末考试耽误了一段时间,回家又玩了几天,然后又赶来上海入职,所以就把博客这事给忘了,哈哈,懒惰啊。 一、最长回文字符串 题目: /** * 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 * 在构造过程中,请注意区分大小写...

2019-07-21 17:26:48 119 0

原创 Bitmap总结

相信大家在平时的android开发中肯定用过Bitmap,而且用的还不少,那么你对它有足够的了解吗?你的使用高效吗?对于超大图片是如何处理的呢?下面就让我们一起来从基础学习一下Bitmap。 一、Bitmap是什么? 位图(Bitmap),又称栅格图或点阵图,是使用像素阵列来表示的图像。 位...

2019-06-10 14:49:03 167 0

原创 Binder机制总结

在android中进行跨进程通信通常有以下几种方式: 使用Intent 使用文件共享 使用Messenger 使用AIDL 使用ContentProvider 其中Intent中可以携带Bundle,而Bundle实现了Parcelable接口,所以可以在不同的进程间进行传输。文件共享就...

2019-06-03 10:04:39 748 0

原创 【精选】JAVA算法题(二十四)

一、子字符串出现的位置 题目: /** * 给出 字符串 text 和 字符串列表 words, 返回所有的索引对 [i, j] 使得在索引对范围内的子字符串 * text[i]...text[j](包括 i 和 j)属于字符串列表 words。 * * 示例 1: * 输入: text = ...

2019-06-02 17:44:31 210 0

原创 【精选】JAVA算法题(二十三)

一、完全平方数 题目: /** *给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 * 说明:不要使用任何内置的库函数,如 sqrt。 * * 示例 1: * 输入:16 * 输出:True * * 示例 2:...

2019-06-02 16:47:08 300 0

原创 【精选】JAVA算法题(二十二)

一、两数之和 题目: /** * 不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 * * 示例 1: * 输入: a = 1, b = 2 * 输出: 3 * * 示例 2: * 输入: a = -2, b = 3 * ...

2019-05-30 20:45:03 89 0

原创 View的onMeasure()、onLayout()、onDraw()总结

自定义View是android开发中常有的一项工作,要想自定义View,你就必须熟练掌握View的测量、布局及绘制,了解其原理并会使用。 View视图绘制需要搞清楚两个问题,一个是从哪里开始绘制,一个是怎么绘制? 先说从哪里开始绘制的问题:我们平常在使用Activity的时候,都会调用setC...

2019-05-30 10:14:00 453 0

原创 【精选】JAVA算法题(二十一)

一、丑数 题目: /** * 编写一个程序判断给定的数是否为丑数。 * 丑数就是只包含质因数 2, 3, 5 的正整数。 * * 示例 1: * 输入: 6 * 输出: true * 解释: 6 = 2 × 3 * * 示例 2: * 输入: 8 * 输出: true...

2019-05-23 11:31:03 73 0

原创 【精选】JAVA算法题(二十)

一、异位词 题目: /** * 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 * * 示例 1: * 输入: s = "anagram", t = "nagaram" * 输出: true * *...

2019-05-22 21:11:51 83 0

原创 【精选】JAVA算法题(十九)

一、重复的数 题目: /** * 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j, * 使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 * * 示例 1: * 输入: nums = [1,2,3,1], k ...

2019-05-22 20:40:49 589 0

原创 【精选】JAVA算法题(十八)

一、移除链表中指定的节点 题目: /** * 删除链表中等于给定值 val 的所有节点。 * * 示例: * 输入: 1->2->6->3->4->5->6, val = 6 * 输出: 1->2->3->4->5 *...

2019-05-22 15:14:20 258 0

原创 【精选】JAVA算法题(十七)

一、镜面反射 题目: /** * 有一个特殊的正方形房间,每面墙上都有一面镜子。除西南角以外,每个角落都放有一个接受器,编号为 0, 1,以及 2。 * 正方形房间的墙壁长度为 p,一束激光从西南角射出,首先会与东墙相遇,入射点到接收器 0 的距离为 q 。 * 返回光线最先遇到的接...

2019-05-09 20:54:57 59 0

原创 贝尔曼-福德算法

我在上一篇博客中讲解了狄克斯特拉算法,该算法可以用于寻找权值都为正的有向无环图的最短路径,我也提到了如果碰到权值为负的情况可以使用贝尔曼-福德算法,那么今天就让我们学习一下贝尔曼-福德算法是如何处理负权值和环路的。 其实理解了狄克斯特拉算法之后理解贝尔曼-福德算法就很容易了,如果说狄克斯特拉算法...

2019-05-03 20:26:07 1092 0

原创 狄克斯特拉算法

一、介绍 在前一篇博客中我们学习了广度优先搜索算法,它解决的是段数最少的路径,如果你要找到最快的路径,该怎么办呢?为此,可以使用本篇博客所讲述的算法——狄克斯特拉算法 如果你使用广度优先搜索,将得到下面这条段数最少的路径。 这条路径耗时7分钟。下面来看看能否找到耗时更短的路径!狄克斯...

2019-04-26 13:42:08 517 0

原创 广度优先搜索算法

一、简介 广度优先搜索算法(Breadth-First Search,BFS)是一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。BFS并不使用经验法则算法。 广度优先搜索让你能够找出两样东西之间的最短距离...

2019-04-25 13:26:58 8497 3

原创 【精选】JAVA算法题(十六)

1.脏矩形合并 题目: 在2D渲染系统中,局部渲染是常见提升渲染性能的方法。如果界面中有元素发生了改变,我们可以将这个元素所占矩形区域标记为脏矩形,那么在接下来的渲染中,我们仅对每个脏矩形所占矩形区域执行一次局部渲染即可,无需渲染全屏。 但系统提供的局部渲染API有如下限制: 1. ...

2019-04-20 22:13:46 81 3

原创 Activity、Window、DecorView、ViewRootImpl之间的关系

我们通常写Activity的时候在onCreate里面都会写上setContentView()这一步,该方法会将你指定的布局文件加载并显示到屏幕中,在其中会经历一系列操作,其中也就涉及到了Activity,Window,DecorView,ViewRootImpl,今天就让我们借助这个方法来看看这...

2019-04-20 12:17:42 267 0

原创 LruCache和DiskCache总结

日常我们写程序的时候经常会使用到网络的图片,如果我们每次都去网上加载,那么性能难免会差一些,并且网络情况并不是总是 那么好,那么这时候我们就需要使用缓存了,我们学习android都知道图片的三级缓存,分别是内存缓存,硬盘缓存,网络缓存。 它的大体流程是这样的,给定一个网址,加载一张图片 如果内...

2019-04-10 11:38:53 230 0

原创 IntentService总结

我们平常写程序时经常会涉及到下载或者播放音乐等耗时操作,你可能会使用Service+Thread的方式解决,但是这样比较麻烦,如果你要串行执行多个耗时操作还要使用线程池,其实Google早就帮我们封装好了一个框架——IntentService 一、简单使用 Client端 public c...

2019-04-09 18:23:52 41 0

原创 HandlerThread总结

在Android系统中,执行耗时操作必须使用子线程来执行,执行完线程以后线程便会自动销毁。但是如果如果我们有很多分步的耗时操作,如果我们不断的创建新的线程执行,不断销毁线程便会消耗很多的性能,那么该怎么办呢?android给我们提供了两个方法,一个就是使用本篇文章讲的HandlerThread,另...

2019-04-09 16:49:14 91 0

原创 AsyncTask总结

AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。 一、简介 1.AsyncTask的泛型参数 public abstract cla...

2019-04-09 10:54:54 64 0

原创 滑动冲突解决方式总结

一、冲突类型 滑动冲突分为三种类型,第一类是外部和内部滑动方向不一致,第二类是外部和内部滑动方向一致,第三类是前两种嵌套的模式。 处理这三种类型的规则分为两类,对于第一种类型,我们可以根据滑动方向来处理,符合处理方向的分配给对应的控件;对于2、3种类型,必须根据业务上的区别来处理,某种状态的处...

2019-04-08 18:49:14 336 0

原创 事件分发总结

一、基础知识 1.分发对象 事件:Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象 2.事件 主要发生的Touch事件大致分为以下四种: MotionEvent.ACTION_DOWN:按下事件(所有事件的开始) Mot...

2019-04-08 17:16:05 195 0

原创 消息机制总结

因为android的UI线程不是线程安全的,所以更新视图只能在主线程更新,那么如果我的子线程想要更新UI该怎么办呢?这就是 Handler出现的原因了,虽然我们通常将Handler用在子线程需要更新UI的场景下,也可以用来传递消息。 一、角色分析 1、Handler:处理器,负责的内容是消息的...

2019-04-08 11:40:19 515 0

原创 Fragment总结(二)

四、Fragment与Activity通信 1.在Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作 2.Handler、EventBus public class MainActivity extends FragmentActivity{...

2019-04-07 20:50:27 407 0

原创 Fragment总结(一)

我们日常开发中经常会使用到fragment,通常会放置在主页面上,方便切换展示信息。它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的Fragment。 一、生命周期 第一张图展示了fragment的生命周期,第二章图展示了 Act...

2019-04-07 19:48:00 209 0

原创 BroadcastReceiver总结

BroadcastReceiver属于Android四大组件之一 可用于监听应用发出的广播消息,并做出相应 应用场景 : 不同组件之间通信(包括应用内 / 不同应用之间) 与Android系统在特定情况下的通信 如当电话呼入时、网络可用时 多线程通信 一、实现原理 使用了设计模式中的观...

2019-04-07 16:28:00 116 0

原创 Service总结

一、Service种类 按运行地点分类: 本地服务:运行在主进程中 远程服务:运行在独立的进程中 按运行类型分类: 前台服务:会有通知栏显示 后台服务:默认的服务,没有通知栏显示 按启动方式分类: startService启动:停止使用stopService bindService启...

2019-04-06 17:24:28 232 0

原创 JAVA入门算法题(十五)

一、满二叉搜索树 /** * 给定一个二叉树的层序遍历判断是不是一颗满二叉搜索树 */ 大致分为这么几步: 1.处理输入 2.根据满二叉树的节点数量进行排除 3.构建树 4.递归判断 public static Node root; public stat...

2019-04-06 13:13:22 76 0

原创 教你用JAVA写个小游戏

上周上课的时候老师让用Java写个小程序,我本想写一个经典的飞机大战游戏来着,可以后来突发奇想就写成了这个 一、整体思路 继承窗体类,复写窗体刷新 添加按键监听 游戏结束界面 王思聪类和热狗类 移动轨迹计算 判断碰撞 音乐播放 不断刷新窗体 处理细节 二、编码 1.图片 首先...

2019-04-03 10:54:07 8566 8

原创 Activity总结

一、Activity的生命周期 activity应该是我们初学android就接触的,而它的生命周期更是重中之重,掌握activity的生命周期也是学好android的基础 这张图片可谓是非常经典,应该学习android的人都见过,下面讲一一讲解各个方法: (1) onCreate():...

2019-04-01 21:53:04 229 0

原创 JAVA入门算法题(十四)

一、最小的淘气值 题目: /** * 老师要给学生安排座位,经统计教室有N个双人桌,M名学生,每个学生有一个淘气值, * 要合理安排座位,使得班内同桌之和的淘气值最大值尽可能的小,输出最小值。 */ 这是一道360Android春招笔试题 要考虑这样的几种情况: 1.座位数&...

2019-03-31 16:24:19 76 0

原创 JAVA入门算法题(十三)

一、出现一次的数 题目: /** * 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 * 说明: * 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? * 示例 1: * 输入: [2,2,1] * 输出:...

2019-03-31 15:38:20 101 0

原创 JAVA入门算法题(十二)

一、最大利润 题目: /** *给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 * 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 * 注意你不能在买入股票前卖出股票。 * 示例 1: * 输入: [7,1,5,3...

2019-03-31 14:18:06 81 0

原创 JAVA入门算法题(十一)

一、倒置层序遍历 题目: /** * 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) * <p> * 例如: * 给定二叉树 [3,9,20,null,null,15,7], * 3 * ...

2019-03-31 11:31:31 347 0

原创 JAVA排序算法总结

不要独享荣耀。独享荣耀,有天就会独吞苦果。 1.冒泡排序 说到排序算法最先想到的就是冒泡排序了,它是最简单也是最慢的排序方法,双层for循环对每两项数值进行比较交换 /** * 冒泡排序 * @param array */ public stat...

2018-12-23 17:15:54 214 0

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