10 2012 档案
摘要:58、线程的基本概念、线程的基本状态以及状态之间的关系 线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。 Java中的线程有四种状态分别是:运行、就绪、挂起、结束。59、JSP的常用指令 <%@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="t
阅读全文
摘要:40、构造器Constructor是否可被override? 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。41、是否可以继承String类? String类是final类故不可以继承。42、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。43、try {}里有一个return
阅读全文
摘要:20、abstract class和interface有什么区别? 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的
阅读全文
摘要:1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装: 封装是把过程和数据包围起来,对数据的访问只
阅读全文
摘要:《怪诞行为学》,精辟论述人们日常生活中可预测的非理性行为。让我们更加了解自己的非理性行为,进而改进,从中受益。书中多以实验为主,每章一个论点,先从第一章说起。人一生大多数时候是做决定,决定考什么学校,选什么专业,找什么样的老婆,过什么样的生活,我们大多是是通过比较之后才得出结论的。很多事情,身临其境才知道自己想要的,比如想买自行车,不知道买什么样的,当我们看到一位环法冠军的赛车,我们才确定买哪辆;我们不知道买什么样的电视机,看了朋友家的我们决定了要买什么;甚至我们想要什么样的生活都是和别人对比出来的,当我们看了别人的生活才知道这就是我想要的。所以,当我们面临未知情况的时候,我们都要找到一个基点
阅读全文
摘要:《暗时间》第二篇讲的主要是人的思维对人的影响,人的思维都是有盲点的,同时人的思维也有很多的定势。这些定势是人在长期的进化过程中形成的,大多是时候对人是有利的,但有时候人们也是为其所累。人们都是带着有色眼镜来看待世界,我们看到的世界早已不是真实的世界,而是我们思维加了滤镜之后的效果,多少失去了原本的样子。就拿对一件事的成功与否来说吧,人们通常会将失败归因于外界因素,将成功归因于自己的能耐。要想作出相对正确的判断,就要训练理性的思维,可以说人有两个大脑,一个是情绪大脑,一个是理性大脑,这两个小人经常打架,一旦失去了理智,情绪大脑常常然我们做出后悔的事情。所以我们要让理性大脑更加强大,可以在必要的时
阅读全文
摘要:最近读了《暗时间》,不得不佩服作者的阅读量之广,思考之深刻,读来收获颇丰,下面将书中自认为比较有帮助的论述总结如下(仅第一部分)。能够迅速进入专注状态,以及能够长期保持专注状态,是高效学习最重要的两个方面。做事要设计目标和里程碑,可以让自己对事情的发展有一个明确的心理预期,防止对不确定deadline的恐惧,产生退缩心理。不要过早地退出循环,人生的成功很多时候是在不断做重复的事情,也就是多次循环,如果没能坚持住,在循环结束之前break了,那么也就失败了。区别成功与失败的并不是兴趣的有无,而是他们的性格里有没有维持兴趣火种燃烧下去的燃料。遇到事情要当断则断,因为时间有限,当你徘徊在做A还是B的
阅读全文
摘要:设计模式,自从被四人帮归纳总结出来之后产生了重大的影响,很多人成了设计模式的信徒,设计模式确实是好,但是好在哪里呢,总结起来大概有如下几点:可以提供现成的抽象减少复杂度。可以说软件工程的首要问题,也是难题,就是要管理复杂度。那设计模式对管理复杂度有什么好处呢?设计模式是一种抽象,是对很多类似的逻辑的一种总结和抽象,模式本身规定了特有的协议,包括质量,特性,约束等等。所以在设计过程中说到模式的层次就可以被程序员理解,而不用把设计思路逐行的将给他们听。设计模式把常见解决方案的细节予以制度化来减少出错。设计多数是个迭代的过程,几乎没有软件可以一次设计成功,以后不再改动,设计模式是多次设计问题的总结,
阅读全文
摘要:转眼间,大学过去三年多了,马上面临找工作的压力,不由得要想想,到底找什么样的工作才合适。有人说,看工资吧,工资那个多就干哪个,当然不可否认,高工资对人的诱惑是巨大的。但是真的喜欢吗,自己又真的适合吗,对自己的未来发展有帮助吗,还是仅仅眼下工资高。个人认为,找工作还是要找自己喜欢的为好吧,毕竟可能是要做一辈子的事情,就像选老婆,选对了幸福一辈子,选错了虽说可以离,但是毕竟心中有了一道伤。对于搞IT的孩子们,起步大多都是苦逼的程序员吧,有人说又苦又累,还有人说收入好,到底怎么样也都是外人说的。这个东西如鱼饮水,冷暖自知。我想大多数人还是热爱编程吧,喜欢写代码,喜欢创造,享受自己调通程序时的成就感,
阅读全文
摘要:今天买了本书,不是很厚,叫做《一万小时天才理论》,看名称以为是说天才的呢,其实不然,其中分析了普通人怎样才能达到我们眼中天才的高度。其实,天才并不存在,按书中的理论,天才可以用如下恒等式表示: 天才 = 精深 + 激情 + 伯乐精深指的是一个人在自己的兴趣领域要想成为专家,一定要经过至少10000小时的训练,最后达到精深的程度。简单来说,就是老生长谈的勤奋。精深练习是建立在一个悖论的基础上的:朝着既定的目标挣扎前进,挑战自己的能力极限,不断犯错,这让你更聪明。很多人在练习的过程中避免犯错,如果这样,就不会掌握更多的错误信息,也就不会积累更多的经验,要知道,现实中很少有事情是不经历失败一次成功的
阅读全文
摘要:《编程珠玑》,字字珠玑,发人深省,细细读来,内力必然精进,倾情推荐。书中一章专门写的多年来无数先驱们对软件开发的经验总结,十分精辟,列出如下。编码 如果还没想清楚,就用蛮力算法吧。 ——Ken Thompson,贝尔实验室 不要使用反正弦和反余弦函数——你总能用优美的恒等式,或者是计算向量点积来更好地解决这些问题。 ——Jim Conyngham,Arvin/Calspan高级技术中心 在存储日期中的年份的时候,请使用四位数字:千禧年快要到了。 ——David Martin,宾夕法尼亚州诺里斯敦 避免不对称结构。 ——Andy Huber,Data General公司 代码...
阅读全文
摘要:OO原则:(未完。。。) 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 对扩展开放,对修改关闭OO模式: 装饰者模式:动态地将责任附加到对象上,想要扩展功能,装饰者提供有别于继承的另一种选择。要点: · 继承属于扩展形式之一,但不见得是达到弹性设计的最佳方式。 · 在我们的设计中,应该允许行为可以被扩展,而无需修改现有的代码。 · 组合和委托可用于在运行时动态地加上新的行为 · 除了继承,装饰者模式也可以让我们扩展行为 · 装饰者模式意味着一群装饰者类,这些类用来包装具体组件 · 装饰者
阅读全文
摘要:书中实例用java编写,由于本人不能熟练使用java,所以用c++实现以达到练习效果,代码如下:#include <iostream>using namespace std;#include <string>class Beverage {public: Beverage(string desc = "") : description(desc) { } virtual string getDescription() const { return description; } virtual double cost() = 0;private: st
阅读全文
摘要:#include <iostream>using namespace std;void print_r(int *a, int length){ for (int i = 0; i < length; ++i) cout << a[i] << ' '; cout << endl;}void q_sort(int *a, int length){ if (length == 1) { return ; } if (length == 2) { if (a[0] > a[1]) swap(a[0], a[1]); retu
阅读全文
摘要:堆排序是一种高效的比较排序算法,运行时间为O(nlgn)。这种排序需要用到一种叫做(二叉)堆的数据结构,堆是一种数组对象,也可以看做一颗完全二叉树,对于任一节点,左右子节点和父节点分别可如下简单算出 PARENT(i) ((i - 1) / 2) LEFT(i) (2 * i + 1) RIGHT(i) (2 * i + 2)堆分为大根堆和小根堆,分别具有如下性质: a[PARENT(i)] >= a[i] a[PARENT(i)] <= a[i]本文采用大根堆说明堆排序算法的实现。c++实现源代码如下:#include <iostream>using namespac
阅读全文
摘要:《Head First设计模式》第一章的要点如下:OO基础: 抽象 封装 继承 多态OO原则:(未完。。。) 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程OO模式: 策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于算法的使用者要点: · 知道OO基础,并不足以让你设计出良好的OO系统 · 良好的OO系统必须具备可重用,可扩充,可维护三个特性 · 模式可以让我们建造出具有良好OO设计质量的系统 · 模式被认为是历经验证的OO设计经验· 模式不是代码,而是针对设计问题的通用解决方案,你可以把它应用到
阅读全文
摘要:《unix环境高级编程》是stevens大师为我们留下的一本关于unix的经典著作,内容详尽深刻,对unix系统接口做了深入的描述,博主闲来无事,做了张本书的思维导图,方法很简单,不过是根据原书的目录写成,在这过程中,又回忆了一下看过的知识。发现忘了好多,看来还得继续看啊。当然这种经典书籍,看多少遍也不为过,只要每次都能得到新知识便没有白看。图片下载链接:http://download.csdn.net/detail/ro_wsy/4617718
阅读全文
摘要:第三章 软件创建的先决条件3.1 先决条件重要性任何只要是有步骤的事情,步骤之间就是有关系的,前面的步骤一定会对后面的步骤有或多或少的影响,软件开发也是一样。问题定义影响需求分析,需求分析影响设计,设计影响编码。。。一个高质量的程序员应该在创建过程的开始,中间和末尾都强调高质量。3.2 问题定义先决条件问题定义应该在需求分析之前进行。问题定义应该从用户的角度进行,使用用户的语言进行定义,不应该使用计算机的术语来定义。因为有些问题用程序并不是最好的解决方法。当然对于与计算机本身有关的问题就另当别论了,比如编程工具出问题。3.3 需求分析先决条件明确的需求可以保证是由用户而不是程序员决定系统的功能
阅读全文
摘要:第二章 利用隐喻对编程进行更深刻的理解2.1 隐喻的重要性很多伟大的科学发现都是从类比开始的,类比就是将不熟悉的事物和我们熟悉的事物进行比较,找到他们之间的功能点,然后通过我们的比较解释不熟悉的事物,这种方法称之为“模型化”。模型的力量在于能提供生动形象的概念而易于被人接受。但模型有好有坏,好的模型应该要简单,与其他模型关系密切,能解释大部分试验现象和观测现象。2.2 如何使用软件隐喻软件隐喻是启发式的方法,并不是公式,并不会给你提供直接的解决方法,它只是给你提供方向,但是方向正确与否还需要自己摸索,所有对模型理解的好坏便决定了你对软件开发理解的好坏。2.3 通常的软件隐喻下面我们来看一看对软
阅读全文
摘要:《代码大全》可谓关于软件构件方面最经典,最权威的参考书,书中极其详尽的描述了软件构件过程中的几乎一切需要注意的问题,是每个程序员都应具备的一本手册,但本书因为内容详尽,通俗易懂,所以不免厚些,查找起来比较费劲,所以将其中的精华内容总结出来,单独成文以便以后查找核对之用不失为一个好方法。下面分章总结,每章一文,先看第一章。第一章 欢迎进入软件创建世界1.1什么是软件创建软件开发周期: · 问题定义 · 需求分析 · 实现计划 · 总体设计 · 详细设计 · 创建即实现 · 系统集成 · 单元测试 · 系统测
阅读全文
摘要:1. C中static有什么作用(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量。(3)static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0×00,某些时候这一特点可以减少程序员的工作量
阅读全文

浙公网安备 33010602011771号