从C++跨越至JAVA,看似很简单,有很多人说了学完C++再学JAVA是SO Easy的事情。话是这么说,但是摈弃了C++还有的面向过程的思想,将所有东西都以类来封装,一句话,万物皆对象。开始学习JAVA感觉有丝小激动,但是一开始也是最基本的数据类型开始学起,什么int啊,double,那些的。不过JAVA中设计的基本数据类型确实比C++的好,没有C++中的那么多类型,更易于学习,没有C++的不确定性,JAVA中的类型都是固定字节数的。
    之后又是程序的三种结构,因为学过了C++,基本上浏览了一遍,主要看了一下JDK7.0的新特性。开始都是这些,想必也会有些无聊。到了后面学的包装类,基本都是类的用法。我学JAVA的时候总喜欢拿C++与JAVA对比,不知道这是自娱自乐还是自讨苦吃呢?有时候会觉得莫名其妙,有时候会为JAVA的这种设计拍手叫绝。例如:C++不能在类中给普通的成员变量赋值,要通过构造函数才行;而JAVA中可以直接赋值,我当时就困惑,为什么C++不可以,JAVA却可以,我百度了一番,有人直接说可以把JAVA中的这种性质看成是C++中构造函数后的初始化列表,可我觉得奇怪,为什么能这么对等?我又思索了一遍,为一个变量赋值,首先必须有内存空间,C++不能这么赋值,说明在加载这段代码的时候,并没有为对象分配内存空间,自然变量也没有内存空间。而JAVA中,给对象先分配内存空间,再调用构造器执行操作,此时也会加载这段代码,给对象的属性赋值。这也只是我的思考,我去网上搜索了一下,网友的解释都和我的想法一样,这是JAVA的一种设计,所以也没有再去追究了。
   又例如:JAVA中的内部类对象需要依赖于外部类的对象才能创建,而C++中的内部类对象可以直接用外部类::内部类这种形式来创建,与JAVA中的静态内部类一样。我想这也是设计上的差别吧。。。从JAVA到C++的跨度,不止是一种思想上的跨度,更是一种习惯的跨度。C++11才添加的多线程实现,在JAVA中的多线程有两种,JAVA的跨平台,JAVA的网路应用,顿时感觉JAVA的强大,但我未贬低C++,C++是繁琐的,难于掌握的,但是一旦掌握,威力无穷。
  学习JAVA的时候不单单思考JAVA的语法形式,要与内存模型相结合,这样更易于理解,更能掌握牢固,学JAVA的时候建议与其他语言作比较,明白其中的不同,为什么不同(虽然这不是我们需要关心的问题),但别将其弄混了!