自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

理想国

what does not kill you only makes you stronger.

  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式(六) 适配器模式(Adapter)

开发当中我们经常遇到这样的情况:有一些功能自己开发需要花费巨大的成本,但是现存的可供使用的第三方库还不太成熟,我们可以暂时使用这些库。但是,一旦需要修改依赖库的时候,源码也需要大规模地修改,有没有什么方法能够最大限度地降低修改的幅度呢?这时候我们可以考虑使用adapter模式。一、定义适配器模式是一种结构型模式。它的目的是使一个类的接口转换成客户希望的另一种接口,适配器模式使得原本

2015-06-16 19:34:33 1113

原创 android中NavigationDrawer的使用以及添加drawer切换时的动画效果

最近在开发app的时候需要用到NavigationDrawer,但是在添加动画(汉堡图标和箭头图标互转)效果的时候老是出现问题,折腾了好几个小时终于搞定。在这里跟大家分享一下。说明下,我开发时候用的minSdkVersion 是9,也就是本文所说的方法适用于APIlevel 2.3以上的情况,但若minsdk比较高的话会有略微的差异。1.效果及依赖NavigationDrawe

2015-05-08 00:20:53 6540 1

原创 MIUI 6.2.2.0 稳定版 开启开发者模式

昨天刚跟新到MIUI 6.2.2.0稳定版,今天把手机连笔记本上debug程序的时候发现android studio找不到手机,想想可能是开发者模式没开。设置里找了半天没发现,网上搜,未果,最后打电话问的客服,答曰:在MIUI 6.2.2.0稳定版中  开发者模式默认是关闭的, 打开方式是:设置→ (滑到底)关于手机→快速点击 MIUI版本 号 7 下 ,此时应该会看到一个Toas

2015-01-28 11:43:56 3091

原创 设计模式(五) 单例模式(Singleton)

1.定义单例模式是一种创建型的设计模式。单例模式意在保证一个类仅有一个实例,并且提供一个全局的访问点。2.适用性当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时一个国家只有一个主席/总统,一个人只有一个名字/身份证号,这些都是单例的例子。稍微实际点的例子就是,在某个服务器程序中,

2015-01-25 13:39:26 1065

原创 设计模式(四) 原型模式(Prototype)

1.定义原型模式属于一种创建型模式,与其他创建型模式不同,原型模式不是直接构造对象,而是通过复制一个已经存在的实例返回新的实例。2.适用性为何要拷贝而不直接生成?我的理解是有些时候直接构造实例花费比较大,比如在构造对象的时候需要做大量的数据库查询,这样如果构造许多类似的对象还重复地查询数据库则开销很大,很没效率。直接拷贝现有的实例,在需要情况下做一些小的修改会显得高效许多。

2015-01-20 23:07:28 1112

原创 2014 总结

越长大,越孤单;越长大,时间过得越快。本命年似乎一晃眼就过去了。在这继往开来的最后一天,我也总结下过往得失吧。不知道是生活节奏太快还是一直在赶路无暇回首,对于过往的2014似乎没有太多鲜明的记忆。于是只好翻翻手机相册回忆回忆。工作&学习结束了上课的生活,似乎也没多大长进。是课业太水,还是自己没学进去?不得而知。实验室的工作还是按部就班,循规蹈矩,但求毕业。老板最

2014-12-31 17:34:43 1104

原创 设计模式(三) 生成器(Builder)

1.定义生成器是一种对象创建型的模式。生成器将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。2.适用性当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时当构造过程必须允许被构造的对象又不同的表示时3.结构Builder: 为创建一个Product对象的各个部件指定抽象接口。(工厂方法是为整个对象)ConcreteBuil

2014-12-31 16:04:17 1098

原创 Android Studio 个性化设置

android studio 正式版发布有段时间了,最近刚刚上手。对于用惯了eclipse的我来说还真是有些不适应,下面是一些设置,让AS 更顺手一些:1.     关于project和moduleAS的Project相当于eclipse的workspace,module相当于eclipse的Project。AS好像不能设置Project的默认路径,每次都默认定位到C:/user/

2014-12-26 13:17:46 3375

原创 设计模式(二) 工厂方法(FactoryMethod)

1.定义工厂方法是一种对象创建型的设计模式。上一节中谈到的抽象工厂经常使用工厂方法实现。与其他创建型模式一样,工厂方法解决的是在不指定对象具体类型的情况下创建对象的问题。它仅定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类实例化延迟到其子类。2.结构Product : 定义工厂方法创建对象的接口ConcreteProduct : 实现

2014-12-20 16:25:04 830

原创 设计模式(一) 抽象工厂(Abstract Factory)

1.定义抽象工厂是一种常用的对象创建型设计模式。抽象工厂模式提供了一种方式,可以将一组具有统一主题的单独工厂封装起来,它提供一个创建一系列相关或相互依赖对象的接口,而无需制定它们具体的类。2.结构抽象工厂的结构图如下所示:AbstractFactory : 声明一个创建抽象产品对象的操作接口ConcreteFactory : 实现创建具体产品对象的操作AbstractP

2014-12-20 14:28:19 1321

原创 java 命令行 编译 执行程序

学习java使用IDE前最好先用用命令行的javac、java来跑一跑简单的程序,这样可以熟悉一下包管理对.class文件路径的影响。我们先写一段简单的代码:package com.csdn.lkasdolka;public class test_1{ public static void main(String[] args){ for(int i = 0; i < 1

2014-10-06 16:50:32 1251

转载 关于编码:ANSI, GBK, GB2312, UTF-8, GB18030, UNICODE

ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE这几个编码关键词是比较常见的,虽然我把我们放在了一起说,但并不意味这这几个东西是平级的关系。本部分的内容,引用自网络略有修改,不知原文出处,故无法署名。很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物,他们把这称为”字节”。再后来,他们又做了一些可以处理这些字节的机器,机

2014-09-13 13:59:29 1124

转载 HTTP协议 (七) Cookie

Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的【细说Cookie】, 让我学到了很多东西。Fish的这篇文章写得太经典了。 所以我这篇文章就没有太多内容了。 最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解。 Cookie是什么,有什么用,为什么要用到Cookie请看Fish Li 写的【细

2014-08-27 20:12:16 613

转载 HTTP协议 (六) 状态码详解

HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。  如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。  本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。HTTP状态码的学习资料到处都有,但是都是理论上讲解。  本文介

2014-08-27 20:02:09 679

转载 HTTP协议 (五) 代理

什么是代理服务器Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器又是Web客户端。  Fiddler就是个典型的代理Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销代理,这样就

2014-08-27 19:53:17 854

转载 HTTP协议 (四) 缓存

这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理"浏览器缓存",以及控制缓存的http header.本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这工具,可以先参考[Fiddler教程] 。在看本文的时候, 请务必打开Fid

2014-08-26 20:35:34 580

转载 HTTP协议 (三) 压缩

HTTP内容编码和HTTP压缩的区别HTTP压缩,在HTTP协议中,其实是内容编码的一种。在http协议中,可以对内容(也就是body部分)进行编码, 可以采用gzip这样的编码。 从而达到压缩的目的。 也可以使用其他的编码把内容搅乱或加密,以此来防止未授权的第三方看到文档的内容。所以我们说HTTP压缩,其实就是HTTP内容编码的一种。 所以大家不要把HTTP压缩和HTTP内容编码两个

2014-08-26 20:33:31 600

转载 HTTP协议 (二) 基本认证

http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?什么是HTTP基本认证桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64编码的字符串放在http reques

2014-08-26 20:09:56 619

转载 python 关于 if __name__ == “__main__" 的使用

#hello.pydef sayHello():str="hello"print(str);if__name__=="__main__":print ('This is main of module "hello.py"')sayHello()python作为一种脚本语言,我们用python写的各个module都可以包含以上那么一个累

2014-08-26 15:12:25 3589

转载 HTTP协议 (一) HTTP协议详解

转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html

2014-08-25 21:13:44 751

转载 佛祖保佑 永无bug

[cpp] view plaincopy"code" class="java">/*                    _ooOoo_                   o8888888o                   88" . "88                   (| -_- |)                   O\

2014-08-22 20:34:59 1539

原创 linux kernel 学习笔记二 进程管理

一、进程和线程说到操作系统就不得不提的两个概念。进程就是出于执行期的程序以及相关的资源(打开的文件、挂起的信号、内核内部的数据、处理器状态等)的总称。线程,是在进程中活动的对象,每个线程都拥有一个独立地程序计数器、进程栈和一组进程寄存器。有关进程和线程的关系,可以参考下这篇博文,说得非常形象:http://www.ruanyifeng.com/blog/2013/04/processe

2014-08-18 21:38:18 775

原创 linux kernel 学习笔记一 编译内核

1、获取内核的源码从 https://github.com/torvalds/linux 可以方便的找到要linux的内核源码,想要以前的版本也可以在releases页中找到。比如我下的3.16版本的kernel: $wget https://github.com/torvalds/linux/archive/v3.16.tar.gz下载好把压缩包放到/usr/src/下$mv

2014-08-17 20:54:46 2198

转载 如何创建和解压tar.xz文件

转自  认识tar.xz格式文件是在Linux内核的官方网站上,比如最新的Linux内核3.12,就是.xz后缀的文件。  根据维基百科的解释, xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式。和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件。相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpio

2014-08-17 10:26:21 6391

转载 python测试工具--nose简介

nose 使用python开发的估计都知道unittest,与Java中的JUnit一样,编写测试用例需要遵守一定的规则。而nose继承自unittest,且比unittest更容易使用。官网:https://nose.readthedocs.org/en/latest/index.html 1、安装同其他python第三方组件一样,你可以尽情使用easy_install或

2014-07-23 21:39:52 1307

转载 字符编码笔记:ASCII,Unicode和UTF-8

1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与

2014-07-03 16:11:02 789

转载 linux shell环境减号”-”的用途

连字符:年轻人称之为dash,年长者称之为minus,英文名称hyphen(连字符),minus sign(减号),或虚线减号”-”就是代表标准输出/标准输入, 视命令而定. “-”代替stdin和stdout的用法,stdin就是标准输入,stdout就是标准。1,为应用程序指定参数。如ps -aux,tar -zxf test.tar2.一个减号和两个减号一

2014-06-30 19:41:34 7687

原创 求最大公约数和最小公倍数

很简单的数学问题,不过大家是否能够准确实现?求最大公约数(greatest common divisor)的方法:一、辗转相除①设有两个正整数i、j, 且i>j;②计算c=i%j;③若c等于0,则j是i和j的最大公约数;若c不等于0,则i=j,j=c;④重复②③直到求得最大公约数;二、相减法①设有两正整数i、j;②若i等于j,则i或j就是两数的最大公约数

2014-06-30 11:30:24 1067

转载 C/C++中static关键字详解

静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。    静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制    如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将

2014-06-25 20:07:42 696

转载 TCP/IP三次握手与四次挥手

TCP/IP三次握手与四次挥手 一、TCP报文格式        TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式        上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。        (2)

2014-06-23 20:11:00 801

转载 C/C++ namespace

本文转自:http://blog.csdn.net/liufei_learning/article/details/5391334一、 为什么需要命名空间(问题提出)    命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。   在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域

2014-06-22 16:43:36 683

转载 C/C++ 类型转换

首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;

2014-06-10 22:11:20 569

转载 链表 面试题整理

1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyprint?void List::reverse()  {          list_node * p = head;          list_node * q = p->next;          list_node * r = NULL;         

2014-06-10 16:18:48 645

转载 内存中堆和栈的区别

转自:堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事

2014-05-31 15:13:29 732

转载 数组名和指针的区别

今天看到一道面试题问“数组和指针有什么区别?”,一下子也说不出个suoyi数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变,例如你可以写出下面这样的代码:int *p;p++;却不能写这样的代码:int a

2014-05-27 22:28:55 721 1

原创 leetcode 问题分类

最近想要lianxiyixiaDynamic ProgrammingEdit DistanceMaximum SubarrayMinimum Path SumUnique PathsUnique Paths IILongest Palindromic SubstringInterleaving StringTriangleDistinct SubsequencesDecode WaysPal

2014-05-26 12:57:10 1237

转载 #include<time.h> 库函数详解

个类型:time_t:表示距离 UTC 时间 1970-01-01 00:00:00 的秒数。也叫做日历时,类型是  longclock_t: 只用于程序计时,貌似其他的没它什么事。struct tm:通常用于存储本地时。 常用函数:clock: 获取程序开始执行后占用的处理器时间,返回值clock_t。time:获取当前系统时间(UTC时间)的time_t值。

2014-05-25 16:47:46 14853

原创 vim 剪切板 小技巧

用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset

2014-05-22 10:57:10 1023

原创 十种常用排序算法浅析 附C++实现

一、相关知识:1、计算复杂度:(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n2)。对于一个排序理想的性能是O(n)。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(nlog n)。2、存储使用量:3、稳定度:稳定排序算法会依照相等的关键(换言之就是值)维持纪录的相对次序。也就是一个排序算法是稳定的,

2014-05-19 18:09:42 789

原创 C++ STL multimap multiset 简介

相信对熟悉

2014-05-17 21:42:20 2355

eclipse 常用快捷键

Eclipse最常用快捷键,熟悉以后大大加快开发速度

2014-12-26

空空如也

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

TA关注的人

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