自定义博客皮肤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)
  • 收藏
  • 关注

原创 两种重定向的区别及返回码

请求转发forward作用于服务器内部,request是复用的重定向redirect返回一个新的url给客户端,这就是okhttp的retry and follw拦截器为我们做的事情301、302是两个暧昧难分的概念301:就是资源已经永久移除,需要进行重定向302:就是老家的资源暂时还在,下次过来可能就不用重定向了,当然你也可以去新家,也就是重定向我们尽量使用301哦,除非你对性能要求很苛刻。而...

2018-03-30 22:23:55 739

原创 数据库事务及mysql隔离级别

学习自:https://www.cnblogs.com/fjdingsd/p/5273008.html数据库要好好学!还有操作系统啥的。啥是事务我面试时这样说的:为了缓存一系列CRUD操作,进行读写分离,如果你想要这系列操作,就update了,如果不要,就回滚了。其实我忘了,我真的忘了。百度了下,发现就是CRUD操作的集合,任何查找或者修改数据库的操作,都是事务的一个单元。事务其目的呢?提供了数据...

2018-03-30 22:03:03 262

原创 简单了解HTTP协议

最近被阿里面试官的HTTP协议和网络相关的问题安排了一波,HTTP是必须要掌握的,而且我在携程、网易的笔试发现了许多HTTP的影子,其重要性可见一斑。HTTP的弱点延迟:1.浏览器一般对同一个host最多有4个链接2.DNS解析,缓存处理3.握手4.明文,client、server无法验证各自身份,header内容过大1.0其实也是支持长连接的,但是默认不开启缓存:强制expires、对比if-m...

2018-03-30 00:57:18 198

原创 快排及时间复杂度简单证明

快排这里不再赘述 主要是时间复杂度 先写一下快排代码void quick_sort(int a[], int start, int end) {    int val = a[start];    int s = start;    int e = end;    while(s < e) {        while(s < e && a[e] > val) e...

2018-03-29 09:44:49 14331 3

原创 背包dp 来自网易笔试的双核处理题

题目来自https://www.nowcoder.com/test/question/9ba85699e2824bc29166c92561da77fa?pid=4575457&tid=14489937思路学习自https://blog.csdn.net/u011349602/article/details/69947849一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务...

2018-03-26 15:14:23 243

原创 风趣探讨:为什么需要一个接口,一个接口的实现类,而不是直接调用类里的方法

之所以叫风趣探讨,我觉得这个话题非常有意思,也非常重要。知乎上有个老哥说:能问这个问题,说明(1)你很会思考(2)编程水平还是处于起步阶段。(https://www.zhihu.com/question/20111251)我觉得他说的很有道理。那么,这个问题,我们弄懂了,透彻了,并且身体力行了,我们的面向接口思想或许就能提升。这样写的第一个作用:“不如直接就在这个类中写实现方法岂不是更便捷”,你怎...

2018-03-23 23:04:06 5936 2

原创 源码追溯(最新版本)——startActivity的整个流程

本文可能是独一家,网上的基本都已经老了。本文阅读起来很简单,因为仅仅是追溯,不必强行记忆,而且我们在追溯的过程中可能会碰到一些问题,解决了这些问题可以提升我们阅读源码的能力,这是本文除了满满的知识点以外又一大好处。startActivity(new Intent(this,Main2Activity.class));@Overridepublic void startActivity(Inten...

2018-03-23 22:00:35 1501

原创 View测绘时机的探讨,梦开始的地方

这真的是一片好文,本人绞尽脑汁之作,还望能帮助看官一二!因为网上对于view测绘开始的文章几乎没有,而且自己找的话需要对activity的启动和view绘制的流程有着深入的理解,所以我认为工作3年内的开发者可能都无法get到这个点。下面开始正文。 view的绘制时机一直在我心里是一个比较困惑的地方,它究竟是从哪里开始的?为啥我只有在onWindoswFocusChanged中才能拿到vie...

2018-03-23 21:06:48 420

原创 面试必考:HashMap容量为2次幂的原因

学习自http://nanguocoffee.iteye.com/blog/907824static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}i = (n - 1) & hashhash方法可以计算一...

2018-03-22 17:58:25 7011 3

原创 面试必考:get和post的区别,打破谬论

学习自:http://www.nowamagic.net/librarys/veda/detail/1919有一篇学习restful特别好的文章https://zhuanlan.zhihu.com/p/30396391?group_id=937244108725641216我是捂着嘴看完的 生怕发出一声狗叫正文get请求和post请求,并没有说,get请求是不可以拥有一个body的这两个请求是面向...

2018-03-22 16:48:07 1414 1

原创 美团Android实习一面

GC机制答:循环引用计数、可达性->标记清除,标记整理,1:1,8:1:1,标记移动,分代收集结合安卓,分析,什么是具体什么是一个可达的情况呢答:activity thread的main入口,声明了looper,looper中有msg,msg.tar=handler,handler可能包含一个activity的引用内存模型答:两个角度诠释。线程:主内存工作内存,拷贝修改刷新回去;实际角度:堆...

2018-03-21 20:08:32 367

转载 restful

http://blog.csdn.net/chenxiaochan/article/details/73716617  REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一...

2018-03-21 20:04:50 135

转载 get post 区别restful规范

http://blogread.cn/it/article/7115?f=wb在网站开发的时候通常会对POST和GET产生混淆,让人混淆的主要原因是基本上POST能解决的问题GET都能解决,反之亦然。今天就来说说者两者的区别。GET:字面理解就是获取资源GET请求标准上是幂等的(用户应该认为请求是安全的-资源不会被修改,这里所以说应该是服务器端并不保证资源不会被修改)GET请求可以被浏览器缓存;响...

2018-03-21 20:02:03 4006

原创 Java byte转化成file

java io 真是 我的一块心病~~~拿到文件File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/aaa.jpg");根据文件构建文件输出流FileOutputStream fos = new FileOutputStream(file);写byte到文件输出流里fos.writ...

2018-03-21 17:43:18 16419

原创 观察者模式在项目中的使用

最近用到的场景:1.购物车2.聊天消息我在把东西放到购物车里的时候,UI有好多地方需要更新,而且我对购物车内的商品进行增删操作的场景又特别多,这个时候去在每一个地方都去进行一个修改肯定是不好的。解决方法:监听数据集的变化。但是怎么监听数据集的变化是一个巨大的难题。这个时候你就需要封装数据集,封装add、remove操作。那样的话就可以在对数据集的操作之后增加notify所有观察者的操作。我的所有的...

2018-03-21 17:30:30 2860

原创 Android实习-阿里一面

设计模式glide的坑生产者消费者的线程同步问题常用的同步方式hashmap在并发的时候会出什么问题知道什么并发容器自定义view线程池okhttp源码 就问了看没看过获取知识的途径泛型何时用到设计模式答:在用的有:单例 建造者 外观glide的坑答:url返回一致,默认读取缓存。解决:禁用缓存或者叫后台返回不同的url生产者消费者答:双方忽略各自进度细节,产品放到缓冲区里同步答:sync、ree...

2018-03-20 17:58:34 186

原创 匿名内部类为什么有时候引用外部成员需要final

这里草草讲一下是生命周期的问题比较容易出现在listener中runnable中原因:生命周期的问题listener的代码,和runnable的代码,就算你放在方法的局部,他脱离了方法,依然可以执行。但是另外的代码不行,他们的生命周期就停留在这个方法作为栈帧在方法栈的时候,方法执行完了就要挂掉了所以解决方法采用final。栈帧内有一个局部变量表,在栈帧出栈时就不复存在。如果不采用final,引用和...

2018-03-20 16:25:06 316

原创 编程之余对人品的感悟

由于郭神lite pal非常好用,我也是如他在第一行中对lite pal的开篇介绍中说的一样:用了lite pal你恐怕再也不想碰sqlite了,导致我在年少轻狂的时候,沉迷于框架。随着能力的渐渐提升,终于意识到要重新拾起sqlite了。于是我重新去看了第一行代码,看到了郭神对于lite pal的介绍,我突然想起来,在我初学的时候,我甚至不知道lite pal是郭神开发的!直到后来,同学告诉我我才...

2018-03-19 23:58:21 212

原创 OkHttp3.7.0架构+原理分析

最终总结realcall.execute1.dispatcher.execute入队列2.get…3.finish出队列 提振 执行 realcall.enqueue=dispatcher.enqueue(Async)1.get2.回调3.finish出队列 提振 执行 拦截器retryfollw失败重试重定向,直接发起新的请求(条件允许,复用连接) Bridge翻译官contentLength,...

2018-03-19 21:43:25 516

原创 线程和进程的区别和联系

这是进程进程更倾向于内存管理的概念他在自己的区域掌控自己的资源 也不越界线程更倾向于cpu的运行当前的计算机的cpu总要跑在一个线程上 但是又无法做到同时跑在多个线程上看似多线程可以同时运行 其实他们之间是通过时间片的切换来做到的讲一些简单的结论一个程序可以有不止一个的进程一个进程可以没有线程,作为空进程存在,但是由于里面没有线程,cpu在这里无法得到执行,cpu的执行依附于线程线程无法脱离进程而...

2018-03-19 16:22:27 352

原创 用注解打造一个简易的RecyclerView Adapter

CommonViewHolder 先上一下这个全世界都在用的代码public class CommonViewHolder extends ViewHolder { private SparseArray<View> sparseArray = null; public CommonViewHolder(View itemView) { super(i...

2018-03-19 09:52:33 375

原创 接口的作用之一,定义规范

以Deque举例Deque是双向队列Deque    按照我们一般的理解,Deque是一个双向队列,这将意味着它不过是对Queue接口的增强。如果仔细分析Deque接口代码的话,我们会发现它里面主要包含有4个部分的功能定义。1. 双向队列特定方法定义。 2. Queue方法定义。 3. Stack方法定义。 4.Collection方法定义。第3,4部分的方法相当于告诉我们,具体实现Deque的类...

2018-03-19 09:18:59 905

原创 数组的循环右移问题

还有一个要求是只用2个变量我的思路 不知道对不对每个位置都会被移到某个位置上 只需要找到那个位置即可 这个对应关系是int calculateTargetIndex(int index) {    if(index < k && index >= 0)        //在最后k个中拿        return index + k;    else        re...

2018-03-18 00:30:27 469

原创 线程安全与锁优化

学习自深入理解JVM,总结的比较深刻使得线程安全的手段:方法1:互斥同步:共享数据同一时间只能被一个线程访问(或者是一些,当使用信号量的时候)sync:会在同步块前后生成字节码指令是可重入的,不会出现自己把自己锁死的情况Java的线程是映射到操作系统的原生线程之上的虚拟机自身会有优化:在通知操作系统阻塞线程之前,加入一段自旋等待过程,避免频繁的切入到核心态中 Reen:等待可中断,如果这个人用厕所...

2018-03-17 16:34:36 165

原创 Java内存模型与线程

学习自深入理解JVM,仅做个人记录使用为了消除不同硬件、操作系统之间的差异性简单来说:我们是在和JVM进行交互,适配问题,交给JVM去做主要目标:定义变量访问规则——把变量存储到内存和从内存中取出变量这样的细节。这不包括局部变量和方法参数,虽然这些引用指向的对象是存在heap中的,但是引用本身是存在于stack的局部变量表中的。内存模型规定内存分为主内存和工作内存。所有的变量都存储在主内存中,工作...

2018-03-17 16:33:32 147

原创 正确理解volatile关键字

volatile3个特点:1.强制刷新主内存2.不保证原子性3.防止指令重排序这3点之前我也学习过,我也认为自己搞懂了,但是在看了JVM后我对其原理产生了质疑,最后终于理清楚了,特此记录。 1 public class RunThread extends Thread { 2 3 private boolean isRunning = true; 4 5 public ...

2018-03-17 11:45:49 278

原创 Java集合框架知识及HashMap和HashSet的区别

HashMap和HashSet的区别HashSet实质(1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap以(key-value)的一组对象作为元素,且HashSet拒绝接受重复的对象.HashMap可以看作三个视图:key的Set,value的Col...

2018-03-17 00:10:26 762 1

原创 Android自定义守望先锋loading学习

学习自http://blog.csdn.net/chen_zhang_yu/article/details/53396801#效果只是学习了这个loading的创意,具体制作没有学,因为他是用surface view做的,我不会不过也从他这里学到了drawPath的技巧,这里总结下moveTo只移动lineTo画直线cubicTo和quadTo画曲线arcTo画弧线我的实现效果(很烂,因为透明度不...

2018-03-16 15:08:06 364

原创 静态代码块的加载时机及JVM的理解

学习自:http://blog.csdn.net/jiese1990/article/details/40154329class MyClass1 {      static {//静态块          System.out.println("static block ");      }  }  public class Main {        Class[] classArray = ...

2018-03-16 00:29:02 2038

转载 Lock和synchronized的区别和使用

转载自:https://www.cnblogs.com/baizhanshi/p/6419268.html我简单获取了这些知识:sync要看锁在哪里,哪个对象,还是类;lock支持同时读,tryLock得知是否获取成功,需释放,而且锁的时候需要的是同一个lock,如果是局部变量,就没啥用今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所...

2018-03-15 23:50:37 275

原创 Android自定义星星控件,精确到float显示

http://blog.csdn.net/a756213932/article/details/51939422这个老哥给了我思路但是他竟然用了BitmapShader,我觉得是完全没有必要的,drawBitmap(..rect1,rect2..)这个api已经为我们处理好缩放了还有这个老哥精确到0.1,我这里精确到float我这里没有弄竖排的,因为项目只有横排的需求,不愿浪费这个时间去完善这里没...

2018-03-15 16:00:26 414 1

原创 网易有道Android实习2面面试题+答案

题二面: application里面创建子线程处理耗时任务能不能代替service里面处理耗时任务?子线程里面能不能创建两个looper? 快速排序(口述)和排序的复杂度? prim算法? 如何证明贪心算法? 双亲委派模型? 权限关键字的含义,private除了set,get方法访问,还有什么方法? java中的四种引用 内存泄露和内存溢出的区别 java注解的实现解答application里面创...

2018-03-13 20:57:21 1053 1

原创 面向对象之get、set和直接获取public字段的区别?

http://blog.csdn.net/llittlebird001/article/details/52725245#reply这哥们也在探寻这个问题,引发了我的一些感触,这里也总结下为啥别人都在set get获取对象,有没有人曾思考过这个问题背后的本质原因呢?我想说,大部分的人都会给你举个生动形象的例子,可是他们还是不能使发问者真正弄懂,或者说他们自身就不懂下面谈下我的理解:get、set的...

2018-03-13 15:21:32 2313

原创 TextView 修正drawable属性 可以控制大小

学习自:http://blog.csdn.net/u014702653/article/details/52304656非常简单,但是特别实用values/attrs<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="DrawableTextView">..

2018-03-13 11:17:48 754

原创 ViewPager实现无限轮播

学习自http://blog.csdn.net/zhiyuan0932/article/details/52673169#reply很贼的思路(4)1234(1)直接放代码吧 大意思没有public class MainActivity extends AppCompatActivity { private ViewPager vpTest; @Override pro...

2018-03-12 10:54:46 218

原创 Android开启Lambda,瞬间让你的代码量缩小99%!

Android会有这样的缩进原来试着修改原来的,按他的缩进形式去写会提示Lambda未开启alt-enter,点选第二个自动配置好lambda后,接下来再看另一个例子已经变成灰色了我们再在new Runnable()附近alt-enter什么 还能简化?再来!亏我还学了一段时间Lambda,现在有了AS,瞬间白学了啊啊!!...

2018-03-11 13:25:47 666

原创 网易有道Android实习面试题+答案

题来自牛客网https://www.nowcoder.com/discuss/66548一面: 内部类里面可以写静态方法么 handler handler内存泄露 线程通信方法 loop可以停止么 事件分发 view绘制流程 线程的停止方法 activity的生命周期 singletask的应用 activity的启动模式 下拉刷新与事件分发结合 内部类为什么可以引用外部类 下面给出完美解答,自己...

2018-03-11 00:15:28 992 1

原创 透彻理解Handler内存泄漏

Handler其实大多的内存泄漏,都是Activity想关闭了,可是有个对象仍持有他的强引用,这个倒是小事,因为可达性算法能处理好这种情况。但是,考虑一个延时消息的情况。ActivityThread的main函数入口,创建了主线程的Looper,延时消息就会存在于Looper中,而message对象的target字段又是Handler,而如果你通过匿名内部类或者非静态的内部类的形式,Handler...

2018-03-10 20:46:50 265

转载 Glide CenterCrop与Transformer的共存问题

转载自:https://www.jianshu.com/p/ef0ed5b53eb11.CenterCrop与Transformer的共存问题因为此bug无法在使用GridLayoutManager和StaggeredGridLayoutManager等其他情况中使用.centerCrop选项,所以要实现此功能需要在ImageView中去设置scaleType为centerCropBut,如果你想...

2018-03-09 10:19:22 618

原创 Glide4.0后支持圆形图片及其使用方式

搬运自:http://blog.csdn.net/u011866128/article/details/75084787弄成圆形图片很简单:1.回调获取bitmap2.clip画布3.setXfermode但是用它原生的api肯定是最好的!compile 'com.github.bumptech.glide:glide:4.1.1'注意你的版本,这是4.0后开放的功能使用方式[java] view...

2018-03-09 09:33:21 12607

空空如也

空空如也

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

TA关注的人

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