自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 如何提高自己的编码水平

如何提高自己的编码水平好久没写文章了,因为一个特殊的原因,这次讲一些如何提高自己的编码水平,主要是适用于初中级的工程师进阶使用,大佬请绕路。。。。新手常见的困惑经常听到一些困惑,比如说 看不懂别人写的什么啊,自己写的话写的乱,有的不知道怎么写啊,或者是出了问题不知道怎么解决吧啦啦啦之类的不要怕,有我在我们先把问题整理一下看不懂别人的代码(业务 算法看不懂正常)自己写代码感觉无从下手,不知道

2018-04-12 14:18:45 8023 2

原创 关于volatile关键字的理解

这两天面试,问到了DCL的一些问题,就想起了一个平常写DCL中容易忽略的一个关键字volatile,我们知道volatile是个轻量级的synchronized,他主要在多线程开发中保证了共享变量的 “可见性(当一个线程修改一个共享变量时,另外一个线程能够读到这个修改的值;那么 他是怎么做到保证共享变量的“可见性”的呢?从java语言规范第三版中对volatile的定义如下:java编程语言允许线...

2018-03-15 17:44:42 306

原创 眨眼间的2017

2017年感觉那么瞬间就过去了,感觉像龙卷风一样就没了,请问哪里有充值余额的,,我要充值。。。回头这么一年,仔细一想,好像还是做了很多事情的,技术感觉是提升最快的一年,业务能力也是,为了详细点,一一分开总结的比较好技术方面java基础java基础这一年又着重复习了复习,毕竟当初自学的时候只是会用,用的熟,并没有对更深层次进行研究,这就导致了基础虚浮,不利于以后发展;今年主要复习的有:Conllec

2017-12-29 10:45:59 340 1

原创 最短路径算法——Dijkstra(迪杰斯特拉)

最短路径算法——Dijkstra(迪杰斯特拉)恩 好久没有写博客了,虽然我知道这种算法的博客基本很少有人看,但是我还是决定把他写出来Dijkstra算法属于最短路径的算法,他的本质就是 一个按照路径长度递增的次序产生的最短路径算法,他的应用还是比较普遍的。我们这边那这个图来说假如说我们这里要寻找从 v0 - v8 的最短路径,我们首先要想Prim算法一样,把图转为邻接矩阵,入图下所示他这个图表示的

2017-08-25 16:05:47 1252

原创 Android进阶之OkHttp源码解析-专题视频课程

Android进阶之OkHttp源码解析—1644人已学习课程介绍深度解析OkHttp,把握OkHttp工作流程和设计思想,理解OkHttp的任务调度以及链接池的管理,理解OkHttp拦截器栈的功能,学会自定义拦截器,自定义Cookie处理方案,本课程还将带你深度解析 LruCahce算法以及DiskLruCache算法,部分设计模式,线程池的运用,以及在Android网络请求...

2017-07-08 16:23:05 391

原创 6.1 (番外)深入源码理解HashMap、LinkedHashMap,DiskLruCache

6.1 (番外)深入源码理解HashMap、LinkedHashMap,DiskLruCache我们看OkHttp的源码可以知道,他的缓存算法主要是用LruCache算法实现的,Lru的一个典型的实现就是LinedkHashMap,LinkedHashMap又是基于HashMap实现的,所以要探究他的原理,我们要从HashMap开始说起了(有什么问题的话可以进群交流 群号 579508560,会有视

2017-07-04 21:40:20 714

原创 6.OkHttp的缓存管理

6.OkHttp的缓存管理番外篇有讲到, Http头里面有个Cache-Control 的字段,这个字段就是来处理缓存的,我们先来了解一下Cache-ControlCache-Control的运用 Cache-Control : cache-directive Cache-directive 说明 public 所有内容都将被缓存(客户端和代理服务器都可缓存) private

2017-07-03 13:05:02 468

原创 5.OkHttp请求调度的分析

5.OkHttp请求调度的分析大工程搞完了,,咱们接着来抠细节,聊一聊OkHttp的连接池管理和任务队列管理连接池OkHttp的链接迟相关的类是ConnectionPoolStreamAllocation如果这边眼生的朋友请看之前的文章; StreamAllocation里面有个ConnectionPool的引用,SteamAllocation是协调connection,strams,cal

2017-06-29 12:22:17 975

原创 4.OkHttp的请求拦截链

4.OkHttp的请求拦截链OkHttp请求的核心处理就是这一系列的拦截链“““java Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. //建立一个完整的拦截器堆栈。 List interceptors = n

2017-06-29 12:21:50 1225 1

原创 3.OkHttp请求流程分析

3.OkHttp请求流程分析Call和RealCall经过上面的初始化之后 okhttpClient 调用public Call newCall(Request request) 方法去构建一个Call,“““java @Override public Call newCall(Request request) { return new RealCall(this, request,

2017-06-29 12:21:21 1162

原创 2.OkHttp的初始化

2.OkHttp的初始化OkHttp的整个的初始化采用了一个Builder的形式来建造,对设计模式不太了解的同学可以去看https://github.com/mirsfang/ExamplesOfDesignPatterns接下来进入正题OkHttpClient的初始化OkHttpClient在代码中是这样的 OkHttpClient okHttpClient=new OkHttpClient.Bu

2017-06-29 12:20:50 2061 1

原创 1.OkHttp的简单使用

1.OkHttp的简单使用官网: http://square.github.io/okhttp/github地址:https://github.com/square/okhttp简介HTTP是现代应用网络的方式。这是我们如何交换数据和媒体。有效地进行HTTP使您的东西加载更快,并节省带宽。OkHttp是默认情况下高效的HTTP客户端:HTTP / 2支持允许对同一主机的所有请求共享套接字。连接池减

2017-06-29 12:19:06 689

原创 0.(番外)Http请求原理

0.(番外)Http请求原理为了照顾到很多对Http比较陌生的同学,这里专门说明一下Http的请求原理,对看OkHttp源码,理解OkHttp网络请求会有很大的帮助,我们也会通过一个小例子,自己来实现一个Http请求HTTP 简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本

2017-06-29 12:17:53 858 2

原创 适配器模式

适配器模式故事的前因后果在一个阳光明媚的上午,你刚坐好,然后该死的产品那边又来需求了,“新增页面展示本APP的用户信息 ,要赶紧做好,明天就上线,怎么实现我不管”,真tm有句妈卖批必须要讲!,�� 但是做还是要做的 , 写个接口先public interface IUserInfo{ //得到用户的姓名 public String getUserName(); //得到用户的头像

2017-02-16 10:52:21 304

原创 排序之 快排

排序之 快排序言快速排序是常用的排序算法之一,也是面试的时候经常会问到的,它是冒泡排序的改进,不稳定,时间复杂度 最理想 O(nlogn) 最差时间O(n^2),采用了 挖坑法+分治法基本思想它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左

2016-10-31 12:25:48 323

原创 Android的Sokcet编程

Android的Socket编程序言最近这两天面试因为之前项目的聊天是基于socket写的,所以面试的时候经常会被问到相关的问题,今天整理一下相关的知识。Socket简介(什么是Socket)定义:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket本地的进程间通信的方式有好多种,但网络中进程之间是如何通信的呢,首先要解决如何标示一个进程,在本地有进程的pid来标

2016-10-23 23:59:11 587

原创 最近的状态

最近公司倒闭了,突然一下的就没工作了,一点准备也没有,所以最近一直在忙于找工作,写博客的事情就拉下了,之前写的三四篇关于底层源码分析的博客估计晚点才能上了。不管我的博客有几个人在看,我都会一直写下去的,还有两三个月才到年底,正式尴尬的时候,加上市场上充斥着好多培训出来就写三四年经验的,真是快伤不起了,不管怎么说尽快提升自己的技术是关键,我这几天也会抽空能写的都写下给大家分享,还有一些自己写

2016-10-18 15:04:48 281

原创 图 最短路径算法--普里姆算法与克里斯卡尔算法

一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边。所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的和最小。综合以上两个概念,我们可以得出:构造连通网的最小代价生成树,即最小生成树(Minimum Cost Spanning Tree)。找连通图的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法首先咱们来说普里姆算法

2016-10-15 23:15:09 1881

原创 数据结构之链表

数据结构之链表数据结构中,链表算是简单的一种。今天就来写一下链表的原理与实现 github传送门简介链表为啥叫链表。因为他就和一个链子一样。链表分为单向链表双向链表循环链表实现双向链表为什么只讲双向链表呢。我用一张图给大家诠释可以看出来 单向链表只是存有下个节点的引用,双向列表是存有他上个节点和下个节点的引用,循环链表是他每个节点都存有他的上个节点的引用和下个节点的引用,这里要注意的是,他

2016-09-27 12:43:26 433

原创 小技巧-如何快速让子view'拥有进出退出动画

只要在他的父view里面添加 android:animateLayoutChanges="true" 就OK了

2016-08-31 14:36:56 519

原创 android源码阅读-----zygote进程

android源码阅读—–Zygote进程Zygote进程简介: zygote进程是安卓中非常重要的一个进程,与init进程 SystemServ进程共同支撑着Android环境。 Zygote进程与一般进程的区别是: 一般进程fork出子进程之后,会继续调用系统的exec,将一个新的可执行文件的内容替换当前的进程的代码段,数据段,堆和栈段,然后zogte只调用的了fork,没有调用

2016-08-14 02:12:08 798

原创 Android Studio - no debuggable applications 的解决办法

Tools 然后Android-->Enable ADB Integration active.然后就OK了问题的地址:http://stackoverflow.com/questions/26593927/android-studio-no-debuggable-applications

2016-08-12 16:28:45 465

原创 安卓系统启动流程解析

一直以来一直想有深入研究源码的想法,最近一段时间工作比较少,得以时间研究,有点心得就给大家分享,今天给大家带来的是安卓系统最开始的  话不多说  首先放图下面来详解这张图  从系统的角度上来讲,Android系统的启动过程可以风味 bootloader 引导,装在和启动 linux内核 启动Android系统BootLoaderbootl

2016-08-10 13:29:59 3857 3

原创 贪心算法的学习

什么是贪心算法  ,贪心算法就是贪心了  废话 - -     所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。     贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态

2016-07-29 17:42:01 571

原创 C++ 的枚举和宏

#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。define命令是C语言中的一个宏定义命令,它用来将一个

2016-07-29 17:24:39 795

原创 Android 自动更新 教你如何写自己的更新

在这个极速开发,快速迭代的年代里,APP的更新自然也成为日常开发中不可或缺的一部分,,如何写出一个优雅的更新效果,让自己的APP增新不少呢?下面带大家来一起写一个APP更新的功能.  其实这个功能很简单,,,,就是一个文件上传下载的功能 文件的地址就是放在你们服务器上面的路径,你请求后台的版本号和本地的版本号进行对比,如果比服务器上的低就调用,然后下载的下来的地方是你设置的路径,然后调

2016-07-29 15:53:43 1236

原创 再MAC 下用IntelliJ 开发web项目遇到 Server is not connected. Deploy is not available. 1099的问题

详细描述一下我遇到的问题  最开始我是用的tomcat 9 然后一直报这个错,后来我换成tomca8 ,后来又说是权限问题, 修改权限之后在配置tomcat的地方有个 Deploymeny的tab  然后在那里面如果是maven项目的话点击下面的小加号选择Arftiact这个选项 把自己的项目加进去就好了,,

2016-07-28 15:24:39 7164 2

原创 企业移动应用开发管理之浅谈

为什么要写这篇博客呢,事情的原因是这样的。 大前天公司那边下来需求,要求移动端应用主要的详情页面加上图片的展示, 公司的后台和前台的业务比较复杂,改动的话涉及到三个端;代理商,商户,用户。 逻辑是这样的,商户创建,创建的时候添加图片,然后代理商审核,然后用户端展示,用户端展示又分两个接口。因为前期追求开发速度的原因,整个应用包括后台都是比较臃肿的,负责改动的后台人员也是刚来不久的新人,熟悉流程,制

2016-05-29 01:21:18 509

原创 Linux Eclipse C/C++ 报错 launch failed

解决方法如下:第一种情况(我所遇到的)    新建项目后,点击run>>run configurations,双击左侧一列的c/c++ local applation,新建一个运行配置,在main中点击Browse选择你的项目,在common中勾选“debug”和“run”,这样就好使了。第二种情况  1、安装minGW先 ;2、添加path系统环境

2016-05-17 23:23:11 1183

原创 新闻类list,支持两种不同的item

先上图github地址

2016-05-16 15:27:50 591

原创 Android滑动头部控件

一个滑动头部的空间,根据https://github.com/ta893115871/StickyNavLayout简化和修改得来,去除了tab的滑动,改为LinerLayout,增加了点击滑动到顶部,

2016-05-16 11:41:01 1160

原创 我的安卓职业路发展和展望

不知不觉工作已经有一段时间了,感觉自己的技术像是到了一个瓶颈,说上不上说下不下,市面上大部分APP自己都能做得来,但总感觉自己欠缺好多东西,对底层的知识掌握一塌糊涂,不知道一个APP是如何产生、安装、运行的;也不知道一个activity具体运行的细节,只是感觉会用而已,渣的要死,更别说更底层的一些知识了。欠缺的东西太多了,我简单的规划了一下以后的学习方向,大致如下:  1、学习C/C++语言,

2016-04-24 00:22:06 630

原创 自定义RatingBar,能根据设置改变样式

项目在我的GITHUB上  https://github.com/mirsfang/RatingBarDemo2

2016-04-12 14:46:56 1739 2

原创 Unable to get package info for [包路径]; is package not installed

这个问题引起原因是 简单的卸载app 没有卸载干净,然后再次运行,当dalvik重新安装。apk文件并试图重用以前的活动从同一个包

2016-04-10 15:46:48 5423 2

原创 设计模式之---责任链模式

责任链模式,大家肯定都有听说过,web应用上的tomcat的filter可以理解为一个责任链模式,责任链模式就相当于一个处理链,一个对象从第一个处理对象开始,处理完之后传到第二个,直到最后一个,而且处理对象的顺序和数量可以任意改动。责任链模式的定义:     使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到

2016-04-08 17:18:45 305

原创 设计模式之状态模式

状态模式,顾名思义,行为是由状态来决定的,不同的状态下有不同的行为,比如说电视机,当我们按开机键后,频道+,-,音量+、-都可以使用,而当我们按关机键之后除了开机键其他键都不可以使用。这就是一种状态     没图我说个JB...     角色介绍:               Context 环境类,定义客户感兴趣的接口,维护一个State子类的示例,这个实例定

2016-03-28 10:06:49 319

原创 设计模式之策略模式

策略模式在我的理解里就是  提供解决一种问题的不同方法;在平时我们解决问题的时候,通常把方法写在一个类里面或者是当前类里面,比如说排序,快排写个方法,基数排序写个方法,堆排序写个方法,在类里调用或者是某个业务逻辑复杂,每一个条件都需要一系列的if..else 或者是switch..case等判断语句来选择具体的业务逻辑的时候,就是使用策略模式的时候。策略模式的定义

2016-03-24 11:24:14 296

原创 设计模式之抽象工厂模式感悟

工厂模式生产的是基于一种产品的抽象,抽象工厂模式是生产的多种具有共性的产品的抽象;他的定义是:为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类AbstractFactory 抽象工厂角色 声明 一组  用于创建一种产品的方法,每一个方法对应一种产品ConcreteFactory 具体工厂角色, 它实现了在抽象工厂中定义的创建产品的方法,生成一组具体的产品,这

2016-03-22 19:02:30 459

原创 创建安卓app的30个经验教训

这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人。这里是我一路走来学到的一些东西,分享给大家:在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗?如果一个东西用户看不到,就不要绘制它!除非真的需要,否则别使用数据库;达到65k方法数限制来的非常快,真的,非常快!不过 multidexing 可以拯救你;

2016-03-16 10:15:08 469

原创 Android studio报错 \build-tools\23.0.2\aapt.exe'' finished with non-zero exit value 1

Error:Execution failed for task ':android-view:processReleaseResources'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'I:\AndroidDevo

2016-03-14 22:36:38 4510 1

空空如也

空空如也

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

TA关注的人

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