自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 学习资料(不定期更新)

一手资料一手资料当然是Google官方给出的资料,这里往往是英文版的,营养价值极高。只要英文还可以(不行就是在线翻译工具)+翻墙工具,强烈建议直接看Android官网的资料。可以Chrome浏览器+Google翻译插件,哪里不会点哪里,嘿,下面列出这些一手资料:developer.android.com:Android开发官网,下面列举常用的资料: 1) Android training:And

2016-11-29 20:46:26 453

原创 [剑指offer学习心得]之:栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。解题思路解决这个问题很直观的想法就是建立一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈,并按照第二个序列的顺序依次从该栈中弹出

2016-10-20 15:00:45 360

原创 [剑指offer学习心得]之:最小的k个数

题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。这道题最简单的思路当然就是把输入的n个整数排序,排序之后位于最前面的k个数就是最小的k个数了。这种思路的时间复杂度为O(nlogn)。不过也当然,这种思路是不会得到面试官青睐的,所以要换其他更快的算法。是不是觉得好奇怪,这道题和树的结构有什么关系呢,下面就来认真仔细地谈一下。

2016-10-20 11:32:13 492

原创 [剑指offer学习心得]之:从上往下打印二叉树

题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。解题思路其实一想就觉得是宽度优先遍历。当然这样想是不是太粗暴了,循序渐进循序渐进这道题实质就是考察树的遍历算法,只是这种算法不是我们熟知的那三种,所以呢我们可能一下子也想不清楚遍历的过程,所以可以先好好分析一下下面这棵树:8 | \ 6 10 | \ | \ 5 7 9 11按照层次打印顺序决定应

2016-10-20 10:14:17 490

原创 [剑指offer学习心得]之:二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true。否则返回 false。假设输入的数组的任意两个数字都互不相同。解题思路在后序遍历得到的序列中, 最后一个数字是树的根结点的值。数组中前面的数字可以分为两部分: 第一部分是左子树结点的值,它们都比根结点的值小: 第二部分是右子树结点的值,它们都比根结点的值大。这就是规律啦,也是一个递归的方式实现。测试用例功

2016-10-19 23:50:53 282

原创 [剑指offer学习心得]之:重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如:前序遍历序列{ 1, 2, 4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},重建出下图所示的二叉树并输出它的头结点。二叉树的前序遍历中,第一个数字总是树的根结点的值。但在中序遍历中根结点的值就在序列中箭,左子树的结点的值位于根结点的值的左边,右子树的结

2016-10-19 23:09:45 450

原创 [剑指offer学习心得]之:二叉树中和为某一值的路径

题目:输入一棵二叉树和一个整数, 打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义:public static class BinaryTreeNode { int value; BinaryTreeNode left; BinaryTreeNode right;}解题思路:由于路径是从根结点出发到叶结

2016-10-19 11:43:06 287

原创 [面试]之:yy二面和hr面

今天因为要去yy二面hr面所以推迟了微众的面试,而且回复短信说更改时间之后一直没有回复我,所以我决定明天去霸!其实也不算霸,毕竟我也是通过了的人。虽然这样但是心里还是非常忐忑,因为据说明天是二面的唉,心中可能也不是特别有自信吧……除此以外今天因为要面yy也推迟了cvte远程面试(不过我本身不是特别想去那一家呃呃)二面面试官没有问什么技术的 1. 自我介绍 2. 成绩班级排名、年级排名 3. 优

2016-10-13 23:57:37 4310

原创 [面试]之:今天的一箩筐(4399,yy)

今天到处走,头痛。4399其实4399初试是在前天上午11点半酱紫开始的,也不知道为什么,题目做得那么烂居然有面试,不过既然有机会那就去吧。初试有两面,一面技术面,二面hr面。技术面: 1. 自我介绍 2. 项目详细介绍,技术支持,然后基本都是我在讲,面试官偶尔插一下话 3. 成绩?(其实我都忘了) 4. 性格、优势好的吧我忘得差不多了,但是反正真正有技术含量的基本没有问,都是顺着我的意思在

2016-10-11 23:43:16 1032 1

原创 [面试]之:华为校招

校招面了将近一个小时,前半段讲项目夹杂一些android知识还是不错的,后半段聊基础(操作系统计算机网络数据结构算法)简直没脾气,教训是不要只看java和android,基础还是非常重要的!项目,项目难点,解决方式用的开源框架(volley),源码jdk源码有没有看过(hashmap的结构解释了一下)课程哪个学得比较好?(妹惹我说了数据结构)两个字符串找其中不同的字符出来算法知道哪些(基

2016-10-10 20:29:22 540

原创 [剑指offer学习心得]之:圆圈中最后剩下的数字

之前学习的都是简单的单向链表,这次要开始学习复杂一点的,比如本文想要接触的就是形成一个环形链表(链表末尾结点指针指向头结点)来解决问题。题目:0, 1, … , n-1 这 n 个数字排成一个圈圈,从数字 0 开始每次从圆圏里删除第 m 个数字。求出这个圈圈里剩下的最后一个数字。这是有名的约瑟夫环问题。有两种方法:一种是经典的用环形链表模拟圆圈的解法;一种是分析每被删除的数字的规律并肢解计算出圆圈中

2016-10-10 16:37:31 310

转载 [java并发编程]之:volatile关键字解析

这篇文章写得不错,由浅入深,循序渐进。 转载自:http://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多人都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较

2016-10-07 11:14:34 446

原创 [剑指offer学习心得]之:树的子结构

题目:输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。二叉树结点的定义:/** * 二叉树的树结点 */ public static class BinaryTreeNode { int value; BinaryTreeNode left; BinaryTreeNode right;}测试用例功能测试(树A和树B都是普通二叉树,树B是或者不是树A的子结

2016-10-05 22:49:23 287

原创 [剑指offer学习心得]之:二叉树的深度

题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶子点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的结点定义private static class BinaryTreeNode { int val; BinaryTreeNode left; BinaryTreeNode right; public BinaryTreeNo

2016-10-05 21:17:11 327

原创 [剑指offer学习心得]之:两个链表的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点。看到这道题,第一个想到的自然是暴力法:第一链表上顺序遍历每个结点,每遍历到一个结点,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上结点相同,说明两个链表在这个结点上重合,于是找到了它们的公共结点。如果一个长度为m,一个长度为n,时间复杂度就是O(mn)厉害了word哥,找个公共结点花了这么长时间,有没有其他办法?其实还是有的,

2016-10-05 19:18:00 330

原创 [剑指offer学习心得]之:反转链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路:在单链表的表头临时接入一个节点,然后进行尾插法操作。反转单链表。测试用例最好就是提前想好测试用例,写出代码以后再用事先准备好的测试用例进行检查测试。功能测试(输入的链表含有多个结点、只有一个结点)特殊输入测试(链表头结点为null)代码实现public class ReverseList { publi

2016-10-05 17:05:10 241

原创 [剑指offer学习心得]之:链表中倒数第k个结点

题目:输入一个链表,输出该链表中倒数第k 个结点.为了符合大多数人的习惯,本题从 1 开始计数,即链表的尾结点是倒数第 1 个结点.例如一个链表有 6 个结点,从头结点开始它们的值依次是 1 、2、3、4、5 、6。这个个链表的倒数第 3 个结点是值为 4 的结点。刚好以前看到类似的题目,所以可以很快想到要用两个指针遍历。第一个指针从链表头指针开始遍历向前走k-1,第二个指针保持不变;由于两个指针距

2016-10-05 15:58:33 307

原创 [剑指offer学习心得]之:在O(1)时间删除链表结点

题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路咦,在单向链表中删除一个结点,最常规的做法当然就是从链表头结点开始顺序遍历查找要删除的结点然后删除它,酱紫的话时间复杂度自然为O(n),怎么弄成O(1)呢?我们知道,之所以要从头开始查,是因为我们需要得到将被删除的结点的前面一个结点。在单向链表中,结点中没有指向前一个结点的指针,所以呢就治好从链表头结点开始顺序查找啦

2016-10-05 15:10:03 282

原创 [剑指offer学习心得]之:从尾到头打印链表

题目:输入个链表的头结点,从尾到头反过来打印出每个结点的值。测试用例功能测试(输入的链表有多个结点,输入的链表只有一个结点)特殊输入测试(输入的链表头结点为 null)思路我们知道链表是从头到尾输出的,既然要解决这个问题可能很自然地会想到把链表中指针都反过来,改变指向的方向就好了嘛,不过这个会导致链表的结构的改变,你确定面试官会让你这么做嘛?一般来说打印也就是一个只读操作,链表结构的改变通常是

2016-10-05 14:18:46 276

原创 [剑指offer学习心得]之:替换空格

题目:请实现一个函数,把字符串中的每个空格替换成”%20”,例如“We are happy.”,则输出“We%20are%20happy.”。其实java中有一个方法可以直接替换:str.replace(" ","%20);当然这是可行的,不过笔试/面试的时候一般是不允许调用现有的api的,它考察的就是你如何解决这样的问题,不然出这个题目就木有意义了。所以,接下来还是要对它进行分析。最直观的做法就是

2016-10-05 11:27:31 258

原创 [校招准备]之:java——String,StringBuffer,StringBuilder区别

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)简要说,String类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符

2016-10-05 10:05:40 268

原创 [剑指offer学习心得]之:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例子:1 2 8 92 4 9 124 7 10 136 8 11 15当我们需要解决一个复杂问题时,一个很有效的办法就是从一个具体问题入手,通过分析简单具体的例子,试图寻找普遍的规律。我们可以从数组的一个角上选取数字来和要查找的

2016-10-05 01:56:16 381

原创 [剑指offer学习心得]之:第一个只出现一次的字符

字符串中找出第一个只出现一次的字符。比如说输入“abaccdeff“,则输出“b“。最直观的想法是从头开始扫描这个字符串中的每个字符。当访问某个字符时拿这个字符和后面没个字符 做比较,如果在后面没有发现重复字符,则该字符就是要找的。如果字符串有n个字符,没个字符可能与后面O(n)个字符比较,所以这个思路的时间复杂度为O(n^2)。当然面试官时不会满意这种思路的,要换。除此以外还可以统计每一个字符在该

2016-10-04 17:57:05 292

原创 [校招准备]之:操作系统——进程与线程

操作系统中进程与线程的概念比较抽象,其实是挺不容易掌握的。在《现代操作系统》一书的第二章有专门的介绍,并且这一部分是整部书最重要的课程。我还记得我们老师说,“掌握了进程与线程的概念,基本就掌握了操作系统的百分之六七十“。现在回想起来有点后悔自己当初怎么没有好好把握机会认真学习这一块。但是为时不晚,这个时候学总比未来学好,下面开始一边学习《现代操作系统》此篇幅的知识一边做笔记。进程现在考虑直邮一个用户

2016-10-03 17:45:29 718

原创 [校招准备]之:java——Object的公用方法

Object是所有类的父类,任何类都默认继承Object。那么Object类到底实现了哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clon

2016-10-02 17:07:12 272

原创 [java细节]之:transient关键字使用小记

之前一直不知道transient关键字作用是什么,因为都没有用过,但是这段时间频繁看到这个单词出现所以感觉还是要花时间整理一下transient关键字使用涨姿势。所以废话不多说开始。1.transient作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Ser

2016-10-01 01:30:43 365

转载 [Android实践]之:Fragment应用实战

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别

2016-09-29 15:21:47 491

转载 [Android实践]之:Fragment实现兼容手机和平板

转载(郭神)请注明出处:http://blog.csdn.net/guolin_blog/article/details/8744943记得我之前参与开发过一个华为的项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad。然后为了节省人力,公司无节操地让Android手机和Android Pad都由我们团队开发。当时项目组定的方案是,制作两个版本的App,一个手机

2016-09-29 14:31:32 307

转载 [Android实践]之:Fragment完全解析

前言虽然有点类似activity,但是Android四大组件中没有它,只是整个大知识框架中实践的一个布局类的小知识点,所以没有写在Android知识体系中,而是写在了实践中,毕竟在实践中比较常用。又是一片转载文(果然还是大神的文章讲得清楚明白):http://blog.csdn.net/guolin_blog/article/details/8881711正文:我们都知道,Android上的界面展示

2016-09-29 11:21:41 238

转载 [Android实践]之:Android官方提供的支持不同屏幕大小的全部方法

其实这是一片郭神的译文,不过既然我懒得去看Android官方的,就干脆转过来随时做笔记了。转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8830286 原文地址为:http://developer.android.com/training/multiscreen/screensizes.html本文将告诉你如何让你的应用程序支持各

2016-09-28 15:10:50 341

转载 [Android知识体系]之四大组件:Content Provider应用实例

转载,原文:http://blog.csdn.net/luoshengyang/article/details/6950440上文简要介绍了Android应用程序组件Content Provider在应用程序间共享数据的原理,但是没有进一步研究它的实现。本文将实现两个应用程序,其中一个以Content Provider的形式来提供数据访问入口,另一个通过这个Content Provider来访问这些

2016-09-26 16:45:50 576

转载 [Android知识体系]之四大组件:ContentProvider简单介绍

如果只是要看ContentProvider的使用,直接在郭神的第一行代码就要非常详细的介绍了,包括对系统的内容提供器进行访问,还有自己定义内容提供器(继承ContentProvider实现自己的内容提供器的时候要全部重写六个方法。不过我发现,不管我看多少书,我都只是知道怎么用而已,还是不能理解他,于是额外看了罗升阳大神的介绍,感觉会更透彻一点。原地址:http://blog.csdn.net/luo

2016-09-25 23:29:01 312

原创 [Android知识体系]之四大组件:broadcastReciever(LocalBroadcastManager)

android一般用LocalBroadcastManager去解决broadcastReciever的安全问题,其实就是前一篇文章提到过的局部广播,前文地址:http://blog.csdn.net/yoxiyehei_wzx/article/details/52655640下面是正文。在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应

2016-09-25 01:27:35 263

原创 [Android知识体系]之四大组件:broadcastReciever

好的好的现在轮到一个使用起来很简单的组件——broadcastReciever!虽然使用简单但也不能小看它,做好总结,以后碰见它还可以再复习复习所学,更深刻地理解。任何一样东西都有学习的价值呐。初认识android广播分为两个方面,广播发送者和广播接受者。通常情况下,broadcastReciever就是广播接受者(器)。广播作为android组件间的通信方式,可以使用的场景如下:1.同一app内

2016-09-25 01:01:26 487

原创 [Android知识体系]之四大组件:service(intentService)

IntentService 是比较少使用的,所以之前也一直没听说过它,不过前段时间整理android知识体系时看到有一小块是它的部分,所以查了资料对intentService做了点整理。下面开始正文:不管是何种Service,它默认都是在应用程序的主线程(亦即UI线程)中运行的。所以,如果你的Service将要运行非常耗时或者可能被阻塞的操作时,你的应用程序将会被挂起,甚至会出现ANR错误。为了避免

2016-09-24 00:32:23 237

转载 [Android知识体系]之四大组件:service(完全解析下)

转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169在上一篇文章中,我们学习了Android Service相关的许多重要内容,包括Service的基本用法、Service和Activity进行通信、Service的销毁方式、Service与Thread的关系、以及如何创建前台Service。以上所提到的这些知识点,基本上涵

2016-09-23 13:57:34 218

转载 [Android知识体系]之四大组件:service(完全解析上)

之前想自己写一份介绍来着,但是后来觉得service好多知识点好麻烦啊所以就直接转郭大神的解析了。转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大

2016-09-23 11:03:13 284

原创 [Android知识体系]之四大组件:activity(LaunchMode和Flag)

其实关于启动模式和flag在《Android开发艺术探索》这本书里面已经讲得非常清晰了(好吧关于flag并没有怎么讲),这里做一下总结,不然到时候又忘然后又要各种翻书。p.s.此文配上《Android开发艺术探索》食用更佳~首先是LaunchMode。一.深入理解LaunchMode也来一个前言:Android系统中的Activity可以说是一件很赞的设计,它在内存管理上良好的设计,使得多任务管理在

2016-09-23 09:26:43 382

原创 [Android知识体系]之四大组件:activity(序列化和intent传递对象)

其实activity是最基本要掌握的,但是如果要深究,其实非常多好讲的。这篇文章是先学习序列化,再对android使用序列化传递对象进行介绍。第一小节 Serializabale一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。   把字节序列恢复为对象的过程称为对象的反序列化。   对象的序列化主要有两种用途:   1) 把对象的字节序列永久地保存到硬盘上,通常存

2016-09-22 17:46:36 692

原创 [Android知识体系]之四大组件:activity(生命周期管理)

首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的): Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码:public class Activity extends ApplicationContext { protected void onCrea

2016-09-22 11:59:29 329

编译原理课件

编译原理入门课件,一看就懂,不需要看书上那些繁杂的介绍

2016-02-24

操作系统初学课件

适于大学初学者的操作系统课件,和《现代操作系统》配套课件。华南理工大学(华工)课件

2016-01-23

空空如也

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

TA关注的人

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