
Java
文章平均质量分 77
li4951
这个作者很懒,什么都没留下…
展开
-
Java的内存分配
初学Java语言的人总是声称Java中没有指针。每次听到这种说法,我都是不做过多争辩。Java语言只是表面上没有了C/C++中的指针符号“*”。而其这种机制依然是存在的,只是换了个表现形式而已。其目的都是为了操作内存。还有些人经常说Java语言多么优秀,程序员不用关心底层的内存云云……。我们的语言还没有到那种程度,只是对于内存等细节的处理比以前更优秀了而已。下面整理了Java中内存的分配问题。原创 2012-02-29 15:55:00 · 675 阅读 · 0 评论 -
POJ1363验证出栈序列问题
题目地址: http://poj.org/problem?id=1363此题只需验证是否为合法的出栈序列。有两个思路:1、每个已出栈之后的数且小于此数的数都必须按降序排列。复杂度O(n^2),适合人脑。2、另一个思路就是直接模拟入栈出栈过程。虽然模拟毫无技巧可言,但复杂度O(n),优于算法1。适合电脑。代码如下:for(i = 0; i < N; i++){ if(in原创 2012-02-29 16:55:56 · 2005 阅读 · 4 评论 -
求所有的出栈序列
之前我们谈到验证一个出栈序列是否合法比较容易,简单模拟入栈出栈过程即可。那么如果需要求出所有合法的出栈序列该怎么办呢?(1)我们之前谈到,合法的出栈序列条件:对于每个已出栈数之后的且小于此数的数都必须按降序排列。例如1 2 5 3 4。对于5来说,后面的3,4都小于5,可是3,4却是升序的。则肯定不是合法的出栈序列。由此可以想到我们可以求出所有的全排列,然后从中剔除掉非法序列。显然,当原创 2012-03-08 18:05:39 · 5617 阅读 · 3 评论 -
equals方法和hashCode方法
对于Java语言中的老祖宗类Object有9个方法。都是作为一个对象应该具有的方法。特别是equals方法和hashCode方法最迷惑人。1. 为什么需要equals方法?在编程中经常需要判断一个对象和另一个对象是否相等。因此Object对象就规定了每个对象都应该有equals方法,用来判断是否和另一个对象相等。观察Object类的源码实现: public boolean equals原创 2012-03-12 21:01:46 · 886 阅读 · 0 评论 -
T9输入法的实现
T9输入法,名字听起来陌生,可是大家却经常使用它。可以说T9输入法是输入法历史中的一次革命。至少自T9输入法开始,输入法有长足的进步。如图手机中九个数字键。26个英文字母被分配到2至9这8个数字键上。以前想输入英文单词的时候总是需要连续多次按某个键,才能得到目标字母。比如想输入“hello”,就需要按两次4,两次3,三次5,三次5,三次6.输入一个单词需要数十次的按键,更何况还有经常按错的情况原创 2012-03-30 11:11:04 · 7654 阅读 · 6 评论 -
Java对集合的排序
Java中对集合的排序有两种支持(1): Collections.sort(List list);(2): Collections.sort(List list, Comparator c);一:第一种方式参数list必须实现了comparable接口,覆盖掉其compareTo()方法。也就是让sort给你排序,你就必须告诉它什么是大什么是小?类似于C++中的快排qsort。不过原创 2012-03-30 21:17:00 · 909 阅读 · 0 评论 -
函数的重写
我在OOP方面的知识一直都使用后再看理论的,因为之前的理论大多都没有吸收,也缺乏深入理解。最近又重新学习了继承体系中关于类中方法的重写(override)。先通过在C++下的例子来阐述这一机制。#include#includeusing namespace std;class People{public: People(string name){原创 2012-01-12 21:13:45 · 3238 阅读 · 4 评论