- 博客(26)
- 资源 (4)
- 收藏
- 关注
原创 从输入URL到页面加载完成的过程中都发生了什么
首先,对于http肯定是有客户端和服务器的,在这个语境中,客户端和服务器本质上也都是一个软件,实现了http协议相关标准的软件。客户端一般由都是由浏览器充当,也就是说,在浏览器中实现了http客户端的相关功能。而服务器的实现就多种多样啦,我们可以用java写servlet,c#写ASP.net,还有php,ruby,Python,nodejs等。实际上我想,http服务在操作系统底层应该有实现,而
2014-11-30 21:39:56 4715
原创 希尔排序---shellsort
#include using namespace std;void shellSort(int a[], int n){ int i, j, gap; for(gap = n/2; gap > 0; gap /= 2)//间隔,逐次递减一半 { for(i = 0; i < gap; i++)//从49到76,逐步递增,也就是分组数。每次循环对一组数完成排序 { for(
2014-11-30 10:58:17 656
原创 (每日算法)LeetCode---Minimum Window Substring (最小子串窗口)
Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example,S = "ADOBECODEBANC"T = "ABC"Minimum window is "BAN
2014-11-30 09:51:16 1046
原创 数组、指针数组、数组指针、返回数组指针的函数的关系
直接上代码吧,解释说得很清楚了。// C++Primer.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include using namespace std;int (*function(int i))[10];//返回数组指针的函数int main(){ cout<<"数组、指针数组、数组指针、返回数组指针的函数:"<<endl<<endl
2014-11-27 16:40:19 732
原创 Java多线程(2)--线程的中断和中断的控制
如果Java程序不只有一个执行线程,只有当所有线程结束的时候这个程序才能运行结束。更确切的说是所有的非守护线程运行结束的时候,或者其中一个线程调用了System.exet()方法时,程序才运行结束。Java提供了中断机制,我们可以采用它来结束一个线程。我们创建一个线程,使其运行5秒后通过中断机制强制使其终止。程序检查数字是否是质数。package com.concurrency;pub
2014-11-25 15:38:04 755
原创 (每日算法)LeetCode--Set Matrix Zeroes (矩阵置零)
给定一个矩阵,如果有零元素那么就将零元素所在的行和列都置为零。Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.最直观的解法就是开辟一个新的矩阵,当原矩阵存在零元素的时候,就将新矩阵的对应行和列置为零。这样空间复杂度较高,也是题目不允许的。题目的难
2014-11-24 20:09:19 1109
原创 Github中的README.md使用的标记语言---Markdown语言
github上的README.md文件就是使用的Markdown语言编写的。它是一种易读易写的标记语言。 1.来龙去脉和语法特点 Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特
2014-11-22 08:14:02 1516 1
原创 Java多线程(1)--创建和线程信息获取
通过创建实现Runnable接口的类。使用带参数的Thread构造器来创建Thread对象。这个参数就是实现Runnable接口的类的一个对象。创建10个线程,每个线程打印乘以1-10的结果。package com.concurrency;public class Calcalator implements Runnable{ private int number; public
2014-11-21 15:58:11 788
原创 Linux安装中文man手册
1、下载中文包;http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz/13275fd039de8788b15151c896150bc4/2、编译安装tar xf manpages-zh-1.5.1.tar.gzcd manpages-zh-1.5.1./configure
2014-11-21 11:20:38 917
原创 Eclipse 安装Vim插件-viPlugin
1.viPlugin是什么? viPlugin是一个eclipse 针对vi的插件,使用此插件可以让你在使用eclipse进行编码时使用几乎所有vi命令,可 以极大的提高开发编码效率。 2.viPlugin如何安装? 2.1 点击你的eclipse中的 help --> Install New Software... --> Add.. -->
2014-11-19 13:32:18 1240
原创 Vim 常用快捷键及键盘图
Vim常用的快捷键h - 光标左移一个字符 j - 光标下移一个字符 k - 光标上移一个字符 l - 光标右移一个字符 下移15行 - 15jCtrl + f - 屏幕向下移动一页 Ctrl + d - 向下移动半页Ctrl + b - 屏幕向下移动一页 Ctrl + u - 向上移动半页n - 光标右移n个字符0 - 数字0,移动到
2014-11-18 16:01:25 1079
原创 mount命令使用详解(Linux)
linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的计算机系统都是由UNIX系 统、Linux系统和Windows系统组成的混合系统,不同系统之间经常需要进行数据交换。 挂接命令(mount) 首先,介绍一下挂接(moun
2014-11-14 10:18:54 886
原创 (每日算法)Leetcode--Edit Distance(编辑距离)
简单地说,就是仅通过插入(insert)、删除(delete)和替换(substitute)个操作将一个字符串s1变换到另一个字符串s2的最少步骤数。熟悉算法的同学很容易知道这是个动态规划问题。 其实一个替换操作可以相当于一个delete+一个insert,所以我们将权值定义如下:I (insert):1D (delete):1S (substitute):1
2014-11-13 20:58:16 2831
原创 (每日算法)Leetcode--Simplify Path (简单路径)
给定一个Unix风格的路径,简化之。使其不改变路径的结果,但是去掉中间无用的字符。因为系统执行的时候也是逐段查看的,因此最直观的做法就是使用栈来简化,当是/..时,出栈;当是/.时,忽视;当时其他时才进栈。Given an absolute path for a file (Unix-style), simplify it.For example,path = "/ho
2014-11-12 21:31:00 914
原创 (每日算法)Leetcode--Simplify Path (简单路径)
给定一个Unix风格的路径,简化之。使其bGiven an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"
2014-11-12 20:33:36 105
原创 (每日算法)leetcode--Text Justification(格式化字符串)
给定一组字符串,按照给定长度(eg.16)格式化显示,使每一行尽可能多的单词,单词之间的空格均衡-最左侧可以稍多左右对齐。最后一行靠左对齐,即最右侧可以没有但系。Given an array of words and a length L, format the text such that each line has exactly L characters and is ful
2014-11-11 21:22:40 1000
原创 编译器的工作过程
编译器的工作过程源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc tes
2014-11-11 19:35:10 1443 1
原创 计算机是如何启动的?
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。零、boot的含义先问一个问题,"启动"用英语怎么说?回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootst
2014-11-11 19:17:41 829
原创 进程与线程的理解和直观比喻
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。
2014-11-11 19:09:54 958
原创 在windows7系统上安装Linux-CentOS双系统步骤详解
需要的软件:1)EasyBCD-用来添加和修改启动项2)分区助手3)WinGrub-查看分区卷工具4)Ext2Fsd-在安装镜像大于4G的时候使用第一步:将以上软件安装,在我的电脑-管理-磁盘管理中将想要安装centos的分区--删除卷。打开软件助手,其中就能看到之前创建的未分配空间,右键--创建分区,10G,只是用来存放安装文件----提交即可第二步:将下载的Cent
2014-11-09 10:54:35 829
原创 C++ static 、extern以及全局变量之间的相关逻辑
全局变量,就是指那些定义在函数之外的变量,当然也是定义在类之外的变量。(1)全局变量会被自动初始化,函数中的变量不会被自动初始化,类中定义的那些成员变量(内建)也不会自动初始化。那么这里有一个疑问,为什么要这样设置?并且为什么,在进程内存区中,分为初始化了的全局变量、静态变量,和未初始化的全局、静态变量。(2)全局变量如果加上static关键字,事情将会变得很奇妙。
2014-11-06 19:44:34 811
原创 Python实现网络爬虫
一、网络爬虫的定义网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如
2014-11-04 23:30:34 2446 1
原创 Redis 数据结构解析和命令指南
命令参考文档:redis commands—你也许已经知道Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值。也就是说,你不必仅仅把字符串当作键所指向的值。下列这些数据类型都可作为值类型。二进制安全的 字符串 string二进制安全的 字符串列表 list of string二进制安全的 字符串集合 set of strin
2014-11-03 15:51:54 1065
转载 面试知识点总结
基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区
2014-11-01 12:05:54 534
翻译 推荐书籍
操作系统:现代操作系统UNIX环境高级编程鸟哥的LINUX私房菜(基础学习篇)LINUX多线程服务端编程 LINUX高性能服务器篇深度探索Linux操作系统:系统构建和原理解析网络:TCP/IP协议(卷一)UNIX网络编程(卷一、卷二)计算机系统:深入理解计算机系统算法和数据结构:编程之美剑指Offer编程珠玑算法导论leetc
2014-11-01 11:51:50 513
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人