自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 java网络IO的三种实现方式

[toc]#BIO---Blocking IO- 每个socket一个线程,读写时线程处于阻塞状态。优点:实现简单缺点:无法满足高并发,高接入的需求- 不使用线程池的BIO模型,除了无法满足高并发需求外,由于需要为每个请求创建一个线程,还可能因为接入大量不活跃连接而耗尽服务器资源。- 使用线程池的BIO模型,虽然控制了线程数量,但由于其本质上读写仍是阻塞的,仍无法满

2017-09-27 11:03:39 3938

原创 java中的四种引用

快速理解java的四种引用1 强引用快捷键Markdown及扩展表格定义列表代码块脚注目录数学公式UML 图离线写博客浏览器兼容1. 快速理解java的四种引用1.1 强引用强引用就是通常用到的引用,它是如此之强,以至于JVM宁可抛出OOM异常(内存溢出)也不愿回收它们。Object obj = new Obeject();本Markdo

2017-09-16 16:04:39 245

原创 正则表达式(五)------ 匹配模式

1.不区分大小写模式>>> re.search(r"(?i)the","THe")!=None #指定方式一,括号并不影响捕获分组的编号True>>> re.compile(r"the",re.I).search("THe")!=None #python中也可以这样指定True>>> re.search(r"the","THe",re.I)!=NoneTrue

2013-04-25 13:11:48 652

转载 python调用Shell脚本:os.system(cmd)或os.popen(cmd)()【转】

python调用Shell脚本:os.system(cmd)或os.popen(cmd)()【转】python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。现假定有一个shell脚本test.sh:#!/bin/bash1. echo

2013-04-24 09:58:23 2075

原创 正则表达式(四)------ 断言

断言匹配的不是字符,而是位置。1.单词边界   \b ---- 表示一边是单词字符,另一边不是单词字符>>> import re>>> print(re.findall(r"\bword\b","there are many words,but no word"))#仅匹配一处['word']>>> print(re.findall(r"word","there are

2013-04-22 21:17:23 582

原创 python学习笔记(一)------ core types

1.Python常用build-in类型:Object type  Exampleliterals/creationNumbers  123Strings  'spam',"guido's", b'a\x01c'Lists  [1, [2, 'three'], 4]Dictionaries  {'food':'spam', 'taste': 'yum'}Tuples (1,

2013-04-22 13:18:34 727 1

原创 正则表达式基础(三)------括号

括号的两个作用:1.表示多选结构的范围>>> re.search(r"^ab|cd$","abc")!=None #表示以ab开头或以cd结尾的字符串True>>> re.search(r"^(ab|cd)$","abc")!=None #ab或cdFalse2.引用分组>>> re.search(r"([a-z])\1","dd")!=None #匹配连续两

2013-04-21 10:51:54 505

原创 正则表达式基础(二)——量词

1.常用量词记法\d{4}   匹配一个4位数字\d{4,6} 匹配一个4-6位的数字\d(0-6} 匹配一个0-6位的数字\d{4,} 匹配一个至少为4位的数字\d*相当于\d{0,}\d+相当于\d{1,}\d?相当于\d{0,1} 2.贪婪量词和懒惰量词贪婪量词遇到可匹配可不匹配的情况时,“先匹配再说”,如果尝试失败,再不匹配懒惰量词遇到可匹配可不

2013-04-21 10:32:43 486

原创 正则表达式基础(一)------字符组

1.排除型字符组      1.排除型字符组指的是该位置不能出现某些字符,但是它所指示的位置不能不出现任何字符      2. "^"只有紧跟在"["之后才被认为是转义字符。 2.数组简记法    \w  相当于[0-9a-zA-Z_]注意还能匹配“_”    \s 相当于[ \t\r\n\f\v]   注意第一个字符是空格    \d   [0-9]    对应的

2013-04-21 10:16:56 556

原创 一个简单的去重排序方法

>>> a=["a","abc","def","adc","abc","ab"]>>> b=set()>>> for each in a: b.add(each) >>> b{'adc', 'def', 'ab', 'a', 'abc'}>>> a=sorted(list(b))>>> a['a', 'ab', 'abc', 'adc', 'def']

2013-04-21 09:47:03 758

原创 python正则表达式常用方法

1.re.search返回包含字符串中能匹配正则表达式的第一个子串的一个对象,如果不能匹配则返回None>>> a=re.search(r"[0-9]","12")>>> a>>> a.group()'1'2.re.match和re.search类似,只是它相当与自动在正则表达式前加了一个"^">>> re.match(r"[0-9]","12")!=NoneTr

2013-04-17 21:44:10 535

原创 代码整洁之道------ 对象和数据结构

1.隐藏实现隐藏实现的目的,个人理解,就是为了两个字------省心。编码者不必担心内部数据结构的暴露,使用者也不必费心去了解内部的实现,两者之间的交互只通过接口进行。好比我按照使用说明对ATM进行操作就可以存钱,不需要在银行有熟人。隐藏实现并不是简单地把变量声明为私有,然后再给他们加上getter和setter-------这比直接暴露实现没有多大进步。隐藏实现,并不是简单地为成员变

2013-03-04 20:52:19 502

原创 在查找有序二维数组中查找元素

解题思路:代码实现:public class SortedMatrixElementFinder { public static boolean find(int element, int[][] matrix) { SortedMatrix theMatrix = new SortedMatrix(matrix); int topRightElem

2013-02-26 13:41:07 267

原创 代码整洁之道------函数

想要函数清晰,易于理解,要坚持以下原则:首先,一个函数只做一件事,更准确的说,只做在一个抽象层次上的事.让读者可以自上而下的读,如同在读故事一样.其次,保持函数短小,没有太多的嵌套层次.第三,使用描述性的名字,让读者即使望文生义,也能大致推断出函数要做的事.而且,不要在函数里做未在函数名中体现的事.第四,函数的参数最多不要多于三个,如果函数的输入参数多于三个,可以考虑为其中的一些参

2013-02-22 12:55:33 284

原创 代码整洁之道------命名

1.名副其实,言之有物(1)避免无意义的命名,如用单个字母作为变量名.(2)避免魔法数字,或者通过下标进行的判断,如if(x[0] == 4),用常量来代替这些数字2.避免误导(1)不要使用类似accountList这样的变量名,除非它真的是一个list(2)两个较长且区别很小的变量名极易误导读者.(3)不要单独使用O,l来命名变量,能分辨出前面打的是O还是0,是l还是1吗

2013-02-21 20:01:08 277

原创 effective java笔记------重载equals方法

什么时候重载equals方法?我们先来看一看equals()方法在Object类中的实现:public boolean equals(Object obj) { return (this == obj); } 在Object类中,equals()方法用于判断两个引用是否指向同一个对象,因此,如果你的目的正是如此,就大可不必费力重载这个方法了.这种方法的实现使用与代表活动实

2013-02-16 21:02:37 369

原创 为什么要保持代码整洁------初读<<代码整洁之道>>

第一次拜读Bob大叔的>,虽然目前只读完了前言,但是已经让人有一种心潮澎湃之感了~~~,忍不住记录如下:为什么我们要保持代码整洁,这个问题似乎很容易回答:可以降低维护成本,但这又是为什么?从逻辑的角度看,基于两个基本前提:第一,破窗原理.这是一个已得到广泛认同的心理学原理,大概是说如果一栋建筑的一扇窗户破了,没有及时修补,那么久而久之,它的所有窗户都会被人打破.推广到编码范畴------糟

2013-02-07 11:09:25 322

原创 Effective java笔记

第一条:考虑用静态工厂方法代替构造函数优点一: 静态方法可以有具体的名字,使代码更易读,尤其是有多个构造函数时.优点二: 可以避免创建不必要的重复对象.例如java中的Boolean类的实现:package java.lang;public final class Boolean implements java.io.Serializable,

2013-01-05 12:41:49 327

转载 Java几款性能分析工具的对比

在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下的性能问题。理论上,增加对应用程序的负载会使性能有所下降,但是我认为性能下降的比率远远高于负载的增加,同时我也发现,性能可以通过改变应用程序的逻辑来提升。为了更详细地了解这一点,我们需要做一些性能分析,这时,我们自然就要用到一些性能分析工具。Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?

2012-12-28 14:09:15 360

转载 wince6.0编译环境一二三(转摘)

<br /><br />在WinCE5.0中,在"Build OS”菜单中,我们会看到不同的编译选项:<br />"Sysgen","Build and Sysgen"和"Build and Sysgen current BSP"<br />Sysgen:不用多说,当你在"Catalog"中添加或删除了新的item的时候,就用这个吧。<br />Build and Sysgen:当你更新了/public目录下的源代码的时候,你就需要用这个了。一般比如在打patch以后,可能就需要进行Build and

2010-12-30 22:06:00 317

转载 Windows CE 6.0 启动过程分析(转摘)

在Windows CE 6.0中,内核(Kenerl)和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分,其中启动代码(startup)和 OAL层的实现部分不再与内核链接生成NK.exe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OAL层的实现部分编译成 oal.exe,而与内核相关且独立于硬件的OAL层代码包含在kernel.dll中;内核无关传输层(KITL)的支持代码从OAL层分离出来编译成 kitl.dll。 从表面上看,好像只是代码重新

2010-12-30 22:04:00 310

转载 NOR FLASH NAND FLASH 区别 http://www.laogu.com/wz_687.htm

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。  相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情

2010-12-14 14:58:00 449

转载 VC命名规则

<br /><br />转贴自http://hi.baidu.com/fatbsd/blog/item/79bdcf18add5080334fa41f8.htmlVC命名规则2008-03-24 13:50<br />一、程序风格:     <br />    1、严格采用阶梯层次组织程序代码:     <br />    各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如:     <br />    2、提示信息字符串的位置 

2010-11-11 14:51:00 302

原创 孙鑫第13课笔记 文档与串行化

1.CArchive类CArchive类没有基类,它的作用类似于一个二进制流,用于文件的输入输出;它也重载了操作符">",用法和cout和cin一样,但CArchive不仅可以输出基本类型的数据,还可以输出CObject类型的对象(包括从CObject中派生的类型)CArchive类使用实例:(结合文件对话框的使用)void CGraphicView::OnFileRead() { // TODO: Add your command handler code here       CFileDialog f

2010-11-09 21:34:00 829 1

原创 冈萨雷斯数字图像处理1

第一章 绪论 1.界定图像处理的范围图像处理——图像分析——计算机视觉低级处理:输入输出都是图像,如去噪、锐化、增强等,这一部分完全属于图像处理;中级处理:输入为图像,输出是该图像的一些特征,如边缘提取,分割等,其目的是使图像更适合计算机处理及识别。——属于图像处理与图像分析的重叠部分。高级处理:对被识别物体的总体理解——完全属于图像分析2.数字图像处理的基本步骤: 第二章 数字图像基础 2.1视觉感知要素人眼的感光细胞分为杆状体和锥状体,其中锥状体更灵敏且能感觉到彩色,主要分布在中央凹上 与整个可视范

2010-11-08 21:28:00 3381

原创 孙鑫第12课笔记——文件和注册表的操作

孙鑫第12课笔记——文件和注册表的操作<br />1.MFC中用CFile来完成对文件的操作<br />CFile类:派生于CObject类<br />构造函数:<br />CFile();<br />CFile(inthFile);//该参数为一个已打开文件的句柄<br />CFile(LPCTSTRlpszFileName,UINTnOpenFlags);//常用<br />lpszFileName:文件名或路径<br />nOpenFlags:常用的打开方式CFile::modeCreate   不存

2010-11-08 15:48:00 652

OpenCVreferencemanual

开源的计算机视觉库 OPENCV参考手册 英文版

2010-11-02

空空如也

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

TA关注的人

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