- 博客(34)
- 收藏
- 关注
转载 linux init.d
本文包括3部分内容 1、 Linux的引导过程 2、 运行级别 3、 /etc/rc.d/ 与/etc/rc.d/init.d的关系 都仅限于自身的理解,如有差错和不足的地方请指正和补充!一起学习,一起进步。 “/etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行”。开始之前,先引用李善明经理昨天晚上
2014-06-20 09:06:46
588
转载 vi
1.vi 模式 a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了. b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。等按下‘i,I,o,O,a,A,r,R’等 字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现'INSERT'或者‘REPLACE’字样,才可以 输入任
2014-06-20 09:05:34
546
转载 linux init.d
本文包括3部分内容 1、 Linux的引导过程 2、 运行级别 3、 /etc/rc.d/ 与/etc/rc.d/init.d的关系 都仅限于自身的理解,如有差错和不足的地方请指正和补充!一起学习,一起进步。 “/etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行”。开始之前,先引用李善明经理昨天晚上
2014-06-19 20:44:26
613
转载 java线程阻塞中断与LockSupport使用介绍
上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现。在介绍之前,先抛几个问题。 Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了InterruptedException异常?Thread.in
2014-06-09 16:48:05
10976
2
原创 二叉搜索树
#include "stdafx.h"#include using namespace std;struct Node{ int value; Node* left; Node* right;};bool insert(Node* p, int value);bool deleteCore(Node*& p, int value);//插入//如果二叉排序树中不含有
2014-06-08 20:43:15
455
转载 设计模式——模板方法模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构 模板方法模式是所
2014-06-07 19:17:16
463
转载 gzip原理与实现
gzip 使用deflate算法进行压缩。zlib,以及图形格式png,使用的压缩算法也是deflate算法。从gzip的源码中,我们了解到了defalte算法的原理和实现。我阅读的gzip版本为 gzip-1.2.4。下面我们将要对deflate算法做一个分析和说明。首先简单介绍一下基本原理,然后详细的介绍实现。 1 gzip 所使用压缩算法的基本原理gzip 对于要压缩的文件,首先
2014-06-07 12:54:58
738
转载 Nginx负载均衡
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器.下面简单的介绍下我使用Ngi
2014-05-28 17:36:09
577
转载 服务器缓存技术
对服务器在网站中位置作用有个大概了解:lamp架构图上图主要介绍了三种服务器,也是比较常用的服务器,下面就介绍这三种服务器的缓存配置。apache是作为正向代理服务器缓存,nginx和squid主要作为反向代理服务器缓存. 服务器缓存工作原理 上面是一个简单的流程图:我先描述一下:用户1访问A页面,服务器解析A页面返回给用户1,同时在服务器内存上做一定映射,
2014-05-28 10:55:55
1447
转载 浏览器缓存技术
在介绍缓存技术之前,我们先看一张LAMP网站的价格图,通过架构图我们可以很清晰的对网站整体缓存有一定认识 LAMP网站结构图 上面是一种经典的LAMP网站结构图,通过上图我们很清楚的看到一个网站从前台到服务端的整体关系,下面是我根据上图画的一张LAMP缓存图:
2014-05-28 10:54:35
676
转载 TCP的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资
2014-05-28 10:01:30
3208
转载 TCP的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相
2014-05-28 10:00:04
1118
转载 工厂模式
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式在《Java与模式》中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品。 2)工厂方法模式(Factory Method):又称为多形性工厂。 3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于
2014-05-26 10:29:09
525
转载 DAO模式
DAO(Data Access Object)模式实际上是两个模式的组合,即DataAccessor 模式和 Active Domain Object 模式。其中DataAccessor模式实现了数据访问和业务逻辑的分离,而Active Domain Object 模式实现了业务数据的对象化封装,一般我们将这两个模式组合使用。Data Accessor模式实现了数据访问和业务逻辑的分离:就
2014-05-23 11:26:40
1206
转载 jdbc
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{
2014-05-23 11:03:57
471
转载 java单例模式
在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。 1. 最简单的实现 首先,能够想到的最简单的实现
2014-05-22 16:12:34
499
转载 雅虎团队的23条网站性能优化军规
1. 减少HTTP请求次数 合并图片、CSS、JS,改进首次访问用户等待时间。 2. 使用CDN 就近缓存==>智能路由==>负载均衡==>WSA全站动态加速 3. 避免空的src和href 当link标签的href属性为空、script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的URL作为它们的属性值,从而把页面的内容加载进来作为它们的值。测试 4. 为文件
2014-05-16 10:15:03
691
转载 RESTful API 设计最佳实践
数据模型已经稳定,接下来你可能需要为web(网站)应用创建一个公开的API(应用程序编程接口)。需要认识到这样一个问题:一旦API发布后,就很难对它做很大的改动并且保持像先前一样的正确性。现在,网络上有很多关于API设计的思路。但是在全部案例中没有一种被广泛采纳的标准,有很多的选择:你接受什么样的格式?如何认证?API应该被版本化吗?在为SupportFu(一个轻量级的Zendesk替换实
2014-05-15 09:52:47
768
转载 Etag、Expires、Last-Modified
本文对页面中Etag和Expires标识处理,使得页面更加有效被Cache1、Etag和Expires中Client 端Http Request Header及Server端Http Reponse Header工作原理。2、静态下Apache、Lighttpd和Nginx中Etag和Expires配置3、非实时交互动态页面中Etag和Expires处理在客户端
2014-05-14 20:26:52
644
转载 如何设计好的RESTful API之安全性
导读:安全是恒久的话题,对于基于WSDL和SOAP的Web Service,我们有WS-Security这样的安全规范来指导实现认证、授权、身份管理等安全需求。如何保证RESTful API的安全性呢。关键词:RESTful API API安全性 前面讲了好的RESTful API具有的一些特征,本文会继续探讨RESTful API的安全性问题。InfoQ:安全是恒久的话题,对于基
2014-05-12 21:32:34
31047
转载 如何设计好的RESTful API 之好的RESTful API 特征
导读:设计好RESTful API对于软件架构的可扩展性、可伸缩性和消费者的体验都具有至关重要的作用。本次虚拟研讨会的主题是,如何设计好的RESTful API。关键词:RESTful API REST OAuth协议 REST架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出。HTTP就是该架构风格的一个典型应用。从其诞
2014-05-12 21:31:09
2705
转载 理解HTTP幂等性
基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascr
2014-05-12 17:18:47
536
转载 Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo
2014-05-05 20:13:04
373
转载 什么是字符串常量池
在理解字符串常量前,我们先熟悉一下如何创建一个字符串,在Java中有两种方法可以创建一个字符串对象:使用new运算符。例如:1String str = new String("Hello");使用字符串常量或者常量表达式。例如:12String str="He
2014-04-21 14:29:57
712
原创 进程的虚拟地址空间
32位机器,每个程序有4G的虚拟地址空间。大致分为4块,从低地址到高地址依次是:NULL区,用户区,隔离区,核心区。用户私有的数据都在用户区(当然这个区里又可以细分,其中也包括一部分可以共享的内容),系统内核等东西都在核心区。总体来说,A进程的虚拟地址空间中的内容和B进程相比,只有各自的用户区不一致。通常用户区中,进程又会将exe文件(由头数据和段数据组成)中定义的代码段、堆栈段、数据段等各个段映
2014-04-20 11:45:03
583
转载 Java HashMap的工作原理
面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country对象
2014-04-03 14:50:59
843
转载 用最小堆将k个已排序链表合并为一个排序链表
问题:请给出一个时间为O(nlgk),用来将k个已排序链表合并为一个排序链表的算法。此处的n为所有输入链表中元素的总数。编程思路:假设k个链表都是非降序排列的。(1)取k个元素建立最小堆,这k个元素分别是k个链表的第一个元素。建堆的时间复杂度O(k)。(2)堆顶元素就是k个链表中最小的那个元素,取出它。时间复杂度O(1)。(3)若堆顶元素所在链表不为空,则取下一个元素放到堆顶位
2014-04-02 16:36:19
1576
转载 得墨忒耳定律 (Law of Demeter,缩写LoD)
前言这篇文章中,我想谈一谈得墨忒耳定律(Law of Demeter,缩写LoD)。我觉得这个主题对于写出一手简洁、精心设计和易于维护的代码,是极其重要的。根据我的经验,看到这条规则被打破,往往意味着我可以嗅到一股糟糕的设计在其中。而依据此定律去编写/重构,会使代码改善,清晰易懂且更易于维护。得墨忒耳定律是什么?我们从下面这几条基本规则开始:得墨忒耳定律--对象 O 的 M
2014-03-31 21:02:21
2134
转载 算法时间复杂度分析基础
摘要 本文论述了在算法分析领域一个重要问题——时间复杂度分析的基础内容。本文将首先明确时间复杂度的意义,而后以形式化方式论述其在数学上的定义及相关推导。从而帮助大家从本质上认清这个概念。前言 通常,对于一个给定的算法,我们要做两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基
2014-03-31 16:46:47
620
原创 查找和排序
1.查找线性表、树表、哈希表1.1线性表顺序查找、折半查找、分块查找1.1.1顺序查找。顺序查找。1.1.2折半查找折半查找,只适用于有序表,且仅限于顺序存储结构,对线性链表无法进行有效的折半查找(折半查找low会指向一个元素而high会指向相邻的下一个元素,然后low和high指向同一个元素,再然后low>high,循环结束,所以循环结束的条件为low
2014-03-27 15:47:35
3659
转载 字符串匹配算法
KMP算法字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多
2014-03-25 10:33:21
604
转载 螺旋矩阵
73 74 75 76 77 78 79 80 81 72 43 44 45 46 47 48 49 50 71 42 21 22 23 24 25 26 51 70 41 20 7 8 9 10 27 52 69 40
2014-03-23 17:36:12
2224
转载 zigzag数组
#include"stdafx.h"#includeusing namespace std;int main(){ int n; cin>>n; int s,i,j; int squa; int ** a = (int**)malloc(sizeof(int*)*n); if(a == NULL){ return 0; } for(i = 0; i < n; i++
2014-03-23 11:04:08
781
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人