博文

JAVA基础知识(1)(2007-07-03 22:52:00)

摘要:JAVA基础知识(1) 
1、面向对象的特征有哪些方面   
①抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
②继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
③封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
④ 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题......

阅读全文(2047) | 评论:0

2007软件设计师资格考试所感(转)(2007-07-03 22:50:00)

摘要:今年我参加了软件设计师资格考试,其间的心态是:满怀信心,放弃,加把劲,成功
最后到失望。我上午考了60,下午考了71,虽然分数线还没出来,但估计软考办不敢
把分数提高到60,不然不被砖头砸死也会被唾沫淹死。因此,我应该过了,不过过了
却有点失望。 简单说下,我四月分报名,有两个月的时间备考,因此满怀信心;因为基础不好,软
件设计师的考试考得又很广,因此,学了段时间有点想放弃,其实我应该算放弃了;
最后剩下两个星期因为心疼那点钱,决定背水一战,于是加了把劲;最后看到成绩
应该算成功了;失望的是今年的软件设计师考试含金量太低了。 要很好的讲述我的软考经历,我觉得有必要介绍一下我自己,以及我的大学生活。 我是一所普通本科院校的学生,从小到大我一直是一个遵纪守法的良好学生,大学里
因为涉猎了一些很“前卫”的思想,当然这些“前卫”只是在我这个来自于偏远山区
的良好市民的眼里仍“新潮”,网络上早就洪水泛滥般充斥着各种以前我没听过的观
点,比如有人对中国的教育感到怀疑,认为它扼杀了学生的创造力想象力动手能力,
培养出来的只是应试高手,做题机器;还有的人认为凭什么我们要那么重视英文,将
四六级和学位证挂钩,批评那些发大把时间学英语背单词,而不重视中国人自己的文
化中国人自己的语言的人 等等。于是我开始思考过去,现在,将来。得到的结论是我
必须学一点实用的东西而不是一直捧着那些教科书,为期末考试,为奖学金而奔波。其
间的得失只有自己心里明白。 正如前面所说的,我不再是期末考试成绩和奖学金的追求者,于是在大一拿了两次三
等奖后,一直没有拿过了。大二开始我有了台二手电脑,CPU 1G,内存 256M ,显卡 32M
完反恐的时候可以看见子弹的发射路径,暴力摩托可能是因为显卡驱动的原因一完就蓝
屏,唯一的一个游戏是微软的“帝国时代”我们是完“帝国二--征服者”,现在寝室里
完帝国暂时我是老大,呵呵我们寝室就五个人,有时也连机两两对战交流感情。虽然我
这里电脑一出台接着就是一大堆游戏,但我不是游戏迷,相反我很少完游戏,因为我知
道游戏完多了就是浪费青春。我喜欢编程,从学C语言开始我就一直爱好编程,看着那些
简单的代码控制这个曾经对我很神秘的机器,心理就说不出的......

阅读全文(4117) | 评论:4

编程书籍在线阅读网(2007-06-30 19:49:00)

摘要: 一些很不错的书籍,想看却没钱足够的钱到书店去买的朋友,值得去看看,详细地址:http://www.online-book.cn/ ,以下是部分书籍
重磅炸弹:150本编程书籍在线阅读
不顶MJJ VB书籍 VB图像处理基础讲座
http://www.online-book.cn/html/15.htm 基于VB的COM编程入门教程
http://www.online-book.cn/html/16.htm 开天辟地学电脑—编程入门VB篇
http://www.online-book.cn/html/17.htm VisualBasic软件项目开发实例
http://www.online-book.cn/html/18.htm Visual Basic菜鸟入门经典实例
http://www.online-book.cn/html/19.htm Visual Basic界面设计大观
http://www.online-book.cn/html/20.htm Windwos API全攻略
http://www.online-book.cn/html/21.htm Visual Basic 数据库开发实战录
http://www.online-book.cn/html/22.htm Visual Basic网络应用实例精选
http://www.online-book.cn/html/23.htm VC书籍 WinSock网络编程实用宝典
http://www.online-book.cn/html/24.htm Visual C++图像处理编程讲座
http://www.online-book.cn/html/25.htm Visual C++高级开发范例解析
http://www.online-book.cn/html/26.htm 轻松玩转MFC文档视图架构编程
http://www.online-book.cn/html/27.htm 深入浅出Visual C++动态链接库(Dll)编程
http://www.online-book.cn/html/28.htm Visual C++数......

阅读全文(3359) | 评论:0

高级程序员的几点建议(2007-06-10 11:31:00)

摘要:我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。 几个误区   初学者对C#风潮的追赶其实也只是学习过程中经常遇到的几个误区之一。我将用一些实际的例子来说明这些现象,你可以按部就班的看看自己是不是属于其中的一种或者几种: 认为计算机技术等于编程技术: 有些人即使没有这个想法,在潜意识中也有这样的冲动。让我奇怪的是,许多信息学院的学生也有这样的念头。认为计算机专业就是编程专业,与编程无关的,或者不太相关的课程他统统都不管,极端的学生只要书上没带“编程”两个字他就不看。 其实编程只是计算机技术应用过程中一种复杂性最低的劳动,这就是为什么IT业最底层的人是程序员(CODER)。计算机技术包括了多媒体,计算机网络,人工智能,模式识别,管理信息系统等等这些方面。编程工作只是在这些具体技术在理论研究或者工程实践的过程中表达算法的过程。编程的人不一定对计算机技术的了解就一定很高。而一个有趣的现象是,不少大师级的计算机技术研究者是不懂编程的。网上的炒作和现实中良好的工作待遇把编程这种劳动神秘化了。其实每一个程序员心里都明白,自己这些东西,学的时候并不比其它专业难,所以自然也不会高档到哪里去。   咬文嚼字的孔已己作风: 我见过一本女生的《计算机网络原理》教材,这个女生像小学生一样在书上划满了横杠杠,笔记做得满满的,打印出来一定比教材还厚。我不明白的是,像计算机网络原理这样的课程有必要做笔记?我们的应试教育的确害了不少学生,在上《原理》这一类课程的时候许多学生像学《马列原理》一样逐字背诵记忆。这乃是我见过的最愚蠢的行为。所谓《原理》,即是需要掌握它为什么这样做,学习why,而不是how(怎样......

阅读全文(2421) | 评论:1

学编程的人不能不看的好文章 (2007-06-10 11:30:00)

摘要:做为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在学习编程的一些情况我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分,1.是我面试的具体经过2.是由面试想到的3.现今我应该做的。当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!我的EMAIL:wutao8@263.net1.面试经过  大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的!  21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的:  (由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换)  1)写一个函数计算当参数为n(n很大)时的值1-2+3-4+5-6+7......+n  哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来!  于是很快我给出我的解法:longfn(longn)
{
longtemp=0;
inti,flag=1;
if(n<=0)
{
printf("error:nmust>0);
exit(1);
}
for(i=1;i<=n;i++)
{
temp=temp+flag*i;
flag=(-1)*flag;
}
returntemp;
}  搞定!当我用期待的目光看着面试官的时候,他微笑着跟我说,执行结果肯定是没有问题!但当n很......

阅读全文(1990) | 评论:1

如何提高编程水平(2007-06-10 11:28:00)

摘要:摘要     1. 扎实的基础
  2. 丰富的想象力
  3. 最简单的是最好的
  4. 不钻牛角尖
  5. 对答案的渴求
  6. 多与别人交流
  7. 良好的编程风格
  8. 韧性和毅力
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。 1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。 2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。 3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。 4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。 5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。 6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花......

阅读全文(1922) | 评论:1

C语言试题及答案(2007-06-10 11:25:00)

摘要: 一、改错题
1.随机输入10个数,选出其中最小数。程序如下:
main()
{int i,min,a[10];
printf("input 10 numbers:\n");
for(i=0;i<=10;i++)                       /*$ERROR1$*/for(i=0;i<10;i++) or for(i=0;i<=9;i++)
scanf("%d",a[i]);                          /*$ERROR2$*/ scanf("%d",&a[i]);
min=a[0];
for(i=1;i<10;i++)
if(a[i]<min) min=a[i];
printf("minnum=%d\n",min);
}
2.不用strcat函数,将键盘输入的两个字符串连接起来形成一个新串。
main()
{char s1[50],s2[20];
int I,j=0;
printf("Enter string No.1:\n");  gets(s1);
printf("Enter string No.2:\n");
scanf("%s",&s2);                              &......

阅读全文(5062) | 评论:0

俄罗斯独特的职业黑客文化(2007-05-13 10:26:00)

摘要:俄罗斯独特的职业黑客文化                  俄罗斯黑客在国际上拥有相当高的“声誉”,他们技术高、“口碑好”,几乎已经成为许多同黑客打交道的专业人士的共识。因此俄罗斯黑客也成为许多国家情报机构的“抢手货”。

  国际网络安全公司资深分析家肯·杜赫姆在接受采访时说道:“这些俄罗斯人的黑客技巧简直到了难以置信的地步。他们都是相当出色的程序员,是真正懂得网络的人。他们知道如何在网络中进进出出,而又不留下任何蛛丝马迹。”他们曾多次成功入侵五角大楼的电脑系统、破解了微软的源代码,入侵北约网站,从西方国家的银行偷窃上百万的美元。

  俄罗斯人弗拉基米尔·列文于1995年从花旗银行的多个账户中累计盗取370万美元。而他的作案工具只是一台个人电脑和拨号上网的电话线而已。英国技术安全咨询公司的安全专家弗兰克·文登对俄罗斯的黑客评价道:“俄罗斯的黑客可以用相当有限的设备干出令人吃惊的事情。他们相当聪明,总是将自己的行迹隐藏得很好。而且,俄罗斯的黑客们都有很棒的编程技巧。他们不像美国或其他地方的所谓黑客,只是从网上下载一个程序,但并不知道自己在干些什么。这些俄罗斯人都清楚的知道自己要干什么。”

  俄罗斯黑客的高超技能与俄罗斯的独特黑客文化是密不可分的。在全世界,黑客已经形成了一种独特的地下文化。与世界其他国家相比,俄罗斯的计算机教育相当出色,俄罗斯的黑客也更具有职业色彩。在俄罗斯,黑客得到了社会更多的肯定。俄罗斯有成千上万的电脑天才受雇于美国以及很多欧洲国家的电脑公司,而俄罗斯的技术学院,特别是圣彼得堡的科技学院研制生产世界第一流的软件。

  同其他国家的黑客不同,俄罗斯的黑客攻击电脑网络的动机大都是因为“囊中羞涩”。

  雷伊夫斯基的经历在俄罗斯非常典型。雷伊夫斯基找到了一个利用自己掌握的黑客技术合法赚钱的方法:他在莫斯科的阿拉丁知识系统公司上班,主要职责是为公司客户测试电脑的安全性能。他在接受采访时说道:“所有的黑客都有一种想证明自己手段高明的冲动,但是俄罗斯黑客更富于职业色彩。这就是他们的工作,因为他们找不到合适的工作。 俄罗斯黑客在国......

阅读全文(1713) | 评论:0

名人程序人生(2007-05-13 10:26:00)

摘要:              名人程序人生



创业者和经理人之外,中关村或者说中国计算机业界还活跃着另一类人,他们过着另外一种人生——程序人生。

程序是这些人生活的全部重心,他们有天分,爱编程,能吃苦,甘于寂寞。他们当中绝大多数不被人所知,像WPS求伯君、KV300王江民、CCDOS严援朝、五笔字型王永民、2.13吴晓军、四通利方王志东、CCED朱崇君、UCDOS鲍岳桥这些成名的程序员十几年来也只才产生了十来位。有才华的程序员绝不只这些,但他们没有机会。有时候,他们觉得机会就在眼前,伸手可及,但当他们扑上去将要和机会撞个满怀的时候,却每每扑了个空。在苦干了若干年之后的某一天早晨,从睡梦中醒来,他们突然发现自己除了编程能力提高之外,什么都没有改变,所写的程序是“职务作品”,所挣的工资仅能“糊口”,他们会突然感到写什么程序都没有意思。但如果不写程序,又能去做什么呢? 程序人生是智慧的人生,但我们也想描述一下这些智者心底的酸甜苦辣以及困惑不平棗自己写出的产品为公司挣了1个亿,为什么自己还是不名一文?技术入股到底是除了智慧什么都没有的程序员的出路?还是陷阱?优秀程序员成名之后,想名利双收,是不是必须不写程序,去做管理?都说个人英雄的时代已经成为过去,那么,新一代程序员还可以做笑傲江湖的英雄梦吗?…… 王江民用他的传奇告诉后来者还有机会。王江民初中毕业,38岁才开始学习计算机,两三年之内成为中国最出色的反病毒专家之一;45岁只身一人独闯中关村办公司,产品很快占据反病毒市场的80%以上;没学过市场营销,却使KV系列反病毒软件正版用户接近100万,创中国正版软件销售量之最。

都说个人英雄的时代已经成为过去,都说中关村不再相信传奇,传奇已为资本运营所代替,但王江民的传奇就发生在现在,就发生在我们身边,而且还在继续。无论这个时代多么地依赖和提倡集体协作,但个性的张扬永远不会泯灭,永远值得击节叫好,人格的魅力也永远让人激动不已,因为它代表着个人存在的价值和意义。个人也许就是为了突破各种不可能,实现各种不可思议而存在的。充盈着理想和力量的人在受到挫折的时候,可能会叹息自己身上的......

阅读全文(1660) | 评论:0

30岁,开始实现我的程序员梦(2007-05-13 10:25:00)

摘要:30岁,开始实现我的程序员梦,从一个编程爱好者,从一个业余的程序员,一个水平不高的程序员,一个半道出家的程序员......   我的经历到这里就告一段落了,五年里跳了五次槽,不知道和大家比算不算多,没有什么太多起伏,但我想很多朋友可能会和我有类似的经历,不知道能不能引起你们的共鸣。我想对我上面所说的话给一个总结:   1. 如果你觉得自己应该追求什么,不管遇到什么困难千万不要放弃,一定要坚持下去。   2. 不要因为自己年轻就找理由挥霍时间,少玩一点SC、CS、魔兽3、传奇、魔力或者…….,多看点书,多练练题。   3. 如果你还是在校的学生,英语很差,专业课也很差。没关系,想怎么学计算机就怎么学计算机吧。其它地只要能混到毕业证就行了。除非你对自己的未来没有信心。(当然,如果你的理想不仅仅是要做一个程序员,那你别丢掉英语。)   4. 如果你不是科班出身,想要转行而不知该怎么开始的话,建议你先看两类书:(1)计算机原理;(2)数据结构和算法。(看数据结构之前先看C语言)。   5. 什么时候努力都不晚,关键是你明白要努力了,大器晚成总比一事无成要好的多。   6. Java、.net、C++、PB、VB、Delphi、汇编到底应该学哪个?我的经验,哪个最简单就先学哪个、公司用哪个你就学哪个、哪个和你有缘(比如刚好你认识一个愿意帮助你的Delphi高手)你就学哪个,如果你都学,或者三天两头的换,我可以告诉你结果肯定是什么都不会,不要心浮气燥,他们都只是工具,学精一门其它的就相通了,重要的是掌握编程的思想。如果你问我面向对象(好像现在已经是面向需求了)、UML、WebLogic、WebService、软件工程、XML…….应该怎么学呀,对不起,这些我也确实不是都会,但请相信,你先实实在在的写上十万行以上的代码以后,那些东西你自然就慢慢会了。   7. 不要以为程序员的工资都很高,程序员之间的水平差异也大。公司衡量一个人的待遇标准是他能给公司带来多大的效益。如果你体现了自己的价值,公司会主动给你加薪的,当然你也可以自己主动提,但一定要在你表现出了自己的价值之后。   8. 轻易不要跳槽,如果非要跳,也要保持工作经验上的延续,而不是从新开始,不然就会象我一样走很多弯路。   9. 如果你以为程序员都是熬夜熬出来的,那么你错了,因为它的代价就是......

阅读全文(1543) | 评论:0