
程序员
文章平均质量分 68
rongwenbin
这个作者很懒,什么都没留下…
展开
-
描述符表和描述符高速缓存
在80x86的CPU里,描述符的概念实在是太重要了。 在实模式下,大家都知道物理地址是由段地址和偏移地址两部分组成,其公式如下: 物理地址 = 段地址× 16 + 偏移地址 或者:物理地址 = 段地址 + 偏移地址 其结果都是一样的,由于段地址和偏移地址的长度都是16位,所以这种方式能够表达的最大地址为:ffff:ffffH,也就是10ffefH(f转载 2014-02-08 12:05:22 · 1073 阅读 · 0 评论 -
BOM头导致代码乱码的问题
一个PYTHON脚本因为其中有中文字符,所以保存格式为UTF-8。但是在代码原创 2014-04-16 17:16:43 · 1282 阅读 · 0 评论 -
用ultraedit实现编码转换
BOM这里涉及到一个BOM(Byte Order Mark) 的概念.简单的讲,在Unicode标准中,为了标示文本文件的编码类型,可以在文本文件的开始插入几个特殊的byte,通过这几个特殊的byte,应用程序就可以鉴别文本文件使用的是那种编码了.那几个特殊的byte也被称之为BOM(参考:http://unicode.org/faq/utf_bom.html ).对于Unicode,转载 2014-04-16 17:35:53 · 20644 阅读 · 0 评论 -
网工备考--Windows server 2003 Mail 全攻略
整个邮件系统主要由电子邮局系统和电子邮件发送、接收系统两大部分构成。将电子邮件发送和接收系统称为MUA。电子邮局系统称为MTA。(1)MUA:当邮件写好之后,应该使用MUA(Mail User Agent,邮件用户代理)程序将邮件发往INTERNET上的一个ISP,MUA是一个邮件系统的客户端程序,MUA使用SMTP协议将用户信件以“上推”方式提交给MTA;当用户接收邮件时,使用POP转载 2014-04-21 10:30:49 · 849 阅读 · 0 评论 -
知识点
STLboostIPCMFCUMLActiveXATLOLECOM、OCX、DLL之间的区别TOMCAT CGI PERL SERVLETIIS回调函数volatile内存屏障(memory barrier)C专家编程人月神话进程同步SRS疯狂程序员织梦PPT并发分布式TPSSHGEMFIREC原创 2014-04-16 14:58:41 · 487 阅读 · 0 评论 -
零基础如何学习 Web 安全?
这是个好问题,我强迫症犯了,本来你写的是“web”,我改为了“Web”。因为正好Web安全是我擅长的,你说的是0基础,我总结下我的一些看法吧,针对0基础的。一. 首先你得了解WebWeb分为好几层,一图胜千言:事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主转载 2014-04-16 13:03:54 · 667 阅读 · 0 评论 -
一个操作系统的实现:关于保护模式和实模式的跳转和段描述符高速缓冲寄存器
http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309926.html 依旧是第三章,看的好慢哦,其实从实模式跳转到保护模式还是很好懂得,主要注意就是跳转指令: jmp dword SelectorCode32:0 //而不能是 jmp SelectorCode32:0 因为这时转载 2014-02-08 17:25:44 · 1316 阅读 · 0 评论 -
关于ROM BIOS的启动问题
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2078716&page=1&authorid=20499746>>1,而这里之后我开始不明白了。JMP要跳转到的位置是在高地址(4G末端)Flash Rom BIOS中还是在低地址(1M末端)的shadow BIOS呢?肯定跳转的目标在1M+64k以下,不会到4G末端。因为转载 2014-02-08 17:58:21 · 2199 阅读 · 0 评论 -
第3节 段机制和描述符
2.3.1 段机制 在80386的段机制中,逻辑地址由两部分组成,即段部分(选择符)及偏移部分。 段是形成逻辑地址到线性地址转换的基础。如果我们把段看成一个对象的话,那么对它的描述如下: (1) 段的基地址(Base Address):在线性地址空间中段的起始地址。 (2)段的界限(Limit):表示在逻辑地址中,段内可以使用的最大偏移量。 (3)段的属性(Attr转载 2014-02-08 17:04:50 · 827 阅读 · 1 评论 -
实模式和保护模式区别及寻址方式
出处:http://blog.youkuaiyun.com/rosetta64KB-4GB-64TB? 我记得大学的汇编课程、组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为啥最大寻址能力就变成了64TB?每个段最大也转载 2014-02-10 16:29:25 · 658 阅读 · 0 评论 -
[汇编理论]80x86保护模式
http://blog.youkuaiyun.com/feijj2002_/article/details/618721#t33一.保护方式简介80386有三种工作方式:实模式,保护模式和虚拟8086模式。本文介绍保护方式下的80386及相关的程序设计内容。实模式下的80386寄存器,寻址方式和指令等基本概念,除特别说明外在保护方式下仍然保持。尽管实方式下80386的功能要大大超过其先转载 2014-02-10 16:30:41 · 761 阅读 · 0 评论 -
全排列以及相关算法解析
全排列以及相关算法在程序设计过程中,我们往往要对一个序列进行全排列或者对每一个排列进行分析。全排列算法便是用于产生全排列或者逐个构造全排列的方法。当然,全排列算法不仅仅止于全排列,对于普通的排列,或者组合的问题,也可以解决。本文主要通过对全排列以及相关算法的介绍和讲解、分析,让读者更好地了解这一方面的知识,主要涉及到的语言是C和C++。本文的节数:1.全排列的定义和公式:2.时间复转载 2014-02-14 11:36:31 · 884 阅读 · 0 评论 -
大数据量、海量数据处理方法总结
大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google腾讯这样的一些涉及到海量数据的公司经常会问到。下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。转载 2014-02-14 11:52:55 · 727 阅读 · 0 评论 -
回调函数的概念及其使用
1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的转载 2014-03-06 12:14:28 · 630 阅读 · 0 评论 -
使用telnet协议来收发邮件(SMTP和POP3)
http://pan.baidu.com/转载 2014-04-21 17:46:01 · 877 阅读 · 0 评论 -
UltraEdit引出的字符编码问题
最近用ultraedit编辑python文件,遇到web显示中文乱码的问题,后来搜索终于找到了解决办法,感谢wewe80提供的资料,转贴如下: UltraEdit的问题及其编码一.关于各种编码文件标记头 各种编码文件开头 UTF-8以 EF BB BF UTF-16以 FE FF(big-endian) FFFF(little-endian) UN转载 2015-09-16 15:44:32 · 1240 阅读 · 0 评论 -
用ultraedit实现编码转换
BOM这里涉及到一个BOM(Byte Order Mark) 的概念。简单的讲,在Unicode标准中,为了标示文本文件的编码类型,可以在文本文件的开始插入几个特殊的byte,通过这几个特殊的byte,应用程序就可以鉴别文本文件使用的是那种编码了。那几个特殊的byte也被称之为BOM(参考:http://unicode.org/faq/utf_bom.html )。对于Unicod转载 2015-09-16 16:05:49 · 1815 阅读 · 0 评论 -
谈谈MVC模式
1.如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论。MVC模式就是架构模式的一种,它对我的启发特别大。我觉得它不仅适用于开发软件,也适用于其他广泛的设计和组织工作。下面是我对MVC模式的一些个人理解,不一定正确,主要用来整理思路。2.MVC是三个单词的首字母缩写,它们是Model(模型)、View(视转载 2015-09-17 11:06:08 · 360 阅读 · 0 评论 -
什么是依赖注入 (rongwenbin 编排整理)
Spring 能有效地组织J2EE应用各层的对象。不管是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大转载 2015-09-22 15:34:44 · 374 阅读 · 0 评论 -
怎样理解阻塞非阻塞与同步异步的区别?
http://www.zhihu.com/question/19732473老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻。2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了转载 2015-09-23 14:54:26 · 491 阅读 · 0 评论 -
网络编程释疑之:同步,异步,阻塞,非阻塞
一讲到网络编程的I/O模型,总会涉及到这几个概念。问了很多人,没几个能清晰地讲出他们之间的区别联系,甚至在网络上也有很多不同的观点,也不知是中国文字释义的博大精深,还是本来这几个概念就是绕人不倦。今天我也来给大家讲解一下我对这几个概念的理解。既然网络上众说纷纭,不如找个权威参考一下,这个权威就是《UNIX网络编程:卷一》第六章——I/O复用。书中向我们提及了5种类UNIX下可用的I/O转载 2015-09-23 14:26:12 · 693 阅读 · 0 评论 -
eclipse最有用快捷键整理
编辑Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)Ctrl+Shift+F 格式化当前代码Ctrl+Shift+M 添加类的import导入Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)Ctrl+Y 重做(与撤销Ctrl+Z相反)转载 2015-10-12 11:23:37 · 415 阅读 · 0 评论 -
JAVA跟PHP对比
一、 语言比较 Php是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的web开发首先最容易想到的就是JSP(转载 2016-05-18 18:11:14 · 760 阅读 · 0 评论 -
进程死锁概念
笔试常考概念归纳(数据库死锁篇)1. 死锁的概念死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。它是计算机操作系统乃至并发程序设计中最难处理的问题之一。实际上,死锁问题不仅在计算机系统中存在,在我们日常生活中它也广泛存在。我们先看看这样一个生活中的例子:在一条河上有一座桥,桥面较窄,只能容纳一辆汽车通过,无法让两辆汽车并行。如果有两辆汽车A和转载 2015-09-16 15:19:01 · 489 阅读 · 0 评论 -
Eclipse的调试功能的10个小窍门
你可能已经看过一些类似“关于调试的N件事”的文章了。但我想我每天大概在调试上会花掉1个小时,这是非常多的时间了。所以非常值得我们来了解一些用得到的功能,可以帮我们节约很多时间。所以在这个主题上值得我再来写一篇文章。第一条: 不要过分的调试!有关调试的第一条要牢记的便是这条很疯狂的口号!但是我必须要在这里再说一遍:不要过分的调试!试着将复杂的逻辑分解成独立的小单元,然后写单元测试代码来保转载 2015-11-03 13:51:21 · 364 阅读 · 0 评论 -
Web 通信 之 长连接、长轮询(long polling)
基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。 一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。 二、长连接、长转载 2015-09-11 16:05:42 · 422 阅读 · 0 评论 -
在Exchange2007通过发件人信誉来过滤垃圾邮件
作者:Tina出处:IT专家网2010-01-25 09:19 【IT专家网独家撰稿】如果要问企业邮箱管理员,什么是让他们最头疼的问题?垃圾邮件肯定是名列前茅。虽然现在有很多针对垃圾邮件的措施,如收件人筛选、发件人ID、垃圾邮件筛选器列表集合等等。但是道高一尺、魔高一丈,仍然无法杜绝垃圾邮件的入侵。 微软在这方面也做出了不少的努力。如在Exchange2007中提出了发件人信誉级别的功转载 2014-04-22 09:04:20 · 1308 阅读 · 0 评论 -
如何用TortoiseSVN管理本地文档
1、安装(略)2、搭建本地SVN版本管理数据库(服务器)(1)在本地磁盘上新建一个目录,例如E:\SVN,用来存储各种需要进行版本管理的文档;接着在该目录下再创建一个新的空目录,例如创建一个E:\SVN\Test1,用来管理日志文件,如下图所示:(2)右键选中Test1文件夹,选择TortoiseSVN->Create repository here菜单,创建一个新的文档存储仓库。转载 2014-12-25 11:02:49 · 4289 阅读 · 0 评论 -
SVN 如何将本地文件、文件夹导入
1、本地右键选择 repo_brower。2、点create folder创建文件夹。3、在本地或SVN工具窗口点check out,将刚才文件夹检出。4、在本地将需要导入到库的文件、文件夹拷贝至刚才检出的文件夹内。5、在本地将需要导入的文件、文件夹右键点add。6、在本地将需要导入的文件、文件夹右键点commit。原创 2015-04-08 17:09:22 · 19818 阅读 · 1 评论 -
字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的
字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得字符编码的知识。不注意的人可能对这个不在意,但这些名词有时候实在让人迷惑,对想学习计算机知识的人来说,搞懂它也十分重要,我也是在学习中慢慢了解了一些这方面的知识。 1. ASCII码在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这转载 2014-04-08 15:00:35 · 697 阅读 · 0 评论 -
程序员技术练级攻略
前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手转载 2015-08-11 15:34:09 · 373 阅读 · 0 评论 -
字符编码格式的显示与存储示例分析
汉字“严”的unicode是十六进制数4E25,转换成二进制数足足有15位(100111000100101),也就是说这个符号的表示至少需要2个字节。“严”的UTF-8编码是“11100100 10111000 10100101”,这是保存在计算机中的实际数据,转换成十六进制就是E4B8A5,转成十六进制的目的为了便于阅读。1)ANSI:文件的编码就是两个字节“D1 CF”原创 2015-07-30 19:32:35 · 1656 阅读 · 0 评论 -
80X86的物理地址形成(实模式+保护模式)——段式寻址
1.实模式80X86系列CPU中,最早的是8086,它有20根地址线,可以寻址1MB(2^20)内存空间。很自然地,如果CPU要跟主存交换信息,它也必须有20位的物理地址,但是,8086CPU内部是16位的结构,它里面跟地址有关的寄存器都是16位的(8086中跟地址有关的寄存器有五个:SI,DI,BP,SP,IP,前四个是变址寄存器,最后一个是指令指示器,它保存的是CPU将要执行的下一条指转载 2014-02-08 18:03:43 · 3757 阅读 · 1 评论 -
做软件的自动化测试一般用什么工具?
一、对于你的问题,首先明确测试类型,然后才能明确自动化测试类型,最后定位哪个类型用哪个方面的自动化测试工具。1、测试类型可以包括:白盒测试、黑盒测试(功能测试、性能测试)等。2、不同的测试类型使用的自动化测试方法不同,白盒测试主要针对代码级的单元测试、黑盒测试主要面对功能级和系统级的验证测试。3、自动化测试,针对白盒测试,一般需要有一定的编程基础,即能够基于功能代码写测试代码,常用的单转载 2013-11-06 11:03:09 · 878 阅读 · 0 评论 -
怎样理解阻塞非阻塞与同步异步的区别?
因为中文语意的问题,很多时候确实会导致混用,而且语境不一样意义也可能不一样。如果只是从计算机编程这个角度说, 讨论最多的也是IO 模型 ,阻塞非阻塞和同步异步说的应该是不同的东西。阻塞非阻塞:可以简单理解为需要做一件事能不能立即得到返回应答,如果不能立即获得返回,需要等待,那就阻塞了,否则就可以理解为非阻塞。同步异步: 你总是做完一件再去做另一件,不管是否需要时间等待,这就是同步;异步转载 2014-01-14 09:43:36 · 728 阅读 · 1 评论 -
同步、异步、多线程与事件型综述
首先要了解什么是阻塞和阻塞式IO。线程在执行中如果遇到磁盘读写或网络通信(统称IO操作),通常要耗费较长的时间,这时操作系统会剥夺此线程的CPU控制权,使其暂停执行,同时将资源让给其他的工作线程,这种线程调度方式称为阻塞。当IO操作完毕时,操作系统将这个线程的阻塞状态解除,恢复其对CPU的控制权,令其继续执行。这种IO模式就是同步式IO或阻塞式IO。其次是了解什么是异步IO。相应地转载 2014-01-13 15:30:00 · 563 阅读 · 0 评论 -
让程序只运行一个实例的四种方法
源代码下载:http://d.download.youkuaiyun.com/down/907655/magictong 综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。 方法一转载 2014-01-15 16:55:40 · 499 阅读 · 0 评论 -
COM线程中模型
COM线程模型在COM相关的基础知识中应该算是难点,难的原因可能有这些:1、需要对COM其它基础知识有较深的了解,因为这个论题几乎涉及到了COM所有其它的基础知识。2、学习者得非常了解Win32本身的线程模型,因为在Windows中COM的线程模型在建立在Win32线程模型的基础上的。3、COM线程模型所引用的概念十分抽象,不好理解。如果你还没有掌握 1,2所提到的知识点,你可以马转载 2014-01-15 15:42:45 · 488 阅读 · 0 评论 -
地图着色算法C语言实现(加个人评注)
地图着色定理:任何平面地图可以使用4种颜色给每个不同的城市着色,而保证相邻的城市着不同的颜色。思路:把地图上的每个城市抽象为一个点,并给每个城市编号,相邻的城市之间用直线连接。据此做出邻接矩阵,若第i个城市与第j个城市相邻,则metro[i][j]=1,否则metro[i][j]=0。算法:按照编号从小到大的顺序检查每个城市,对每个城市从1到4使用4种颜色着色,若当前颜色可用(即不转载 2014-01-23 16:14:45 · 1726 阅读 · 0 评论 -
海量数据查找
有一百万个数,是在1到一亿当中随机取值,找出这一亿个数中没出现的数,要求用最小的时间复杂度。说下思想就行,我想到的就是遍历,但感觉太复杂了。方案1:用位图法用一亿个bit来标记一个数是否出现。比如出现了数字1024,那么就把1024位置1。从1到一亿扫描,没有标记1的就是缺少的数字。100000000/1024/1024=95.367431640625,不到96转载 2014-01-23 17:25:42 · 974 阅读 · 0 评论