自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

in_han 的专栏

总结,学习...

  • 博客(12)
  • 资源 (7)
  • 收藏
  • 关注

原创 java 并发编程

1. Java并发编程中,用到了一些专门为并发编程准备的 Annotation。主要包括三类:a、类 Annotation(注解)就像名字一样,这些注解是针对类的。主有要以下三个:@Immutable 表示,类是不可变的,包含了 @ThreadSafe 的意思。@ThreadSafe@NotThreadSafeb、域 Annotation(注解)域注解是对类里面成员

2013-08-27 16:32:13 525

转载 java 并发编程实践( java concurrency in practice )

1, 保证线程安全的三种方法 :a, 不要跨线程访问共享变量b, 使共享变量是 final类型的c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的 , 比在后期重新修复它 ,更容易 .3, 编写多线程程序 , 首先保证它是正确的 , 其次再考虑性能 .4, 无状态或只读对象永远是线程安全的 .5, 不要将一个共享变量裸露在多线程环境下 (无同步或不可变性保

2013-08-26 09:54:04 557

原创 排列组合 A(n, m) 字典序

针对数字序列[1, 2, 3, 4, 5], 常见的排列组合情况有:1. 求n个数的全排列,要求各个排列升序.[1,2,3,4,5] ... [5,4,3,2,1]2. 求A(m, n),结果为升序.   [1,2,3] .... [5,4,3]3. 求组合C(m, n), 结果为升序.[1,2,3] ... [3,4,5]4. 求{1, 2, 3, 4, 5, 6}的所有子集.

2013-08-24 00:40:56 1507

原创 Python 简明教程

python 手册1. #!/usr/bin/python     2. 常量   数:2, 3.2, -1+2j   字符串:单引号、双引号是完全相同的,三引号指示多行字符串。转义字符用\。     自然字符串(即不转义)使用 r"string content...\n\r\'"。     Unicode字符串,u"unicode string",表明这个文件的格式是

2013-08-21 19:11:19 444

转载 Caps Lock 与 Esc 按键互换

Caps Lock键的位置,左手小指轻松可及。其功能只是切换大小写,纯大写毕竟用得少,偶尔大写只需Shift加字母,更快捷(不包含每次按Shift键都使用大拇指的那类人)。便利的位置与鸡肋的功能,强烈的冲突下只有一个结果——换之而后快。换哪个键并不需要太多的考虑,因为使用VIM、Emacs,Esc键用得多,这个键又地处北极偏远地区,交通极不方便,与Caps Lock互换,顺理成章。 

2013-08-21 12:46:50 5521

转载 字符编码 ansi, unicode, utf-8, utf-16

Unicode(Universal Multiple-Octet Coded Character Set):目前最流行和最有前途的字符编码规范,因为它解决了不同语言编码的冲突。 Uicode由来:最初的字符编码ascii(8bit,最高位为0)只能表示128个字符,表示英文、数字和一些符号是没问题。但是世界不止一种语言,即使用上了最高为1的扩展ascii码,也只有256个字符。

2013-08-19 21:22:40 461

原创 vi ---> emacs

VI:虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同 ,但是由于其运行于字符界面,并可用于所有unix/linux环境,目前仍被经常使用。1.命令模式:命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi

2013-08-19 20:31:49 594

转载 多线程安全

项目中需要在多线程环境下,输出日志到标准输出,以下是实现过程。首先,我们需要一个锁类,能够自动初始化,并且降低耦合。/* * locker.h * * Created on: Apr 14, 2012 * Author: joan */#ifndef LOCKER_H_#define LOCKER_H_#include "../OPTION.h"clas

2013-08-08 20:51:42 558

转载 samba Ubuntu

专注于开源技术的研究与应用Ubuntu下配置samba实现文件夹共享一. samba的安装:sudo apt-get insall sambasudo apt-get install smbfs二. 创建共享目录:mkdir /home/phinecos/sharesodu chmod 777 /home/phinecos/share

2013-08-06 18:51:39 446

原创 Ubuntu nginx

nginx在ubuntu下会被安装成service, 所以相应的起止办法是:$sudo service nginx start$sudo service nginx stop另外,配置文件在 $sudo vi /etc/nginx/nginx.confnginx 重新加载配置文件:1) nginx -t;  nginx -s reload2) nginx -t;  kill

2013-08-06 00:21:19 605

转载 7个示例科普CPU缓存

(感谢网友 @我的上铺叫路遥 翻译投稿)CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门。正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文《漫游处理器缓存效应》,文章不仅仅用7个最简单的源码示例就将CPU cache的原理娓娓道来,还附加图表量化分析做数学上的佐证

2013-08-04 21:34:19 763

转载 OGNL 与 Struts 2

OGNL表达式   OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对Java对象图进行导航。  OGNL表达式的基本单位是"导航链",一般导航链由如下几个部分组成:  1. 属性名称(property)   2. 方法调用(method invoke

2013-08-01 21:21:27 474

hadoop 权威指南

hadoop 权威指南 pdf

2013-07-19

算法艺术与信息学竞赛.rar

算法艺术与信息学竞赛.rar算法艺术与信息学竞赛.rar算法艺术与信息学竞赛.rar算法艺术与信息学竞赛.rar算法艺术与信息学竞赛.rar

2010-06-14

算法导论 英文版 第二版

算法导论 算法导论 算法导论 算法导论 算法导论 算法导论算法导论算法导论算法导论

2010-06-14

C++ 编程思想.rar

C++ 编程思想 java 编程思想 C++ 原理,技术,实现

2010-06-08

win32 汇编教程

WIN32 程序运行在保护模式下的,保护模式的历史可以追溯到 80286。而今 80286 已成为了历史。所以我们将只把精力集中于 80386 及后续的X86 系列 CPU。Windows 把每一个 Win32 应用程序放到分开的虚拟地址空间中去运行,也就是说每一个应用程序都拥有其相互独立的 4GB 地址空间,当然这倒不是说它们都拥有 4GB 的物理地址空间,而只是说能够在 4GB 的范围内寻址。操作系统将会在应用程序运行时完成 4GB 的虚拟地址和物理内存地址间的转换。这就要求编写应用程序时必须格守 Windows 的规范,否则极易引起内存的保护模式错误。而过去的 Win16 内存模式下,所有的应用程序都运行于同一个 4GB 地址空间,它们可以彼此"看"到别的程序的内容,这极易导致一个应用程序破坏另一个应用程序甚至是操作系统的数据或代码。 和 16 位 Windows 下的把代码分成 DATA,CODE 等段的内存模式不同,WIN32 只有一种内存模式,即 FLAT 模式,意思是"平坦"的内存模式,再没有 64K 的段大小限制,所有的 WIN32 的应用程序运行在一个连续、平坦、巨大的 4GB 的空间中。这同时也意味着您无须和段寄存器打交道,您可以用任意的段寄存器寻址任意的地址空间,这对于程序员来说是非常方便的,这也使得用32位汇编语言和用C语言一样方便。 在Win32下编程,有许多重要的规则需要遵守。有一条很重要的是:Windows 在内部频繁使用 ESI,EDI,EBP,EBX 寄存器,而且并不去检测这些寄存器的值是否被更改,这样当您要使用这些寄存器时必须先保存它们的值,待用完后再恢复它们,一个最显著的应用例子就是 Windows 的 CallBack 函数中。

2010-06-08

effectiveC++.chm

目录回到顶部↑致谢(Acknowledgments. 中文版略) 导读(Introduction) 001 基础议题(Basics) 009 条款1:仔细区别 pointers 和 references 009 Distinguish between pointers and references 条款2:最好使用 C++ 转型操作符 012 Prefer C++-style casts 条款3:绝对不要以polymorphically(多态)方式来处理数组 016 Never treat arrays polymorphically 条款4:非必要不提供 default constructor 019 Avoid gratuitous default constructors 操作符(Operators) 024 条款5:对定制的型别转换函数保持警觉 024 Be wary of user-defined conversion functions 条款6:区别 increment/decrement 操作符的 前置(prefix)和后置(postfix)型式 031 Distinguish between prefix and postfix forms of increment and decrement operators 条款7:千万不要重载 &&,

2010-06-08

空空如也

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

TA关注的人

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