2006年2月16日星期四

C++和Java对象的区别小结

屏印象总结了几条,随着深入学习,以后还会补充。 C++的对象可以分配在heap和stack,而java的对象只能在heap;
因此,Java对象都是全局的,当没有引用时,由GC负责回收,生命周期不明确,所以Java没有析构函数,资源管理要靠try catch finally;
C++,stack中的对象在调用方法退出后会调用析构函数,heap中的对象delete时自动调用析构函数,所以会有RAII(Resource Acquisition Is Initialization);
Java中类的非静态方法都是虚拟的(virtual),而c++必须明确指出哪些方法是virtual;
Java没有指针,对象是全局的,分配在heap中,创建和赋值都很简单;
C++的多态(polymorphism)要靠指针,虚拟函数表(vtalbe);
因此引申出了拷贝构造函数,赋值构造函数,当然这和RAII也有关系。

2006年2月14日星期二

情人节,继续推荐片子

《大鱼 Big Fish》
以一种奇特的方式讲述了父子之情,佩服导演的想象力,奇幻而又温馨。

《僵尸新娘》
故事不错,还是佩服导演的想象力,能把僵尸表现的这么可爱。当然这是一个凄美浪漫的爱情童话。

2006年2月7日星期二

书籍推荐《C++必知必会》

面向有经验的Java程序员,就象我一样。