- 博客(26)
- 资源 (8)
- 收藏
- 关注
原创 一道概率问题:
题目:有一辆汽车有N个座位,编号为1~N, 有N个人买票拿号上车,正常人按照自己的座位号对号入座,但是有一个精神病患者,在空座位中随机选择一个空着的座位就坐,正常人的座位如果被占,也将随机选择一个空着就坐,假如第一个上车的是精神病患者,其他人都是正常人,问最后一个人能坐到自己的座位的概率是多少?对于概率统计的问题,在面试的时候,刚一看题,有点懵,习惯性的瞎猜测1/N,1/2之类的答案。但是
2013-08-01 23:54:23 2047
原创 算法题求解:从1~N中求某个字符出现次数
最近碰到一道题目:输入1~N个数字,求这个字符序列中某个字符ch={0~9}出现的次数,例如N=12时,字符‘1’出现了5次,1、10、11、12。这个题目一看,绝大部分人想到的就是循环,求每个数字中字符出现的次数,但是一旦N很大的时候,就拿32位的有无符号Int来说,最大值2147483647,在我的2.53GHZ的机器上运行,大约需要289秒,效率太低了,我们就可以从数字的特征开始分析。
2013-07-31 23:59:04 1006
原创 [数据挖掘]关联规则挖掘
关联规则(association rule)是数据中所蕴含的一类重要规律。关联规则挖掘的目标是在数据项目中找出所有的并发关系(cooccurrence relationships),这种关系也称为关联(association)。关联规则挖掘的经典应用是购物篮(Market Basket), 关联规则挖掘并没有考虑客户购买商品时的顺序。 在介绍关联规则挖掘算法前,我们先了解一些相关的概
2013-05-03 21:26:13 1460
原创 遗传算法实现表达式在一定[x,y]求最大值
遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。 遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。 对遗传算法,我们不做过多的叙述,google一下,有大量的相关文章,我在这里用Jav
2013-04-05 21:06:40 1375
原创 C/C++指针与const、数组、函数
C/C++中指针是灵活多变,可以指指向任意地址,但是地址有可以存储任意对象,因此指针与其它对象的定义结合在一起,功能和作用是不同的,很容易混淆,尤其是const、数组和函数。 下面分别介绍一下const、数组、函数与指针一起时在如何使用,有点像绕口令。 1、const与指针const用来修饰不变量,const与指针结合在一起,有多种称谓和定义,例如: 常量指针、指针常量(指向常量的
2013-03-30 22:58:11 1928
转载 【图解】Linux下C程序进程地址空间布局
转载自: 作者:沧海猎人 出处:http://blog.csdn.net/embedded_hunter 我们在学习C程序开发时经常会遇到一些概念:代码段、数据段、BSS段(Block Started by Symbol) 、堆(heap)和栈(stack)。先看一张教材上的示意图(来源,《UNIX环境高级编程》一书),显示了进程地址空间中典型的存储区域分配情况。
2013-03-17 22:01:55 591
转载 剖析程序的内存布局
转自:http://blog.csdn.net/drshenlei/article/details/4339110 内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Windows系统。本系列第一篇文章讲述应用程序的内存布局。
2013-03-17 21:31:26 475
原创 在Eclipse 集成 Tomcat,准备Java Web开发环境
现在学习Java Web开发的时候,一般选择使用Eclipse 和Tomcat,当然各人有各人的喜好。下面仅仅记录一下我的操作方便新手学习,也避免以后自己忘记。 1、安装JDK, 这个不需要多说,安装完之后,一般配JAVA_HOME环境变量; 2、下载Apache Tomcat,官方下载,有安装(Exe)版和绿色版(解压到一个某一个目录即可),我选择绿色版
2013-02-22 22:57:18 1435
原创 Java 高质量编程建议(笔记8)
Ad-60:性能考虑,数组是首选 1)Java中JDK提供了List、Set、Map等集合类,方便各种应用场景的编码,但是这些集合的底层实现还是依赖于数组; 2)Java中集合类型是泛型,而泛型支持的是对象类型,不支持基本类型,但是数组支持基本类型; 3)由于集合类型不支持基本类型, 而数组支持,在对大量数据做运算情况下, 数组的效率比集合类型高,集合类型的元素存入时
2013-02-18 22:11:56 1106
原创 Java 高质量编程建议(笔记7)
Ad-52:推荐使用String直接量赋值 1)一般的对象生成,都是用new创建一个新对象,但是String可以通过赋值类生成对象; 2)对于String对象,不建议是用new String("")生成对象,而是String var= ""; 3)Java为了避免系统中产生大量的String对象,内部设计一个字符串常量对象池,使用赋值创建一个String对象的时候,首
2013-02-03 23:13:08 599
原创 Java 高质量编程建议(笔记6)
Ad-39:使用匿名类的构造函数Ad-40:匿名的构造函数很特殊 1)匿名类是指没有名称的类,通常的匿名内是继承自某个类,例如通常创建一个线程如下: Thread thr = new Thread(){ @Override public void run() {
2013-02-03 21:46:21 464
原创 Java 高质量编程建议(笔记5)
Ad-31:不要在接口中实现代码 接口是一种框架协议,定义了各个功能模块之间的交互协议,因此不要把具体的功能实现放在接口中,避免接口中绑定了可变的实现部分,导致接口不稳定。 接口是定义了要实现的类的功能接口,但是各个实现类之间不一般不存在耦合,如果实现放在接口中,就很容易导致接口实现类存在一定的耦合。 Ad-32:静态变量一定要先声明后赋值 1)在大家
2013-02-01 23:01:39 508
原创 Java 高质量编程建议(笔记4)
Ad-26:提防包装类型的null值 1)包装类型(Wrapper Types)是为了解决基本类型的实例化问题,以便让一个基本类型也能参与到面向对象的编程世界中(例如:Java的容器存放的都是对象类型); 2)包装类型有:Character(char),Byte(byte),Short(short),Integer(int),Long(long),Float(float),Do
2013-02-01 22:57:47 401
原创 Java 高质量编程建议(笔记3)
Ad-18:避免instanceOf非预期结果 1)instanceOf是一个简单的二元操作符,用来判断一个对象实例是否属于某个类; 2)直接常量的类型是基本类型,而不是其包装类型, 如果右操作数是包装类型,则编译失败,反之亦然; 3)instancOf的左操作数如果是null,直接返回false,不关心运算的右操作数是什么类型; 4)如果对象的类型是是右操
2013-01-20 21:09:29 707
原创 Java 高质量编程建议(笔记2)
Ad-16:易变的业务使用脚本语言编写 1)脚本语言的优势: a)灵活:脚本语言一般是动态类型,可以不声明变量类型而直接使用, 也可以在运行期间改变类型; b)便捷:脚本语言是一种解释型语言, 不需要编译成二进制代码,也不需要Java一样生成字节码,它依赖解释器解释的, 运行期间变更代码更容易,而且不用停止业务; c)简单:部分脚本语
2013-01-13 17:54:34 602
原创 Java 高质量编程建议(笔记1)
Ad-1:不要在变量和常量中出现容易混淆的数字和字母 1)包名称通常全小写; 2)多个单词构成的类名称,全首字母大写; 3)变量名称和函数名称的首单词首字母小写,后续单词的首字母大写; 4)常量全大写,单词之间用"_"连接; 5)long型整数赋值时,需要加字母"l"或"L",建议用L; 6)字母O与数字0 易混淆,建议常量和变量中不少使用,使用时增加注释; Ad-
2013-01-13 15:46:53 597
原创 Java Core 接口和内部类
1、 接口描述一个类具有某些功能,而不是实现这些功能,它本身不是一个类,不能被实例化。2、 接口性质1) 接口中所有的方法自动属于public类型,不需要在接口中用public修饰;2) 接口中可以定义常量,不需要用public static final修饰,接口中的常量
2011-07-06 21:31:47 427
原创 Java Core 第五章——继承(2)
<br />1、 泛型数组列表<br />1) 数组类型的大型在程序执行new以后,大小固定了,不能再扩大数组的大小;<br />2) ArrayList是一种采用类型参数的泛型类,在ArrayList后面增加<ClassType>来说明数组列表的元素类型;<br />3) ArrayList可以在数组列表满以后,自动调整大小;当数组列表满以后,再添加(add方法)元素时,数组列表自动创建一个新的数组,并将所有的对象拷贝的新的数组列表中;<br />4) 如果能估计到数组列表可能存储的元素数量,可
2011-06-01 21:43:00 436
原创 Java Core 第五章——继承(一)
<br />1、 类、超类和子类:关键字extends表明正在构造的新类派生自一个已经存在的类;已经存在的类称为超类(也称:父类、基类),新类称为子类(也称:派生类)[C++中的继承与此类似,但是用“:”表示继承];<br />2、 Java中的继承关系都是公有继承[C++中的继承分公有继承、保护继承和私有继承];<br />3、 子类继承了超类的方法和域;<br />4、 设计的时候,通常将通用的行为和公共的属性放置在超类中,而将某些特殊的属性和行为放置在子类中;<br />5、 超类中有些通用
2011-05-23 22:09:00 441
原创 Java 核心学习——第四章
对象与类1、 基本概念1) 类是同一类事物的抽象描述,对象实这一类事物的某个实例的称谓。类是构造对象的模板,类构造对象的过程为创建对象实例。2) 实例域:对象中的数据[C++ 称成员变量];3) 方法:操作数据的过程[C++ 称成员函数];4) 状态:每个特定的对象实例都有一组特定实例域值,这些值的集合描述了对象的当前特征信息,这就是对象的状态;5) 封装是对象隐藏实例域的关键,是面向对象编程的一个重要特点。6) 对象的三个主要特性A) 对象的行为(behavior)——可以对对象施
2011-05-16 22:57:00 524
原创 Java Core 学习笔记--第三章
说明:最近因工作需要,开始学习Java, 有不对之处,敬请斧正! Java 基本的程序设计结构1、 Java对大小敏感(C++ 亦同)。2、 Java应用程序的全部内容必须放置在类中(Java的main函数也必须防止在类中,而C++的main必须在类外)。3、 命名问题1) 组成:Java命名以字母开头,后面可以是数字和字母的组合(包括下划线)2) 长度:无限制3) 约束:不能使用Java关键字4) 类命名规范:类名以大写字母开头的名词,如果类名称由多个单词组成,每个单词的首字母大写(骆驼命名
2011-05-10 23:16:00 500
原创 学习XML之一 XML语法规则
1、所有的XML文档必须有一个结束标记,在XML文档中, 忽略结束标记是不符合规定的。<br />注:XML文件第一行,通常是XML文件的声明,不是XML文档的一部分,不是XML元素。<br /> 2、XML标记是大小写敏感,写XML标记时,开始和结束标记要大小写一致。<br /> 3、所有XML元素必须是合理包含,不允许不正确的嵌套。<br />例如:<b><i>This text is bold and italic</b></i>4、所有的XML文档必须有一个根元素,XML文档中的第一个元素就是根元素
2010-11-27 21:33:00 592
原创 思考和决定
看了一篇文章,讲人做事情不要犹豫,要在思考和决定事情之间平衡。感觉还有很有道理,学习分享一下。 1、辨清真实的目标。有些事情,没有真实的目标的时候, 可能会在几种方案之间徘徊,一旦明确了真实的目标,那么就很容易决定。 2、小事情不要犹豫,要迅速做出决定。所谓的小事情,文中的看法跟我一样,指不影响人生和事业的。最好在思考1~2分钟之后,能做出决定。 3、做抉择的一种方法
2010-03-16 22:35:00 384
转载 面向对象设计的11原则
转载:http://se.csai.cn/OO/200611220934411632.htm 面向对象设计是什么?都包含了哪些内容?它所带来的好处是什么?需要你为之付出些什么?在如今这个年代,问这些问题似乎显得很愚蠢,因为这年头几乎每位软件开发人员都知道如何使用某种面向对象编程语言。可是这个问题还是很重要,因为在我看来,绝大多数人在使用这些语言的时候并不知道为什么,而且也不知该如何最充分的
2010-02-07 10:35:00 398
原创 2009 个人的10件值得记忆的事情
回顾过去的2009, 个人虽然没有什么成就,但是也有我自己值得记忆的事情。 10、工作上,将MIT通知性能提升10倍; 9、工作上,将CM格式化优化了,性能提升16倍,文件总量降低到1G以下; 8、工作3年了,我的工作内容有了一点变动,不再Cm了; 7、工作上,将双机同步性能提升20~40倍; 6、年末终于去了“东方之珠”香港; 5、国庆带老婆回家请
2010-01-01 21:28:00 375
Understand Linux Kernel 2nd.pdf
2010-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人