自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android studio创建项目

好久没有写过代码了,也没有写博客,颓废了一段时间,今天重新开启studio,好多东西忘了,顺便写成博客记录一下。这里很多人可能有疑问,project和module的区别是什么?我的理解是project类似于eclipse中的工作空间,而module就是一个单独可执行程序,一个project可以包含多个module,这里就相当于eclipse中一个workspace中建立多个project。

2016-11-04 09:36:58 501

原创 2017Android校招心得体会

校招基本结束了,我的正式校招是从好未来开始的,一直觉得校招这条路不好走,巅峰的时候早上面两场,下午笔试,晚上笔试。那几天整个人好累,但是还是坚持了下来,在此谢谢我的小伙伴们,笔试面试大家都一起,帮助了我许多。另外感谢真果粒,提供能量。(ps:这块不是打广告啊,是真的喝了很多)。这里我主要想说自己的整个校招过程,关于面试题我单独整理一份出来。点击打开链接我的校招是从8月底面好未来开始的,那是

2016-10-30 22:14:08 2374 5

原创 好未来+CVTE+美团+58+京东 Android面经

好未来 一面:  1.      自我介绍   (介绍自己的学习过程)2.      介绍项目3.      MVP结合项目介绍4.      EventBus介绍(建议结合项目)5.      算法: 输入一个字符串,求全排列的个数,例如: aabbcd  输出 6    计算方法,利用了数学上的全排列: 4!/ (2!* 2! )一面问的很简单,算法那块写了好久,建

2016-10-30 22:02:34 2788

原创 单例模式的多种实现

最近比较懒,写博客少了,今天想总结一下单例的写法,这万一面试官让手写单例,只知道大概是不行的。//饿汉式public class Singleton { private static Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton

2016-09-10 10:44:51 458 1

转载 单例模式中用volatile和synchronized来满足双重检查锁机制

例子1:没有volatile修饰的uniqueInstancepublic class Singleton { private static Singleton uniqueInstance; private Singleton(){ } public static Singleton getInstance(){ if(uniqueIn

2016-09-05 17:59:40 1644

原创 handler引起的内存泄露

什么是内存泄露?内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存泄露。内存泄露有时不严重且不易察觉,这样开发者就不知道存在内存泄露,但有时也会很严重,会提示你Out of memory。Java内存泄露根本原因?长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周

2016-08-22 11:10:17 423

转载 EventBus简介

概述EventBus是一款针对Android优化的发布/订阅(publish/subscribe)事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅。以及将发送者和接收者解耦。比如请求网络,等网络返回时通过Handler或Bro

2016-07-27 15:45:24 464

转载 单例模式的优缺点

转载自:http://blog.csdn.net/tayanxunhua/article/details/8250329/单例模式的含义:单例模式可以保证系统中一个类只有一个实例,并且这个实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。采用单例模式的原因:对于系统中的某些类来说,只有一个实例很重要,例

2016-07-25 16:01:44 755

原创 Android性能优化

最近在看《开发艺术探索》,写的很棒的一本书,大家有时间可以看看,今天再次看了一下 Android性能优化。Android的内存和CPU的使用都受到了限制,不能像PC机那样使用内存和CPU ,过多的使用内存会造成OOM(内存溢出);过多的使用CPU资源,即执行大型的耗时任务,会造成程序卡顿,甚至会发生ANR(程序无响应),因此,Android的性能问题在编程时很重要。下面介绍一些Android性

2016-07-24 18:27:36 387

转载 java的内存区域与内存溢出

转载自:http://blog.csdn.net/ns_code/article/details/17565503内存区域    Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类

2016-07-24 15:07:54 537

转载 LruCache源码分析

转载自:http://blog.csdn.net/chdjj/article/details/38701509?utm_source=tuicool&utm_medium=referral这篇文章分析的LruCache并不是jdk中的类,而是来自安卓,熟悉安卓内存缓存的必然对这个类不陌生。LruCache内部维护的就是一个LinkedHashMap。下面开始分析

2016-07-23 15:44:27 1100

原创 android中进程优先级

之前被问到 如果系统的资源不足,导致一些进程要被 Kill 掉,那么他们被杀死的先后顺序是怎么样的  这里具体的说一下 优先级顺序由低到高:1. 空进程:是指不包含任何处于活动状态(比如四大组件)的进程,那么它存在的意义是什么? 它是缓存一些启动数据, 方便下一次启动程序。这只是我浅的理解,如果有其他有关空进程的理解, 请多多指教。2. 后台进程: 包含不可见的acti

2016-07-20 12:01:21 1258 1

转载 Git和SVN的区别

转载自: http://blog.csdn.net/saint1126/article/details/5953339GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper,M

2016-06-25 10:48:52 377

原创 android studio中导入Eclipse中的项目

最近一直在使用studio,但是都是在新建的项目,听说给studio中导入项目会遇到很多问题,也一直没有尝试,今天心动想弄一下,结果真的遇到了很多问题,哎,不断的改问题。还是进入正题吧、从eclipse中导出:选择导出类型选择导出的项目、然后一直next,直到finish要知道有没有导出成功,可以在工作空间里看一下,会发现项目中添加了一些文件,生成工作空间目录如下:

2016-06-01 21:31:07 465

原创 Android按返回键退出程序

1. 按返回键后,弹出对话框,让用户选择 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub switch (keyCode) { case KeyEvent.KEYCODE_B

2016-05-24 23:36:50 6701 1

原创 TCP 与 UDP的区别

TCP 与 UDP共同点:都是 传输层 的协议区别:                                                                       TCP                                                       UDP                                    

2016-05-17 16:53:14 581

转载 Android中的四种数据存储方式

转自:http://www.cnblogs.com/rond/p/3553156.html存储方式Android提供以下四种存储方式:SharePreferenceSQLiteFileContentProviderAndroid系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下。如果要实现数据共享,正确的方式是使用ContentProvi

2016-05-17 16:07:27 751

原创 java中集合的接口和类

最近在一篇博客中看到的关于JAVA集合类的总结,从中把结论摘取出来了,跟大家分享一下:1、List接口List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访

2016-05-15 23:07:51 1457

原创 Fragment和ViewPager实现底部导航栏

前几天准备写一个小程序,一直认为fragment实现底部导航栏,是很容易的事情,可是却遇到了前所未有的问题,先给大家贴出来我出错的界面布局代码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

2016-05-14 21:24:16 3358

原创 最短编辑距离

这学期在上算法课,最近让写一个关于最短编辑距离的,写完之后还是总结一下:问题描述: 编辑距离是指 两个字符串之间,由一个转成另一个所需要的最小编辑操作数。设A  B两个字符串,允许的字符串操作包括:(1)添加一个字符(2)删除一个字符给大家提供两个版本的代码:java版public class Levenshtein { public static void main(St

2016-05-13 16:24:56 653

原创 HTTP状态码

状态码的职责是 告知从服务器返回的请求结果状态码 的类别:                      类别                                 原因短语1xx           信息性状态码                      正在处理请求2xx            成功状态码                         请求正常处理完毕

2016-05-08 18:21:28 755 1

原创 BroadcastReceiver、EventBus的优缺点

今天在知乎上,看到一个关于android中本地广播和eventbus选择的问题,感觉说的挺好的,我在这里记录一下;本地广播是相对消耗时间、空间最多的一种方式,但是大家都知道,广播是四大组件之一,许多系统级的事件都是通过广播来通知的,比如说网络的变化、电量的变化,短信发送和接收的状态,所以,如果与android系统进行相关的通知,还是要选择本地广播;在BroadcastReceiver的 onR

2016-05-04 21:27:00 13214

转载 http的状态码 300-301-302-303-304-305-307

转载自:http://blog.sina.com.cn/s/blog_53853bc20101tdq8.html300-3007表示的意思是:要完成请求,您需要进一步进行操作。通常,这些状态代码是永远重定向的。300(多种选择)  服务器根据请求可执行多种操作。服务器可根据请求者来选择一项操作,或提供操作列表供其选择。 301(永久移动)  请求的网页已被永久移动到新位置。服务

2016-05-04 16:31:12 6976

原创 HashMap 与 hashtable的区别

昨天腾讯一面的时候问到了 hashmap 和hashtable的区别,之前还在本子上记过,当面试官说出来时,脑子里只想到两条,唉,还是总结总结吧,大家在看笔记的时候,不要只看,还是要总结,自己试着给自己说一遍,hashmap的内部实现,其实是里面有一个entry【】数组,他处理冲突的方法是链地址法,还是说他两的区别吧;

2016-04-15 21:00:08 593

转载 Handler的消息处理

转载自:http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平

2016-04-10 18:03:23 862

原创 海量数据中选出最大的N个

前几天,面试了一家公司,其中出了一道算法应用题,题是这样的: 有100个文件,每个文件里有10000个数据,选出前100个大的数据;听到这么大的数据,第一个想法就是 堆排,因为这个题很符合堆排的条件: (1)大数据       (2)选择前多少个当我说出堆排的时候,自己也有在想,这么多的数据,能不能一下全部读入呢,,如果全部读入,要用多少空间来存储???之后,面试官提醒我,利用 归并

2016-04-07 19:59:42 896

转载 java中int和Integer的理解

转载:http://blog.sina.com.cn/s/blog_7f033dcf01017ljx.htmlInteger与int的比较,从jdk1.5开始,有“自动装箱”这么一个机制,在byte-128到127范围内(ps整型的八位二进制的表示的范围为-128到127),如果存在了一个值,再创建相同值的时候就不会重新创建,而是引用原来那个,但是超过byte范围还是会新建的对象.

2016-04-02 16:56:09 488

转载 Android中service的生命周期

转载自:http://www.cnblogs.com/mengdd/archive/2013/03/24/2979944.htmlservice的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径:A started service  被开启的service通过其他组件调用 startService()被创建。  这种service可以无限地运行下去,必须调用s

2016-03-20 21:11:12 380

转载 view类的方法

转载:http://blog.sina.com.cn/s/blog_a7b8ab28010176cf.html自定义 View的常用方法:onFinishInflate() 当View中所有的子控件 均被映射成xml后触发onMeasure(int, int) 确定所有子元素的大小onLayout(boolean, int, int, int, int) 当Vi

2016-03-20 20:35:33 548

转载 Handler、Loop、MessageQueue的工作原理

转载:http://blog.csdn.net/itachi85/article/details/8035333andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Mes

2016-03-10 16:31:57 678

原创 希尔排序

一、基本思想希尔排序就是缩小增量排序。这个还真不好描述,在百度里看到一个图是写希尔排序的过程的,就直接盗过来了,不废话了,直接上图。上面的过程可是相当的清晰,比我写的清晰多了,现在呢,我给大家说一下要注意的点d1 的取值  d1 = n/2, n 为数据的个数 d2的取值 d2 =   d1/2 d3 = d2/2.........di = 1;直到d的

2016-03-03 17:45:00 410

原创 折半插入排序

看到这个名字,大家也就懂了,这里有 借助 折半查找的思想,如果折半查找的思想不明确,可以参考我之前写过的一篇折半查找的博客。折半插入排序的效率相比较直接插入排序的效率要高,那么,它效率提升在哪里呢。其实他两的不同就是在确定关键字的插入位置时采用不同的算法。直接插入排序是一个一个的比较然后选出插入位置,而折半插入排序是借助折半查找的方法找到插入位置。下面来说一下核心代码:void ins

2016-03-03 16:21:33 569

原创 插入类排序----直接插入排序

一、基本思想将第i个记录的关键字Ki,与前面的r[1]~r[i-1]个记录元素比较,将关键字大于Ki的 记录向后移一个位置,知道遇见关键字小于 Ki 的记录,该位置既为r[i]插入的位置。在这里要注意,比较时,i为要比较记录的下标,则从 i-1 开始比,即和她之前的比。r[0]用作监视哨;二、具体例子比如  关键字为 33  12   24   48    33   68

2016-03-02 22:03:28 439

原创 顺序查找(带监视哨)

顺序查找 可以从前到后,也可以从后到前。这两种都可以(1)最基本的顺序查找int seqsearch(SeqList L,KeyType k){i = L.length;while(i >= 1 && L.r[i].key != k) i--;if(i > = 1) return i;return 0;}(2)优化该顺序查找,就是添加监听哨,上面的查找方式时间主要

2016-02-29 21:01:36 12590 2

原创 折半查找法

一、折半查找使用范围:(1)顺序存储结构    (2)按照关键字大小有序排列二、基本思想:将待查范围的中间元素的关键字key与给定的K值进行比较,结果又三种情况:(1)k = key 查找成功(2)k (3)k > key 待查元素在关键字为key的记录之前     在后半部分子表进行查找三、实例:有序顺序表关键字分别为 12 19 25 33 46 58 64 8

2016-02-15 08:22:49 1389

原创 哈夫曼树与哈夫曼编码

哈夫曼树在数据结构里可是鼎鼎大名啊,不过学数据结构已经是一年之前的事情了,没看书之前,还真想不起来哈夫曼树是个啥,现在就来说说,哈夫曼树到底是个什么东东。一、基本概念哈夫曼树:哈夫曼树就是带权路径长度最短的树,又称最优二叉树。路径:一个结点到另一个结点之间的分支序列,构成这两个结点之间的路径。路径长度:两个结点之间路径的条数树的路径长度:从根结点到每个结点的路径长度之和   (

2016-02-02 21:28:13 820

原创 线索二叉树

(1)为什么要引入线索二叉树:当用二叉链表来存储二叉树时,每次只能找到左右孩子的信息,不能直接找到其前驱和后继结点的信息。线索二叉树就解决了这个问题。(2)线索二叉树的结点结构定义:结点结构图:      LChild  Ltag   Data  Rtag   RChild A.如果有左孩子,则LChild继续指向左孩子,否则,指向该结点的前驱结点。B.如果有右孩子,则RC

2016-01-22 11:21:00 9874 3

原创 广义表相关概念

今天看了一些关于广义表的知识,不多说,先说一下广义表的相关概念。广义表是n(n>= 0)个元素的有限序列,记做 LS = (d1,d2,...,dn)   这个定义看似简单,还是要认真看,理解子表:如果广义表LS的某个元素di本身也是广义表,则称di为LS的子表。空表:表中没有元素,长度为0表头:LS不为空时,d1就是表头。表尾:其余元素组成的子表,称为表尾。  注意:广义

2016-01-20 16:51:08 646

原创 二叉树的遍历

看了一下数据结构中树的相关知识,树这一章还是很重要的,直接说知识点吧一、基本概念树:n(n >= 0)个结点的有限集合结点的度:结点拥有子树的个数树的度:树中所有度的最大值  (注意是 最大值)树的深度:树中所有节点层次的最大值   叶子结点:度为0的节点满二叉树:在深度为K的满二叉树中,1至k-1层每个结点均有两个孩子。顾名思义,也就是除过叶子结点,其他的节点都有左右

2016-01-20 16:40:21 470

原创 串匹配-BF算法

今天看了一下数据结构中串的相关知识,着重看了一下BF算法和KMP算法,虽然说是看,但是对于KMP算法中next的值的怎么得来的,还是没有看懂只记得当初学的时候,大家说是离散数学上的知识,唉,现在又忘光光了,还是先说一下BF算法。看书的时候才知道,原来BF算法又称蛮力匹配算法,不啰唆了,先描述一下该算法。从主串S的第pos位置开始,与模式串T比较,比较的策略是 从前到后依次比较,主串中设置指

2016-01-17 11:27:04 4416

空空如也

空空如也

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

TA关注的人

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