程序员
流浪的侠客
还没有入行的程序猿,坚信自己能成为一个好的程序员。热爱运动旅行烹饪,是个有家天下情怀的青年。
展开
-
写程序10大习惯和如何提高编程能力(不知道被转了几百次了找不到原出处了)
写程序10大习惯和如何提高编程能力(不知道被转了几百次了找不到原出处了) 【转载】如何提高自己的编程能力 1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学转载 2013-09-23 10:08:13 · 1438 阅读 · 0 评论 -
i++ 是否为原子操作 和 Java中的volatile关键字
研究ThreadPoolExecutor的时候,发现其中大量使用了volatile变量。 不知为何,因此做了一番查找,研究: 其中借鉴了很多网上资料。 在了解volatile变量作用前,先需要明白一些概念: 什么是原子操作? 所谓原子操作,就是"不可中断的一个或一系列操作" , 在确认一个操作是原子的情况下,多线程环境里面,我们可以避免仅仅为保护这个操作在外围加上性原创 2014-05-16 21:29:10 · 5827 阅读 · 2 评论 -
准确率(Precision)、召回率(Recall)以及F值(F-Measure)
在信息检索、分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常重要,因此最近根据网友的博客做了一个汇总。准确率、召回率、F1信息检索、分类、识别、翻译等领域两个最基本指标是召回率(Recall Rate)和准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率,概念公式: 召回率(Recall) =原创 2014-07-06 22:43:05 · 40574 阅读 · 0 评论 -
硬盘都有哪些型号和规格大小
从载体方式来说,分为固态硬盘和机械硬盘。固态硬盘方面,从接口方式分为PCI接口和SATA接口;机械硬盘方面,从接口方式分为SATA接口和PATA(IDE)接口及SCIS与SAS接口(后两者主要用于服务器)。非PCI接口硬盘,从尺寸方面分:5.25"(已经淘汰退市)、3.5"、2.5"和1.8"。SATA接口方式硬盘,从传输标准上分为SATA1.0、SATA2.0和SATA3.0三种。机械硬盘转速,原创 2014-06-16 15:20:07 · 13174 阅读 · 0 评论 -
“带宽”的真正含义
“带宽”这个词并不陌生,即使是非技术人员,普通的老百姓,也经常会提到,比如“我家换了10M带宽的光纤,速度嗷嗷的”,“谁在下载把带宽都占用了,视频看不了”。对于互联网行业的技术人员而言,在平时的网络调优、申请部署资源时,带宽也是个必不可少的参数。可是你真的知道带宽这个词所指的准确含义吗?有些人从字面上的意思直观理解为带宽是类似于高速路的路面宽度。部分人知道带宽的单位是bits/s,即单位时原创 2014-09-14 22:57:24 · 2585 阅读 · 0 评论 -
什么是服务端开发
从事服务端开发已经有一些日子了,静下来可以想想和记录些服务端开发的想法了。服务端开发,特别是Web开发,基本上全是处理HTTP请求的处理。根据具体用途分为两种:Web页面开发和API接口开发。Web页面开发也完全可以看成是API接口开发,只是它的两个主要部分,页面和ajax请求,一个是返回html,另外一个可以返回html,也可以返回其他格式的而已。API接口开发是针对有客户端产品而言的。原创 2014-10-16 10:07:23 · 10075 阅读 · 0 评论 -
编译器的工作过程
源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc test.c$ ./a.outHello, world!对于复杂的项目,编译转载 2014-12-26 09:08:29 · 669 阅读 · 0 评论 -
计算机是如何启动的
从打开电源到开始操作,计算机的启动是一个非常复杂的过程。我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示…… 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。零、boot的含义先问一个问题,”启动”用英语怎么说?回答是boot。可是,boot原来的意思是靴子,”启动”与靴子有什么关系呢? 原来,这里的boot是bootstrap(转载 2015-03-06 19:02:29 · 550 阅读 · 0 评论 -
揭开计算机的神秘面纱
写在前面的话:从接触电脑以来,就一直对电脑充满好奇。当电脑连接上电源,按下开机键,我们就可以做所有我们想 做的事情,打游戏、写文章、看电影、搭建web服务器、自己写程序等等。随着接触电脑的时间越长,反而对电脑更加的陌生,不断的问自己,计算机到底是怎么 组成的?为什么就能够实现这些功能?如果让我穿越回多少年前,该如何搭建一台电脑?恰好这几天读完这本书《code:the hidden Language转载 2015-03-06 18:36:36 · 721 阅读 · 0 评论 -
能Ping通,能DNS解析,不能打开网页(登陆QQ等)的解决办法
悲了个催,昨天的一次意外断电关机,导致操作系统再也无法访问Internet,具体表现为:1.Ping地址正常,能ping通任何本来就可以ping通地址,如网关、域名。2.能DNS解析域名。3.无法打开网页,感觉是网页打开的一瞬间就显示无网络连接。4.只需要连接ip地址、无需dns接些的程序都是无法连接,如QQ.折腾了很久,通过重启路由、sfc修复命令、重装驱原创 2015-03-20 21:43:23 · 6740 阅读 · 1 评论 -
关于闭包
作者: 阮一峰日期: 2009年8月30日闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。转载 2015-06-11 17:13:02 · 2049 阅读 · 0 评论 -
<a>标签在微信iOS版本的解析没有问题,但是在安卓版就解析不出来
标签在微信iOS版本的解析没有问题,但是在安卓版就解析不出来。例如立即绑定 ,在安卓版微信上“立即绑定”这四个字不会显示蓝色,点击也没有跳转的效果。 网上很多朋友说在URL后边加上”#mp.weixin.qq.com”或者其他腾讯的二级域名就可以解决这个问题,但是我按这个方法试了,结果还是不行。 最后发现是在写的时候在域名前面没有添加http的缘故,写成就不会出现这个问题了。原创 2015-10-26 14:56:35 · 4973 阅读 · 0 评论 -
异步与非阻塞之间的区别(看到的最清晰的说明)
Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished非阻塞不一定做到异步。非阻塞只是意味着方法调用不阻塞,但是通过事件通知的方式给调用线程一个机会转载 2016-01-21 16:56:10 · 3475 阅读 · 0 评论 -
技术总结发散图
JAVA核心技术总结J2EE技术总结工作和学习总结大数据相关技术总结转载 2016-01-27 19:34:04 · 1476 阅读 · 0 评论 -
小工具汇总
文件、文件夹名称快速搜索软件: everything:http://rj.baidu.com/soft/detail/17239.html?ald,这款软件的大小之小,速度之快,简直令人瞠目结舌。它可以在几十秒的时间里就可以把你硬盘里面的所有文件的索引建立好,然后你可以使用它来查找任何文件和文件夹,查找不费时间,太好用了。帮你找到你的文件被哪个程序占据了: unlocker:http://rj原创 2016-02-18 11:29:30 · 688 阅读 · 0 评论 -
怎样防止hosts被软件自动修改
打开记事本,根据需要输入以下代码: 一、 禁止修改HOSTS文件: attrib +r +a +s +h %windir%\system32\drivers\etc\hosts echo y|cacls %windir%\system32\drivers\etc\hosts /g everyone:r 二、允许修改HOSTS文件: echo y|cacls %windir%\system原创 2016-03-30 13:51:08 · 14318 阅读 · 2 评论 -
大端和小端(Big endian and Little endian)
一、大端和小端的问题对于整型、长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。 例如,假设从内存地址 0x0000 开始有以下数据: 0x0000 0x0001转载 2014-04-15 10:38:21 · 1033 阅读 · 0 评论 -
Stack的三种含义
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样一层层堆起来,后面加入转载 2013-12-12 11:23:14 · 1099 阅读 · 0 评论 -
程序员的那点事儿
我尽量用平和一点的口吻跟你说说关于程序员的那点事儿。1.我在一个叫摩托罗拉的公司干过,那地方有50%的人整天干的事情就是催另外25%的人没完没了的解剩下那25%的人造成的bug。我是个程序员,每天敲敲打打,哪天电脑崩溃了你会发现我这辈子啥都没留下。大多数人甚至都没有想过我们是怎么把手机捣鼓出来的,包括是是否人手一套乐高的家庭套装工具。我那可爱的岳父岳母在向自己的亲戚朋友们介转载 2014-03-11 14:36:14 · 812 阅读 · 0 评论 -
Web服务器——Apache
一 Web服务器相关知识Web服务器是Linux最常用的应用。Web服务器是一种BS结构,亦即浏览器/服务器模式,具有通用性,是CS(客户端/服务器)结构的一种抽象。Web服务器通常采用HTTP协议,亦即超文本传输协议。动态语言的发展从CGI到以后的JSP、PHP、ASP.NET,后面几种技术现在得到了广泛地应用。Apache服务器是由Apache基金会开发、运行和维护的一种Web服务器,转载 2014-03-05 21:16:12 · 1205 阅读 · 0 评论 -
八数码问题的解决方案
void TBFS::Search() { TBFS T=*this; TList L; L.Append(T); int head=0,tail=0; while(head { for(int i=0;i { T=L.GetData(head转载 2014-04-15 09:48:10 · 3719 阅读 · 0 评论 -
数字签名是什么
http://www.youdzone.com/signature.html它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。文中涉及的密码学基转载 2014-03-19 12:57:15 · 708 阅读 · 0 评论 -
粗粒度与细粒度
粗粒度 细粒度原创 2014-03-20 11:58:58 · 19326 阅读 · 0 评论 -
网关与路由的概念
网关与路由的区别 网关的概念 ping 网关原创 2014-03-21 09:50:33 · 3421 阅读 · 0 评论 -
大整数加法
两个很大的整数--超过了INT_MAX,它们怎么做加法呢?把它们当作字符串,逐位进行相加喽。#include#include#includechar* add(const char *arr,const char *brr){ int lena=strlen(arr); int lenb=strlen(brr); int maxlen=(lena<lenb)?l转载 2014-03-20 15:35:44 · 1062 阅读 · 0 评论 -
B/S与C/S结构安全的相对比较
关于网络安全软件B/S、C/S两种结构的优劣,近两年来出现过一些技术性的争论,但目前业内人士已经基本达成共识,B/S结构的优越性得到了普遍的认可,B/S结构是否能成为C/S结构的终结者还有待时间的验证。何为C/S、B/S结构 C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具备了一定的数据处理和数据存储能力;通原创 2014-05-05 00:25:38 · 10304 阅读 · 0 评论 -
如何选择开源许可证?
如何为代码选择开源许可证,这是一个问题。世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。下面是转载 2014-05-06 09:40:05 · 708 阅读 · 0 评论 -
路由器操作系统那点事
很多朋友跟我讲,如果不OpenWRT,哪这路由就没法儿用了!非常理解大家对OpenWRT的热爱,我做为一个开源项目的拥护者和参与者,今天来给大家讲讲路由器操作系统的那点事儿。让大家了解下各种固件的来由。先来说说现在市面上的各种路由器的固件有哪些种吧。中国地大物博、奇葩众多,我国的无线路由器厂家802.11n的年代里,以价格这个永垂不朽的利器将八国联军全部打夸,造就了一代传奇。他们使用了很多转载 2014-05-06 09:54:32 · 1803 阅读 · 0 评论 -
左耳朵耗子谈云计算:拼的就是运维
这是InfoQ上一篇对陈皓的访谈文章,关于yun ji suan转载 2014-05-06 23:54:35 · 1407 阅读 · 0 评论 -
随便扯扯,程序员应该具备哪些素质
趁着这几天无事,好好总结一下从事软件开发以来的一些想法,这篇blog尝试从我自身的一些经历来谈谈程序员应该具备哪些素质。如有不足之处,还请不吝赐教!下面,我将列出并展开所有我认为程序员必须具备的素质。基础知识你也许是像我一样的自学者,没有数电/模电,编译原理,操作系统原理,网络与数据库等方面的知识,但是对于这些你应该尝试去了解、理解。当初跨专业考研之时学习的操作系统/网络/转载 2014-05-07 10:17:24 · 943 阅读 · 0 评论 -
程序语言发展的动机
很多程序语言的发展,其动机和幅度,主要取决于程序员的实际需求。与当初「不想记住数字」导致汇编语言的出现、「不想重复劳动」导致宏(macro) / 过程(procedure)的出现类似,因为「想要把数据和操作数据的动作组织到一起」,导致语言增添原生支持物件导向(object orientation)的数据类型和语法;「能方便地把一小块功能隔离 / 独立出来,便于维护 / 分享使用」的原创 2014-04-20 10:42:27 · 857 阅读 · 0 评论 -
语义语法的概念
现代的逻辑学,或者说形式逻辑、数理逻辑等,其目的是设计出来一套形式语言系统,并对其作出语义解释。这样的形式语言系统是一个个抽象的封闭体系,但是可以应用于很多的不同领域,比如说法律、计算机等等领域对逻辑学的应用。一个逻辑系统通常由三个部分组成,即词汇部分、句法部分和基于模型论的语义部分。所谓的词汇部分就是列举出一个形式系统所使用的所有符号,句法部分是这些符号的组合规则,规定什么样的符原创 2014-04-09 11:29:40 · 4369 阅读 · 0 评论 -
如何用Java排序
在阅读开源Java项目源代码过程中,我发现Java开发者经常使用两种开发方式排序:一种是使用Collections和Arrays类的sort方法,另一种是使用可排序的数据结构。使用sort()方法原创 2014-04-27 10:12:46 · 841 阅读 · 0 评论