自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 算法系列------猜数字

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。 c...

2019-10-31 22:29:54

阅读数 26

评论数 0

原创 算法系列------N叉数前序遍历

给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 /* // Definition for a Node. class Node { public int val; public List<Node&g...

2019-10-29 22:01:40

阅读数 10

评论数 0

原创 算法系列------回文数

class Solution { public boolean isPalindrome(int x) { int j=0; if(x<0) return false; String xStr = x + &qu...

2019-10-28 05:54:58

阅读数 7

评论数 0

原创 算法系列------两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 class Solution { public int[] twoSum(int[]...

2019-10-27 16:05:35

阅读数 14

评论数 0

原创 算法系列------二叉树的中序遍历

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int...

2019-10-18 19:53:00

阅读数 7

评论数 0

原创 算法系列------二叉树的前序遍历

222

2019-10-17 22:11:02

阅读数 8

评论数 0

原创 算法系列------验证回文串

333

2019-10-16 19:55:36

阅读数 6

评论数 0

原创 算法系列------用队列实现栈

22222

2019-10-15 21:47:11

阅读数 8

评论数 0

原创 算法系列------利用栈实现队列

11

2019-10-14 22:02:11

阅读数 9

评论数 0

原创 算法系列------括号匹配算法

public static Boolean isV(String s){ Stack<Character> stack = new Stack<>(); for(int i=0;i<s.length();i++){ if(s.charAt(i)==�...

2019-10-13 20:17:27

阅读数 6

评论数 0

原创 算法系列------队列

// 用数组实现的队列 public class ArrayQueue { // 数组:items,数组大小:n private String[] items; private int n = 0; // head 表示队头下标,tail 表示队尾下标 private int ...

2019-10-12 21:10:03

阅读数 3

评论数 0

原创 算法系列------手写栈

class ArrayStack { private long[] a; private int size; //栈数组的大小 private int top; //栈顶 public ArrayStack(int maxSize) { this.s...

2019-10-11 18:18:33

阅读数 9

评论数 0

原创 算法系列------链表是否有环

/*** * 用快慢指针判断链表是否有环 * @param head * @return */ public boolean isCircleLinkedListNode(ListNode head){ if(head == null){ return false;...

2019-10-10 20:58:28

阅读数 8

评论数 0

原创 算法系列------反转链表2

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL /*...

2019-10-09 21:20:48

阅读数 3

评论数 0

原创 算法系列------合并两个有序链表

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } ...

2019-10-08 22:12:50

阅读数 3

评论数 0

原创 算法系列------反转链表

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } ...

2019-10-07 21:14:47

阅读数 6

评论数 0

原创 算法系列------单链表

public class LinkedList<E> { // 头节点 private Node top; // 链表长度 private int size; // 添加方法 public void add(E e) { Node newNode = new Nod...

2019-10-06 22:50:44

阅读数 3

评论数 0

原创 算法系列------快速排序

快速排序 Public class QuickSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { // 对 arr 进行拷贝,...

2019-10-05 21:05:17

阅读数 6

评论数 0

原创 算法系列------插入排序

public int[] insertSort(int[] arr){ int n = arr.length; for(int i=1; i<n-1;i++){ // 记录要插入的数据 int tmp = arr[i]; // 从已经排序...

2019-10-04 22:37:05

阅读数 3

评论数 0

原创 算法系列------选择排序

时间复杂度 O(n²) 原理 选择排序 public int[] selectSort(int[] arr) { //使用变量n存放集合长度 int n = arr.length; //遍历 for(int i=0; i<n-1; i++) { //纪录最小值下标位置 in...

2019-10-03 17:56:38

阅读数 5

评论数 0

原创 算法系列------冒泡排序

这是我第一个知道的算法! 冒泡排序 public int[] bubbleShort(int[] arr) { for(int i=0; i<arr.length-1; i++) { for(int j=0; j<arr.length-1;j++) { if(ar...

2019-10-02 22:01:45

阅读数 7

评论数 0

原创 算法系列------序(1)

时间复杂度和空间复杂度 算法追求“快”和“省”,而“快”就是时间复杂度,“省”就是空间复杂度。 用大O表示复杂度 数据结构 数据结构的含义 1 代表了储存数据的集合 2 代表了储存数据之间的特定关系 8种数据结构 初阶数据结构(4种) 数组(Array) 链表(Linked list) 堆栈(...

2019-10-01 22:10:51

阅读数 4

评论数 0

原创 算法系列------引言

最近连续两次在算法上栽了跟头,甚是狼狈,算法对于我这个非计算机专业的程序员来说,在最初知道算法存在的时候,一直认为这是一个需要很高深的数学知识才能了解的知识,随着知识的累积,也逐渐认清了算法的一些面目。 从实用角度来出发,我个人觉得我并不需要具备什么高深的数学基础,那么算法是什么,我决定通过我个人...

2019-09-30 19:23:05

阅读数 15

评论数 0

原创 猫眼Android面试感悟分享

前言 从公开简历以来也面试了4家,猫眼是第四家,这里也是通过了技术二面,再等三面和hr,首先先说点个人的面试感受吧,谈不上经验,因为面的次数比较少。 场景化问题增多 很多技术点不再是单纯的原理或者api层面的东西,很多都是结合一定的应用场景让你来说实现方案,甚至部分代码细节,举个例子...

2019-09-04 15:23:48

阅读数 112

评论数 1

原创 一次面试总结

本篇基本不涵盖技术解析,只是我个人久违的一次面试总结。 早在5月份就离职了,上家公司P2P行业,至于为什么离职相比了解P2P的都应该能猜个大概,从5月一直到8月 这3个月基本上就处于放飞自我的过程,为什么没有急着找工作,因为我有了一个女儿,这是我今年最开心的事情了,在家做一个全职奶爸,感觉特别的...

2019-08-26 20:50:06

阅读数 42

评论数 0

原创 Android系统启动

Boot ROM ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。 BootLoader 参考计算的BIOS,系统...

2019-08-22 10:50:12

阅读数 13

评论数 0

原创 Java线程----安全篇

本篇是Java线程系列的第三篇,前两篇地址如下 Java线程----实现篇 Java线程----调度篇 线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要额进行额外的同步,或者在调用方进行任何其他的协调操作,调用对象的行为都可以获得正确的结果,那...

2019-08-07 11:28:05

阅读数 117

评论数 0

原创 Java线程----调度篇

线程调度是指系统为线程分配处理器使用权的工程,主要调度方式有两种: 协同式线程调度(Cooperative Threads-Scheduling) 如果使用协同式调度的多线程系统,线程的执行时间由线程本身控制,线程把自己的工作执行完成之后,要主动通知系统切换到另外一个线程上。 优点:...

2019-08-07 09:11:25

阅读数 22

评论数 0

原创 Java线程----实现篇

线程 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源,又可以独立调度。 线程的实现 实现线程主要有3种方式:使用内核线程实现、使用用户线程实现和使用用户线程加轻量级进程混合实现。 使用内核线程实现 内核线程(Ke...

2019-08-06 15:37:31

阅读数 25

评论数 0

原创 Okhttp源码解析(二)

在上一章的结尾我们遗留了一个很重要的方法 Response response = getResponseWithInterceptorChain(); 该方法返回的是一个Response对象,相信使用过OkHttp的童鞋对于这个对象应该不陌生,这个就是Http网络请求最终的响应对象。那么g...

2019-01-08 16:28:35

阅读数 121

评论数 0

原创 Glide源码解析---缓存篇

Glide的缓存分为两部分 内存缓存 硬盘缓存 今天我们从源码的角度来分析。 Glide.with(context).load(url).into(imageView); 上面一行代码我们就可以实现图片的加载,这一行代码背后进行了成吨的工作,我们今天只来看看它关于缓存的部分。...

2019-01-02 10:29:59

阅读数 78

评论数 0

原创 算法-----树的遍历

@Override public void preOrder(BaseTreeNode node) { if(node == null){ return; }else{ System.out.prin...

2018-12-27 14:13:19

阅读数 38

评论数 0

原创 Android事件分发总结

dispatchTouchEvent() 返回true 消费事件 dispatchTouchEvent() 返回false 不分发事件 由上层OnTouchEvent()处理 dispatchTouchEvent() 返回super 默认逻辑向下分发事件 onTouchEvent() 返回t...

2018-09-06 15:08:18

阅读数 40

评论数 0

原创 Okhttp源码解析(一)

一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient。 我将通过一系列的文章来分析okhttp的源码: 如何引入 在app的build.gradle文件中 ...

2018-08-17 18:04:32

阅读数 1368

评论数 6

原创 Context使用

Context使用

2018-05-15 14:20:51

阅读数 84

评论数 0

原创 史上最全Activity和Fragment生命周期关联

史上最全Activity和Fragment生命周期关联

2018-03-22 11:01:11

阅读数 175

评论数 0

原创 Android消息机制

Android消息机制,主要指Handler的运行机制的运行需要底层的MessageQueue和Looper支撑。HandlerHandler作为一个Android开发人员在熟悉不过了,我们通常用Handler对象来发送和处理消息,使用Handler可以将一个任务切换到某个指定的线程中去执行。Me...

2017-12-28 12:41:01

阅读数 88

评论数 0

原创 快速判断Acitvity是否内存泄漏

http://blog.csdn.net/omyrobin/article/details/78886178 这篇文章是我转载的关于java对象生命周期的文章,里面描述了java对象从创建到回收的几个不同阶段。6.终结阶段当对象执行完finalize()方法后仍然处于不可达状态时,则该对象进入终...

2017-12-26 13:58:30

阅读数 92

评论数 0

原创 Activity启动过程(一)

Launcher启动Acivity(未启动Activity所在进程)public abstract class LauncherActivity extends ListActivity { @Override protected void onListItemClick(List...

2017-12-26 13:38:28

阅读数 189

评论数 0

转载 Java对象的生命周期

在Java中,对象的生命周期包括以下几个阶段: 1. 创建阶段(Created) 2. 应用阶段(In Use) 3. 不可见阶段(Invisible) 4. 不可达阶段(Unreachable) 5. 收集阶段(Collected) ...

2017-12-24 18:02:37

阅读数 88

评论数 0

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