//1.Java中字符串不能多行书写。多行书写用引号隔断,加号相连。
//2.Java的标识符可以用美元符号开头。
//3.Java中没有无符号变量或无符号常量的概念。所有的变量都是有符号的。
//4.Java中变量的字长是固定的。不存在char和wchar之分。
//5.Java中变量未初始化就使用将是编译错误。
//6.Java中不能把0和非0整数当boolean值用。要使一个整型变量在0和1之间交替变化,不能用非运算,可以这样。int x=0;x=(x+1)%2;
     //java的类型检查比C++严格。byte b=3;b=b-1;是错误的。非运算符(!)只能对boolean数据操作。
//7.Java中变量不能嵌套定义,即子块变量名不能与父块变量名同名。但类成员函数中的局部变量可以隐藏类成员变量,即二者可以有相同的名字。
//8.Java中没有全局变量和全局函数,相应功能由类中的static成员代替。全局常量加public static final标记。
//9.Java中函数的参数如果是基本数据类型,使用的是传值调用。其他自定义类型是传地址(句柄)调用。
//10.对象的句柄之间赋值,只能让两个句柄指向同一个对象,对象的内存不会被复制。也不存在运算符重载,字符串重载加号是系统实现的特例。没有拷贝构造函数的概念。因此,继承是很单纯和简单的。
//11.Java的左移位运算分带符号左移>>和不带符号左移>>>。byte,short,char的移位运算自动提升为int再移位。
//12.Java没有goto语句,但有goto保留字。
//13.Java数组也是在堆内存中分配的,并且是对象.int[] intArray = new int[100]; 中括号可以写在数组名的前面。   这样是错误:int a[5];
        //奇怪的是,这种堆上创建的数组大小也不可改变。
//14.Java中没有真正的多维数组,只有数组的数组,且可能是不规则的矩阵形式。
      /*
       int xx[][];
       xx=new int[3][];
       xx[0]=new int[10];
       xx[1]=new int[7];
       xx[2]=new int[8];
       若是规则的矩阵
       int yy[][]=new int[2][3];*/ 
//15.设有class Person{/*...*/};在C++中,Person p1;这就在栈上产生了一个对象,Person *p1=new Person;在堆上产生了一个对象。
     //在Java中,只能在堆上产生对象:Person p1=new Person;  代表对象的p1称作句柄,相当于C++中的引用。
     //Java中句柄要在栈上占一个指针大小的内存,所以Java中的句柄实际上是变相的指针(所以Java比C++更广泛的使用指针)。
//16.Java中的成员变量会被自动初始化,函数中的局部变量与C++一样不会被初始化。
//17.Java中::操作符用.代替。
//18.离开作用域,句柄失效,但它所代表的对象占用的内存没有没有马上回收,而是在之后一个不确定的时间由一个称为垃圾回收器的程序回收。
//19.不存在运算符重载,所以没办法用'=='比较两个对象的内容。只能在对象中定义equals方法进行比较。用'=='比较两个句柄,相当于比较两个对象
      //的指针,不会比较两个对象的内容。
//20.不小心把类的构造函数写了返回值,Java会把它当成普通成员函数,C++会报错。
//21.Java中类成员变量定义时可以附带给一个初始值。class a{private int a=10;},但构造函数中的赋值会覆盖这个值。
//22.Java可以在一个构造方法中用this关键字调用另一个重载的构造方法。
//23.finalize方法,类似C++的析构函数。由垃圾回收器调用,但不一定会总是被调用。System.gc()可以启动垃圾回收器。
//24.Java中有static代码块的概念,只有在类第一次加载时被调用。即在第一次在代码中涉及类名时被调用 。
//25.Java用extends实现继承。Java只支持单继承,但可以同时实现多接口。所有的继承都相当于C++中的public继承。Java子类的函数不会隐藏基类的同名不同参的函数。
     //没有virtual关键字,但所有的函数天生具有多态性。访问控制增加default型,具有同一包访问权限。
//26.Java中子类用super调用父类的构造函数。
//27.变量加final限定是常量,方法加final限定子类中不能再覆盖改写,类加final标记不能被继承。函数形参加final,函数体中不能修改该值,相当于C++中加const限定。
//28.Java中的成员函数如果前面加abstract,没有函数体,而用分号结束,就是抽象方法,而在C++中是一个函数申明后面跟=0。
      //有抽象方法的类为抽象类必须加abstract限定。
//29.要throw异常的函数括号后要跟throws Exception,throw的异常对象必须是Exception的子类对象,且使用有throw的函数必须try{}catch{}。Java因为封装了很多异常类,处理异常绝对比C++方便易用。
//30.finally代码块不论是否发生异常都会执行。即使try块有return语句且没发生异常。但若有System.exit(0);被执行,finally语句块不会被执行。
//31.Java用implements关键字实现接口 。用interface定义接口。所谓接口,就是类中的所有方法都是抽象的。接口中只能定义常量和抽象方法,常量的public static final可以省写。
    //接口之间也可以用extends关键字继承,实现部分接口的类是抽象类,使用implements关键字。接口的方法默认是public的。
    //
//32.Java用synchronized(任意对象){}实现线程同步。或者synchronized限定函数。//33.Java有instanceof关键字判断一个类是否实现某个接口,也用它判断一个对象是否属于某个类 。
//34.Java的所有类都继承自Object类。对象间的比较要覆盖Object类的equals方法实现。
//35.Java可以在函数调用时的参数上定义匿名内部类。
//36.Java提供条理清晰结构分明的档案组织方式:package import;
         //拥有一个优秀,涵盖面广,扩充性强的Java Libraries.
//          java class fields(侯捷译为栏位),C++称为data member
//java在使用集合类时也可能会有内存泄漏。
//37.Java的类中没有黙认无参构造函数也可以创建对象数组。如:
class A
{
public A(int a){}
}
class test
{
A[] a=new A[20];
}

解决方案 »

  1.   

    基本是对的,不过对第18点,
    ----------------------------------
    //18.离开作用域,句柄失效,但它所代表的对象占用的内存没有没有马上回收,而是在之后一个不确定的时间由一个称为垃圾回收器的程序回收。
    ----------------------------------
    本人有一点补充:
    C++中应该避免从方法中返回局部变量的指针或引用,但在JAVA中,可以非常安全地返回一个局部变量的地址(即JAVA中所称的“引用”),即使在作用域外,只要这个地址还被其它变量引用,地址上的对象就保证不会被回收。所以,这一点是很安全的。另外,对于抛出异常,JAVA中只要是Throwable的子类就可以抛,不一定是Exception的子类。
      

  2.   

    对搞C++的 转JAVA 应该有帮助吧
      

  3.   

    //2好像java还可以用汉字,日语,韩语做变量名。
      

  4.   

    楼主真辛苦了。//7.Java中变量不能嵌套定义,即子块变量名不能与父块变量名同名。但类成员函数中的局部变量可以隐藏类成员变量,即二者可以有相同的名字。public void test(){
        {
            int i = 0;
        }    int i = 0;    /* // 不可以
        {
            int i = 0;
        }
        */
    }
      

  5.   

    main是static
    类与文件名同名
    没有指针
      

  6.   

    这些比较意义何在?===============>>学过C++的人学Java,刚开始会把C++里的东西带进来,比较一下,加深印象,免得搞错。
      

  7.   

    java中的for(int i=0......){}其中i 的生命期到for循环结束就终止了而vc6.0下 i的生命期要到包含for循环的块结束处才终止
      

  8.   

    //5.Java中变量未初始化就使用将是编译错误讲的是方法中定义的局部变量,成员变量不用,编译器在调用构造函数之前会自动清零
      

  9.   

    还有就是 java中没有局部的static变量