自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vic's blog

learn&write

  • 博客(46)
  • 资源 (5)
  • 收藏
  • 关注

转载 iOS开源类库

KissXml——xml解析库相关教程:http://www.iteye.com/topic/625849http://sencho.blog.163.com/blog/static/83056228201151743110540/很方便的一个xml解析器,支持Xpath查询。skpsmtpmessage——Quick SMTP邮件发送svn checkout ht

2014-05-14 15:10:50 544

转载 ios技术开发要点

1、iOS实现可以看作是多个层的集合("Game Kit 框架"含有对这些层的介绍),底层为所有应用程序提供基础服务,高层则包含一些复杂巧妙的服务和技术。四个层依次为:Cocoa Touch、Media、Core Services、Core OS。2、在编写代码的时候,应该尽可能地使用高层框架,而不要使用底层框架。高层框架为底层构造提供面向对象的抽象。这些抽象可以减少需编写的代码行数,同时

2014-05-12 21:14:04 570

转载 TCP/IP、Http的区别

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己

2014-05-09 13:24:53 522

转载 TCP/IP、Http的区别

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己

2014-05-09 13:20:03 455

转载 如何利用GCD Group批量下载文件

未命名小引:有时候,我们在开发iOS程序时,需要批量下载一些文件(比如图片),只有当全部文件下载完毕,我们才做相应的处理(界面更新,通知用户等)——也就是说虽然有多个文件在下载,但是我们只需要收到一个全部下载完毕的通知。在网上搜索了一番,感觉使用GCD的高级功能Group,比较方便。下面写了一个小Demo,实现了多个图片文件的异步并发下载,缓存到本地,并显示到界面中。参考了

2014-05-07 21:24:49 671

转载 使用GCD

什么是GCDGrand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(Closure)一样,但苹

2014-05-07 21:06:32 467

转载 多线程同步、异步

1、首先明确一点,对于单核CPU,任意一个时刻只有一个线程在运行。那么既然这样,多线程还有什么意义呢? 举例来说,现在只有一个人,要做好几个任务。单线程就是,任务一个一个地做,必须做完一个任务后,再去做另一个任务。多线程就是一会做这个任务,一会做那个任务,每个任务做一会,不停的切换。显然,最后把所有的任务做完,多线程必定比单线程更耗费时间。为什么?因为,多线程要在不同的任务之间切换,切换肯定是要耗

2014-05-07 20:44:06 540

转载 GCD小结

GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。     GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。     通过与线程池的配合,dispatch queue分为下面两种:     Se

2014-05-07 20:39:14 432

转载 Vim 常用命令总结

一些Vim的常用命令总是有时候记得比较模糊,特意总结一下,方便查阅!一、插入命令:命令作用a在光标后附加文本A在本行行末附加文本i在光标前插入文本I在本行开始插入文本,进入插入模式o在光标下插入新行O

2014-05-07 15:36:11 469

转载 ARC在IBOutlet属性中的使用

ARC提供四种所有权修饰符:strongweakunsafe_unretainedautoreleasing其中前三个可以用于属性中声明所有权。对于这三个用于属性声明的修饰符,下面分别讲讲他们对应的使用场景。1.strongstrong与之前的retain差不多,可以增加属性引用计数的值。在不需要的时候,需要手动设置属性为nil。

2014-05-05 21:20:52 450

转载 xmpp 带内注册

1 带内注册(In-band registration)的概念带内注册指的是未在你的服务器上开通账号的用户可以通过xmpp协议注册新账号。相反的概念是带外注册(out-of-band registration),例如你必须到某个指定的web页面进行注册。如果服务器允许带内注册,那么我们就可以通过自己开发的客户端注册新账号。与带内注册相关的协议是XEP-0077。2 使用XMPP

2014-04-18 20:54:57 703

转载 海量数量处理之位图

编程珠玑第二章开始提出了三个问题,其中第一个问题是这样的:一个顺序文件至多包括40亿个32位的整数,这些数是无序的,找出一个不在该文件中的32位整数。(可能有数字是不在该文件中的,因为2^32总共包括了42+亿个数,因此肯定有整数是不在该文件中的,这是鸽巢原理吧?)据说这是腾讯的一道面试题,大概描述如下:问题描述:问题的描述大概就是这样了。刚看到这个

2014-04-16 23:10:34 617

转载 教你如何迅速秒杀掉:99%的海量大数据处理面试题

十道海量大数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)

2014-04-16 22:56:47 800

转载 二分查找

二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。题目列表:1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-12. 给定一个有序(非降序)数组A,可含有重复元素,求最小的i使得A[i]等于target,不存在则返回-13. 给定一个有序(非降序)数

2014-04-16 22:27:08 648

转载 TCP和UDP

简述TCP协议在数据传输过程中收发双方是如何保证数据包的可靠性的答:(1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区;(2)并为每个已发送的数据包启动一个超时定时器;(3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区;(4)否则,重传该数据包,直到收到应答或重传次数超过规定的最大次

2014-04-16 22:00:35 486

转载 用两个栈实现一个队列

大多数人的思路是:始终维护s1作为存储空间,以s2作为临时缓冲区。入队时,将元素压入s1。出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1。见下面示意图:  上述思路,可行性毋庸置疑。但有一个细节是可以优化一下的。即:在出队时,将s1的元素逐个“倒入”s2时,原在s1栈底的元素,不用“倒入”s2(

2014-04-15 23:25:51 439

转载 二分查找算法

int binary_search(int array[],int n,int value)  {      int left=0;      int right=n-1;      //如果这里是int right = n 的话,那么下面有两处地方需要修改,以保证一一对应:      //1、下面循环的条件则是while(left       //2、循环内当array[

2014-04-15 22:46:52 572

转载 轻松搞定面试中的二叉树题目

树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。

2014-04-15 22:28:41 409

转载 2014年计算机求职总结--准备篇

转载自:http://blog.youkuaiyun.com/walkinginthewind/article/details/13000431找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,也算不上多认

2014-04-15 21:29:57 477

转载 轻松搞定面试中的链表题目

链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链表相关的面试题做了较为全面的整理,希望能对找工作的同学有所帮助。链表结点声明如下:struct ListNode{    int m_nKey

2014-04-15 21:25:34 567

转载 四道有趣的单链表面试题

以下给出链表结点的数据结构:1  typedef struct _list_node2 {3     double keyVal;4     struct _list_node *next;5 }ListNode;Q1 单链表的反序Code 1 ListNode* reverseList(ListNode* head) 2 { 3     ListN

2014-04-15 18:33:27 507

转载 二叉树遍历(前中后层序/非递归)

一:前中后序递归实现[cpp] view plaincopy/* 前中后序的递归实现理解起来最为简单,要点在于visit(node)的位置。 */  /* 前中后序递归实现 */  //前序遍历  void BT_PreOrder(BitTree node)  {      if(!node) return;  

2014-04-15 18:30:36 561

转载 单链表反转

单链表的每个节点都指向下一个节点,所以要想将单链表反序,需要同时知道相连的三个节点,这样将中间节点的指针指向前一个节点之后仍然可以继续向后遍历链表。算法实现如下:[cpp] view plaincopyNode * singleLinkedListReverse(Node *head)  {      //判断空链表、单节点链表 

2014-04-15 16:51:55 398

转载 程序员技术练级攻略

《转自酷壳》月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他

2014-04-09 22:49:00 453

转载 IT笔试面试总结

转自:http://blog.youkuaiyun.com/mariofei/article/details/22316849很久前就筹划记录一下这几个月来的笔试和面试经历,终于没有后续的面试了,趁11月还没有结束,自己总结总结。        严格地讲,我的笔试面试经历应该是从今年上半年开始的:暑期实习有面过MS和DP公司;等10月正式找工作的时候,依次面过B L C I O等公司,笔试

2014-04-09 22:13:34 878

转载 内存管理

七、内存管理       在写C/C++程序的时候,最头疼的部分一定包括内存管理,一提到内存管理总是提心吊胆,但是又不可避免地常常会遇到,而这块的知识也是公司招聘的一个评价方面,能够很好地体现笔试面试者的功底。这部分的内容稍深一些,大家细心阅读,能对内存管理有一个比较好的把握。7.1 内存分配的方式       最长被问到的问题之一,基础中的基础。对C和C++而言,内存分配方式

2014-04-09 16:10:31 440

转载 操作系统面试题(三)

1、进程是并发过程中程序的执行过程2、进程的特征:结构特征动态性并发性独立性异步性3、临界区指在每个进程中访问临界资源的那段代码4,现在操作系统中申请资源的基本单位是进程,在CPU得到执行的基本单位是线程,进程是由程序段、数据段、PCB组成的5,对临界资源应采取互斥访问方式来实现共享6,P.V操作是一种低级进程通信原语7,对于记录性信号量,在执行一次

2014-04-09 15:47:25 1391 1

转载 各大公司笔试面试题之数据结构与算法

1. 把二元查找树转变成排序的双向链表[cpp] view plaincopy//基本思想:假设根的左右两棵子树都已经转为链表,则只需将根指向左孩子的链指向左链表的最后一个节点  //将根指向右孩子的链指向右链表的第一个节点  #include   using namespace std;    struct node

2014-04-09 15:25:04 1216

转载 变量的存储方式与生存期

从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量。    另一个角度,从变量值存在的作时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。    静态存储方式:是指在程序运行期间分配固定的存储空间的方式。    动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。        用户存储空间可以分为三个部分:        1)  程序区

2014-04-08 20:54:01 952

转载 iOS 单例传值

单例只会对某个类实例化一次/单例类,对单例这个类实例化一次有且仅有一个对象你单例初始化,只能初始化一次,然后你指向的对象,其实都是指向一个内存地址,也就是同一块内存,所以都是一样的/so。。只能有一个对象,就是实例化的那个(1)定义单例类singleton #import @interface singleton : NSObject//@property

2014-04-06 16:07:32 1389

转载 delegate模式——segue和delegate实现两个页面传值

页面传值如果有两个页面A和B之前需要传值,如下图所示,从A页面打开一个B页面,填入一些信息后,展现在B页面。这个过程需要从B页面传数据给A页面。A->B的数据传递可以在segue中实现,B->A的数据传递则用delegate。下面分别讲述这两种传值方式。一.segue传值新建一个Single View应用,并在stroyboard中拖入一个vie

2014-04-06 13:37:59 22995

转载 iOS Delegate 使用五步曲

在iOS 开发中, 搞清楚Delegate 是需要花些时间的。 Delegate  本来是软件架构设计的一种理念。对于像手机这样一个有限的设备,我们需要充分考虑到:内存要尽量省着用; 视图之间的关系要清晰。 如果你所开发的App ,仅仅是一个demo,是体现不出架构优势的。 但当你的App 需要处理海量数据, 而视图之间的关系又颇为复杂时,你将不得不考虑这些问题。视图之间的关系,不仅仅是跳

2014-04-05 22:51:42 629

转载 iOS开发- ios学习资源

mark一些自己在学习过程中收集的资源。免得需要的时候没地方找。持续更新。(最新更新时间: 2014.4.4)1、苹果官方文档构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程:Start Developing iOS Apps Today构建Mac OS X程序:下面这篇文章介绍了Mac OS X开发的过程:

2014-04-05 16:30:23 621

转载 直接选择排序及交换二个数据的正确实现

直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1.      初始时,数组全为无序区为a[0..n-1]。令i=02.      在无序区a[i…n-1]中选取一个最小的元素,将其

2014-04-05 16:08:08 451

转载 冒泡排序的三种实现

冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码:[cpp] view plai

2014-04-05 15:38:24 447

转载 希尔排序及C语言实现

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很

2014-04-05 14:38:48 1103

转载 计算机网络面试题(一)

1 、 OSI ( Open System Interconnect ):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP ( Transmission Control Protocol/Internet Protocol ):传输控制协议 / 因特网互联协议,是一个四层的计算机网络模型,分别为:网络接口层、网络层、传输

2014-04-05 12:09:03 1088

转载 操作系统面试题(二)

1.进程现在操作系统的特点:保证安全前提下,程序并发执行,以及系统所拥有的资源被共享和用户随机使用系统。进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。进程的静态描述有:进程由三部分组成:程序,数据集合和进程控制块(PCB)。程序表示要完成的功能,数据集合表示程序运行时的数据部分和工作区。这二者是进程的物质基础。如果一个程序是多进程同时共享执行,

2014-04-05 11:42:21 740

转载 操作系统面试题(一)

1、线程与进程的区别联系2、进程通信方式有哪些?3、同步的方式有哪些?4、ThreadLocal与其它同步机制的比较5、进程死锁的条件 第一题:(1)线程是进程的一个实体,一个进程可以拥有多个线程,多个线程也可以并发执行。一个没有线程的进程也可以看做是单线程的,同样线程也经常被看做是一种轻量级的进程。并且进程可以不依赖于线程而单独存在,而线程

2014-04-05 11:38:16 475

原创 卡特兰数

卡特兰数:规定C0=1,而C1=1,C2=2,C3=5,C4=14,C5=42,C6=132,C7=429,C8=1430,C9=4862,C10=16796, C11=58786,C12=208012,C13=742900,C14=2674440,C15=9694845·········································

2014-04-05 11:33:31 526

apue unix环境高级编程 常用函数

apue unix环境高级编程(第二版) 常用函数

2012-12-19

apue unix环境高级编程 常用函数 function

aput unix环境高级编程第二版 常用函数整理

2012-12-19

java myeclipse tomcat安装环境配置

详细介绍了java ee的web开发中需要用到的java myeclipse tomcat的安装和配置。

2012-05-22

javascript手册

JavaScript手册

2012-05-10

判断非空函数和使用实例

判断非空函数和使用实例

2012-04-19

空空如也

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

TA关注的人

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