本站首页    管理页面    写新日志    退出

[编程]java nio的典型例子
seanno13 发表于 2009/1/8 13:13:12

主要是OP_WRITE和Reactor pattern的用法。
import java.io.IOException;
import java.nio.channels.SelectionKey; /**
 * Created by IntelliJ IDEA.
 * User: hongruixing
 * Date: 2008-3-31
 * Time: 14:49:31
 * To change this template use File | Settings | File Templates.
 */
public interface Reactor {
    /**
     * React to an NIO event.
     *
     * @para

阅读全文(1099) | 回复(0) | 编辑 | 精华 | 删除

[编程]成为编程高手的八大奥秘
seanno13 发表于 2009/1/8 13:12:23

  世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。  1、扎实的基础    数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。 
2、丰富的想像力    不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。 
3、最简单的是最好的    这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E

阅读全文(960) | 回复(0) | 编辑 | 精华 | 删除

[生活]社会生存的75条忠告
seanno13 发表于 2009/1/8 13:11:25

01犯了错误就该诚实地认错——狡辩、诿过只会害了自己。 02.朋友之间要保持距离——这样的友谊才能长久。 03.钱追人,人追健康——有了健康,还怕挣不到钱么? 04.别轻易转行——转行的风险很高,最好不要轻率为之。 05.适度地抬高身价——在就业市场中,人也是一种商品。 06.把敬业变成习惯——从长期看是为了自己。 07.运用累积法壮大资产——不求快,不求多,不中断。 08.忍一时,争千秋形势比人强时,必须忍。 09.与其你死我活,不如你活我也活——这就是双赢,是良性竞争。 10.以“播种”的心态经营人际关系——种子播得越早越坚韧。 11.做事切勿率性而为——率性而为只会害了自己。 12.遇到魔鬼型的主管时——接受他的磨练可让你的性格越来越坚韧。 13.不要当众和主管吵架——那会让你无路可走,只有走人。 14.向不同行业的人学习新知识——记住,要用请教的态度。 <
阅读全文(1203) | 回复(0) | 编辑 | 精华 | 删除

[编程]我的编码手册
seanno13 发表于 2009/1/8 13:10:34

看到很多牛人,说别人的代码风格如何如何,我也打算说两句。    1 代码缩进
     说到这个问题,缩进使用tab还是空格,是没有事情可干。早在visual studuio6时代,也就是9年前,vc6就提供了代码格式化功能,java的主流IDE都有代码格式化功能,你觉得他的代码不好,有抱怨的时间,早就format好了,一个程序员连自己的IDE能干什末都不知道,恐怕说不过去了。如果你觉得大家代码不统一,都安装checkStyle,这样代码规范基本一致。
     下面说出java主流IDE提供的功能(重构部分除外),支持未声明类的import,生成构造函数,生成get/set方法,代码块的注释和解除注释,不用你一行一行的写“//”。不过你要是python程序员就麻烦一些,python的缩进是代码的一部分。
   2 变量的命名
     vc程序员最好使用匈牙利命名法,java程
阅读全文(1092) | 回复(0) | 编辑 | 精华 | 删除

[编程]VC快捷键大全
seanno13 发表于 2009/1/8 13:09:08

  F1: 帮助

Ctrl+O  :Open
Ctrl+P  :Print
Ctrl+N  :New
Ctrl+Shift+F2 :清除所有书签
F2  :上一个书签
Shift+F2 :上一个书签
Alt+F2  :编辑书签
Ctrl+F2 :添加/删除一个书签
F12  :Goto definition
Shift+F12 :Goto reference
Ctrl+'Num+' :Displays the next symbol definition or reference
Ctrl+'Num-' :Displays the previous symbol definition or reference
Ctrl+J/K :寻找上一个/下一个预编译条件
Ctrl+Shift+J/K :寻找上一个/下一个
阅读全文(1027) | 回复(0) | 编辑 | 精华 | 删除

[编程]Java字符编码转换
seanno13 发表于 2009/1/8 13:08:17

 JVM
JVM启动后,JVM会设置一些系统属性以表明JVM的缺省区域。
user.language,user.region,file.encoding等。 可以使用System.getProperties()详细查看所有的系统属性。
如在英文操作系统(如UNIX)下,可以使用如下属性定义强制指定JVM为中文环境 -Dclient.encoding.override=GBK -Dfile.encoding=GBK -Duser.language=zh -Duser.region=CN
.java-->.class编译
说明:一般javac根据当前os区域设置,自动决定源文件的编码.可以通过-encoding强制指定.
错误可能:
1 gbk编码源文件在英文环境下编译,javac不能正确转换.曾见于java/jsp在英文unix下. 检测方法:写\u4e00格式的汉字
阅读全文(954) | 回复(0) | 编辑 | 精华 | 删除

[编程]PAP和CHAP协议概述
seanno13 发表于 2009/1/8 12:46:01

和CHAP协议是目前的在PPP(MODEM或ADSL拨号)中普遍使用的认证协议,CHAP在RFC1994中定义,是一种挑战响应式协议,双方共享的口令信息不用在通信中传输;PAP在RFC1334中定义,是一种简单的明文用户名/口令认证方式。

2. PAP

PAP全称为:Password Authentication Protocol(口令认证协议),是PPP中的基本认证协议。PAP就是普通的口令认证,要求将密钥信息在通信信道中明文传输,因此容易被sniffer监听而泄漏。

PAP协商选项格式:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Authentication-Protocol |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
阅读全文(1003) | 回复(0) | 编辑 | 精华 | 删除

[编程]IPSec/GRE与PPTP的比较
seanno13 发表于 2009/1/8 12:44:13

PPTP PPTP(PointtoPoint Tunneling Protocol)是点对点的协议,基于拨号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。 而L2TP(Layer 2 Tunneling Protocol)是 L2FP(Layer 2 Forwarding Protocol)和PPTP的结合,依赖PPP协议建立拨号连接,加密的方法也类似于PPTP,但这是一个两层的协议,可以支持非IP协议数据包的传输,如ATM 或X.25,因此也可以说L2TP是PPTP在实际应用环境中的推广。
无论是PPTP,还是L2TP,它们对现代安全需求的支持都不够完善,应用范围也不够广泛。事实上,缺乏PKI技术所支持的数字证书,VPN 也就缺少了最重要的安全特性。简单地说,数字证书可以被认为是用户的护照,使得他(她)有权使用VPN,证书还为用户的活动提供了审计机制。缺乏数字证书的VPN对认证、完整性和不可否认性的支持相对而言要差很多。 IPSec Ipsec是新的为支持
阅读全文(1139) | 回复(0) | 编辑 | 精华 | 删除

[linux]Qemu的使用
seanno13 发表于 2009/1/8 12:43:32

 使用bochs模拟器实在是太慢了,慢的都受不了。没有办法,决定使用Qemu,一个开源的虚拟机,小巧而快速,Qemu的最近版本是0.8.2。
1。安装前先创建硬盘文件,使用Qemu的命令,qemu-img create ubuntu.img 2G
2。创建完毕后,开始安装,这里使用iso安装文件,运行命令
qemu  -L . -hda ubuntu.img -cdrom hiweed-debian-server_0.3b2_i386.iso -boot d -m 256 -localtime -net nic,macaddr=52:54:00:12:34:01,model=rtl8139 -net user -soundhw sb16,es1370,adlib
下面详细说明各个参数的作用
-L .制定bios文件在本目录下,这个选项好像以前版本没有
-hda ubuntu.img  制定硬盘文件
-cdrom hiweed-debian-server_0.3b2_i386.iso 制定安装的iso文件
-bo
阅读全文(2626) | 回复(0) | 编辑 | 精华 | 删除

[linux]给dlx linux添加网卡
seanno13 发表于 2009/1/8 12:43:05

最近课余时间研究linux网络内核,找个linux实践一下,先找个虚拟机,Vmware很不错,但是bochs是一个模拟器,他完全模拟X86的硬件,Vmware基本是虚拟自己的设备,Virtual PC处于两者之间,一部分模拟,一部分虚拟,这也就是bochs比Vmware和Virtual PC慢很多的原因。
另外的一个虚拟机也不错,QEMU,他的速度比bochs要快很多,是bochs的最好替代。再找个linux操作系统,dlx linux就是首选。但是学习网络编程,没有网卡如何做呢?bochs可以模拟ne2000网卡的,配置很简单, ne2k: ioaddr=0x300, irq=9, mac=00:c4:3B:00:C3:00, ethmod=win32, ethdev=NE2000,
 I/O address, IRQ number, or MAC address不用改变,ethmod 是host的操作系统,
阅读全文(6739) | 回复(0) | 编辑 | 精华 | 删除

« 1 2 3 4 5 6 7 8 9 10 › »
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144924461 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号