自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android面试总结

写在前面:先介绍一下博主的情况,16年软件工程毕业,非985、211毕业,算来也就一年半的工作经验,坐标杭州。在这里也感谢一下我之前公司的 leader,在我找工作的期间给了我不少了帮助,也在我拿到 offer 之后给我的指点。好了,下面说正题。我个人认为面试的过程就是一个印证你简历是否真实的过程,所以,在我们投递简历的时候,一定要保证我们简历的真实性,不要把你不了解或者不熟悉的东西体现在简历上面...

2018-04-21 10:11:20 454

原创 ThreadLocal、Atomic、synchronized、Volatile

一、前提首先我们要知道这四个关键词都是干什么,都是用来解决多线程处理数据造成不同的什么是原子操作:原子操作就是不被多线程影响的操作,是不能中断的操作,例如对域进行赋值和返回都属于原子操作,但是在 java 中 i++ 和 i+=2 这种操作不属于原子操作(c++是属于的),所以我们就引入了我们的 Aotmic 类。二、Atomic基于 Lock-free 算法,限制多线程对同一个资源进行处理的,它...

2018-03-28 09:47:55 352

原创 TCP 拥塞控制

前提:我们都知道 TCP 是传输层的协议,网络请求经过传输层到达网络层之后是通过 ip 包进行传输的。如果我们发送方大量的 ip 包的时候,有可能我们的链路资源有限,那么我们的 ip 包就有可能丢失或者被丢弃,这样我们的请求就不是绝对安全的,那接下来我们就说一下,TCP是如何处理前面的情况的。 一、什么是网络拥塞是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能...

2018-03-26 17:49:18 562

原创 HTTP缓存

HTTP 缓存在HTTP 整个体系结构中是非常重要的一部分,当我们访问一个资源的时候,如果本地有“已缓存的副本”,就可以直接从本地提取这个资源。使用缓存有以下优点:1、缓存减少了冗余数据的传输,节省了网络费用2、缓存可以缓解网络瓶颈的问题3、缓存降低了对原始服务器的要求。服务器可以更快地相应,避免过载的出现 冗余数据的传输:当我们访问服务器界面时,服务器会多次传输同一份文档,每次传送给一个客户端。...

2018-03-23 20:03:06 1094

原创 JDK中的动态代理

一、概述我们都知道实现代理的两种方式,一种是静态代理,一种是动态代理,我们都知道静态代理有一个很大的缺点扩展性不好,当需求发生变化的时候,我们就需要写很多的代理类,也就是因为这个原因,动态代理就应运而生了。动态代理的的使用还是非常广泛的,比如 spring 框架中,移动端的 Retrofit 框架,都运用了动态代理,就是因为运用了动态代理,使我们的代码简洁了很多。那么怎样去实现动态代理,其实实现动...

2017-12-25 20:22:33 264

原创 Android 绘图那些事

一、概述本周学习计划就顺利的进行到了我们的画图阶段,在本周的学习过程中主要是对画图中的三个比较重要的 API 进行了学习,这三个 API 分别是 Canvas 、Paint 和 Path,其实学习这些内容的原因都是为了之后的自定义 view 做准备的,我们都知道我们的自定义 view 里面的东西都是需要通过我们自己去绘制的,所以下面我们简单介绍一下我们常用的 API 和我在学习

2017-10-14 12:07:30 543

原创 Retrofit 源码解析

一、概述作为 Android 开发者的我们都知道,当我们写一个网络请求的时候,需要写很多代码,很不方便,在这样的背景下,Retrofit 就应运而生了,Retrofit 是当下比较热门的一个框架,如果你不了解 Retrofit 的用法,请点击这里,那本文主要讲解的就是我们的 Retrofit 的原理,在了解他的原理之前,你首先要了解的就是动态代理,Retrofi

2017-09-23 10:00:45 428

原创 okhttp 流程和优化的实现

一、概述  最近一直在忙着研究 okhttp,看了两周了,感觉东西实在是太多了,如果让我细致的写,我感觉能写 10 篇都写不完,那东西虽然是很多,但是主要的流程我们还是需要了解的,这篇文章我主要介绍以下 okhttp 中的流程,还有一些做的好的东西,之后再去将一些细节上的东西,这篇文章主要说了一个大概的内容,就是帮助你大致了解一下 okhttp 的实现,废话不多说了下面进入正题。 

2017-09-16 14:34:40 4462 1

原创 https我所知道的一切

一、概述     这几天闲暇的时候没什么事情做,突然对 https 的加密算法有了很浓厚的兴趣,学着学着就把一些知识都学了一下,那这篇文章主要讲了以下几个方面,首先说了一下 http 存在的不足,然后说一下我们 http 中用到的加密算法,最后说一下一个请求在我们的 https 中执行的流程,好了话不多说我们赶紧进入我们的正题。二、http 中存在的不足

2017-08-31 21:23:21 490

原创 Rxjava2从入门到源码(二)

一、本期要点      写博客就应该和鞋小说一样,时常更新,那今天主要讲的是 rxjava 的另一部分内容,线程切换,之前的文章讲的是一些基础的用法,那今天就讲一下 rxjava 中的另一个强大的功能,线程切换,当我们需要在 rxjava 中执行耗时代码的时候,线程切换就很重要了,那今天我们就领略一下线程切换的魅力       二、subscribeOn 我们可以看到这

2017-08-25 19:40:12 291

原创 Rxjava2从入门到源码(一)

一、概述二、响应式编程三、最常用的 API:Observable 和 Observer四、数据流的控制主要就是 map 和 flagmap

2017-08-23 23:26:31 445

原创 Android SharedPreferences

一、概述二、相关 API 和使用方法三、使用中遇到的坑四、源码分析总结

2017-08-10 22:29:57 444

原创 Android BroadcastReceiver

前面四大组件已经介绍三个了,那就差 BroadcastReceiver 了,本来打算周末去写的,但是代码在公司了,所以就今天给大家介绍以下四大组件的最后一课,BroadcastReceiver 。一、概述BroadcastReceiver 意思就是广播的意思,那在我们的平时生活中,如果有人发送广播的时候,当我们听到广播的时候会进行一些列的动作,那 Android 中的广播和我们生活

2017-07-17 21:10:50 448

原创 Android ContentProvider理解与实践

一、概述

2017-07-11 23:39:55 576

原创 Android Activity生命周期和启动模式

假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐。这周六周日是在是太忙了,导致博客没有及时更新,在这里深表惭愧,所以这才加班加点完成一篇博客来弥补我的过失,好了不说那么多了,进入正题,今天主要讲的是 Activity 的声明周期和启动模式,其实这两个地方的基础知识本篇不会介绍很多,本篇主要介绍的是我们在使用中遇到的问题,和我们在使用中正确的使用规则。一

2017-07-10 22:20:20 381

原创 Android Service个人理解

代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。一、概述         这段时间欠的东西太多了,四大组件之前都没有整理过,这次有时间统一整理一下,知识都整理的差不多了,知识差把它们分享出来,那今天就来分享一篇关于 Service 的文章,Service 的意思为服务,那这个服务也是由 ContextWrapper 派生出来的,那么他也会有 C

2017-07-05 21:34:03 432

原创 Android 资源文件

当你还不能写出自己满意的程序时,你就不要去睡觉好久没写博客了,最近项目实在太紧了,所以在博客这里花的时间就少了很多。不过以后的每周末都会更新一篇文章,不管时间多么紧张,都会去找时间学习一些知识拿出来分享。以后的每次博客都会写上一句话来激励这个不怎么优秀的自己。下面进入正文。今天主要讲的是我们 Android 中的资源文件,其实主要是我们的自定义的一些 Drawable

2017-07-04 21:31:36 496

原创 Android bitmap讲解与实践

一、概述bit二、Bitmap 的创建三、BitmapFactory 创建 Bitmap四、使用中的注意总结:

2017-06-13 20:00:05 357

原创 Android Intent 和 Intentfilter

一、概述在我们的 android 开发中如果你需要从一个 Activity 到另一个 Activity 那么就需要用到这个 Intent,android 中有四大组件,在我看来 Intent 也应该归入四大组件中成为 android 第五大组件,这也标志着 Intent 在 android 开发中的重要性。那么下面就让我们进入 Intent 的世界。二、Inte

2017-06-11 13:01:42 315

原创 Android handler讲解与实践

一、概述   在我们的平常的开发中,我们通常是用 Handler 去在线程中更新 UI ,单其实 Handler 的主要用途是消息处理机制。其实 handler 在我们 framework 中也很多地方用到了,比如,Activity 生命周期的回调,还有很多实践的传递机制,都用到了 handler,那么现在我们就进入 handler 的世界吧。为什么谷歌只允许我们在主线

2017-06-04 23:33:17 446

原创 Android fragment(一)

一、概述

2017-05-01 22:54:46 438

原创 android webview上传文件

一、概述

2017-02-27 19:31:11 600

原创 android 实现view从屏幕中间划出

一、概述前几天接到一个需求,就是一个LinearLayout从屏幕的中间划出,之前我是一点头绪没有的的,可是后来我想到了属性动画这个好东西,然后我先和大家说一下我的思路:1、首先我们要实现的就是滑动出来,这个还是比较简单的,我们只需要用一个属性动画向上滑动就可以了。2、我们要实现LinearLayout从屏幕中间出来,我是这么想的,我们动态去改变viewLinearLayout高度,通

2017-01-18 23:10:13 1886

原创 android侧滑高大上效果

一、概述        侧滑的实现效果有很多,有谷歌官方的Drawerlayout实现侧滑,不过今天要介绍的是用HorizontalScrollview实现侧滑效果,其实HorizontalScrollview实现侧滑非常简单,我们只要自定义一个View然后继承HorizontalScrollview就可以的,我先说一下思路,首先我们要在HorizontalScrollview中放入两个布局一

2017-01-13 19:13:56 1082

原创 android属性动画

android动画

2017-01-07 16:10:37 3510

原创 Rxjava基础自己总结的有不足欢迎探讨

一简介、Rxjava:一个在java vm上使用可观测的序列来组成异步的、基于事件的程序的库。简单一点的说就是 实现异步操作的库      用它的主要原因就是简洁,随着逻辑的复杂它依然可以保持简洁二实现操作的基本对象、Rxjava中主要有四个对象组成Observable被观察者(事件源)、Observer现在主要运用的是Subscriber抽象类他是对Observer的扩展 (观察者)

2016-04-29 09:58:15 858

原创 hdu1521

题意:中文题目我就不说了啊思路:其实这道题的思路就是先求组合,然后再求排列就可以了这道题的组合我是用母函数求的然后再乘k的阶乘就是答案了下面看代码:#include#include#include#includeusing namespace std;double a[15];void factorial(){ a[0] = a[1] = 1;

2015-05-22 18:36:15 487

原创 poj1695

题意:给你一列数,然后问你这列数是不是可图的,这道题需要用到Havel-Hakimi定理的方法来构图我先说一下这个定理:1.先把这列数排序2.把这列数第一个数后面的没个数都-1。3,删除第一个数,然后在排序重复步骤二直到出现负数为止,如果出现负数说明是不可图的,如果出现都是0了 那就是可图的举个例子:序列S:7,7,4,3,3,3,2,1  删除序列S的首项 7 ,对其

2015-05-22 18:24:12 529

原创 poj1014

题意:就是从1到6给你每个数有几个,然后问你这些数能平均分给 两个人么刚看到这个题,直接背包    这就是背包九讲中说的多重背包,但是我用母函数解决起来也非常快,思路就是看看中间值系数是否为0就可以了下面看代码:#include#include#include#includeusing namespace std;int c1[200005],c2[200005];

2015-05-22 18:14:16 556

原创 poj 1942

题意:就是从一个角到另一个角有多少种走法刚看到这道题有点懵啊  无从下手,后来才知道用排列组合做这道题如果细看的话,我们知道我们需要m+n步    那我们就选n步走下也就是Cm+n/n   也就是这道题的答案了下面看代码:有两个地方需要注意我已经在程序中说明了#include#include#include#includeusing namespace std;uns

2015-05-20 20:19:16 650

原创 poj 1019

题意:给你一列数,然后问你这列数中的第几个数是什么11212312341234512345612345671234567812345678912345678910123456789101112345678910这道题啊 刚开始的时候忘记考虑两位数算两个数字三位数算三个数字了,但是我们怎么判断三位数是三个数字呢我也是在网上看到一个公式log10(n) +1    就是n的位数占几

2015-05-20 20:04:13 526

原创 poj 1850

题意:这个题就是给你一个序列a,b,c,d,e,f.............z,ab,.........az,bc,......vwxyz                                                  1,2,3,4,5,6            26,27......  51,52       83681然后给你一个序列问你这个序列是第几个序列下面

2015-05-19 18:12:18 543

原创 poj 2084

题意:其实说白了就是求卡特兰数不过这个数据很大要用到大数思路:我先说一下卡特兰数吧有一个求卡特兰数的公式:h(n)=h(n-1)*(4*n-2)/(n+1);这个公式应该记住的然后我在说一下大数的乘法和除法:void multiply(int *a,int MAX,int b) //大数乘法{ int i,array = 0; for(i = MAX -

2015-05-18 19:59:40 473

原创 hdu2159

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2159中文题  题意我就不说了思路:一看就是一道背包的题目   还可以肯定的是一道多重背包的题目下面看代码:#include#include#include#include//const int MAXN = 0x7ffffff;int dp[105][105];int ex[1

2015-05-18 19:21:27 529

原创 hdu1548

题意:一个人要从某一层电梯到另一层电梯 ,每层电梯都只能上或者下特定层数,问你从某一层到另一层最少需要按多少次电梯按钮如果你看了数据范围的话你就会想到用BFS广搜用广搜就会想到队列  我先说说队列的几个基本语句吧includequequeq入队q.push(x)将x接到对位q.pop(x)弹出队列的第一个元素q.front(x)访问数组的第一个元素q.back(

2015-05-18 18:47:28 1487

原创 hdu4310

我先说一下题意吧:就是对面有很多对手  你每次可以打掉一滴血    然后给你了每个对手的血量  和每回合能攻击多少血  然后让你求出你最少消耗的血量思路:这道题我最初的思路就是把每个人的攻击力排序 然后依次杀掉攻击力重大到小的对手。交了一万次啊   还是不对 最后问了大神才知道要用攻击力和血量的比值来排序 你们可以自己在纸上推一下  这里我就不写为什么了下面看代码#includ

2015-05-18 18:29:35 620

原创 hdu1404

题意:给一个六位数,两个人轮流修改这个六位数,你可以将其中的一位改成比他小的任何一个数,当这位为0的时候他的右边就可以删除掉,最后一个把这个六位数删除的为赢家。思路:我们定义一个数组sg[]来存储这个数是否是必胜点,如果为必胜点为1,必败点为0.由题意我们可以知道,1这个点为必败点,那么可以到达1这个点的都是必胜点,可以到达1的有2,3,4,5,6,7,8,9  还有10****  星号代

2015-04-16 22:40:02 829

原创 hdu1097

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1079这有事一道找规律的题,我们可以看出来不管怎么变换他们的奇偶都是会变的,出了9.30和11.30那么我们就把他们两个特殊考虑就是了11.4是奇数态那么偶数态一定是赢的所以只要判断给的是奇数态还是偶数态就行了下面看代码:#include#includeint main(){

2015-04-16 20:19:46 651

原创 hdu1847

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1847思路:这道题本来不想写的 ,不过不是纯纯的博弈是一道找规律的题,不过这个规律需要用博弈去找,如果你写了很多组数据你会发现如果n对3去模如果为0那么一定会赢下面看代码吧:#include#includeint a[12];int main(){ int n;

2015-04-16 20:14:38 531

原创 hdu2149

题意:题意是中文的大家自己读吧。。。思路:这道题明显是一道巴什博奕的题,我们得先求出来P和N必胜点和必败点,然后去看如果n是必胜点那么我们就看离他最近的必败点的距离就可以知道有多少种情况了然后如果成本价小于加价的时候就要特殊考虑了下面看代码:#include#include#includeusing namespace std;int main(){ int

2015-04-16 20:12:47 665

android仿qq侧滑

android仿qq5.0侧滑解决一切侧滑问题采用HorizontalScrollView

2017-01-13

android属性动画基础代码

android属性动画基础代码

2017-01-07

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

TA关注的人

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