The main difference between Java & C++(转载)

时间:2023-11-10 17:48:32

转载自:http://*.com/questions/9192309/the-main-difference-between-java-c

  1. C++ supports pointers whereas Java does not pointers. But when
    many programmers questioned how you can work without pointers, the
    promoters began saying "Restricted pointers.” So we can say java
    supports Restricted pointers.

  2. At compilation time Java Source code converts into byte code .The
    interpreter execute this byte code at run time and gives output. Java
    is interpreted for the most part and hence platform independent (Write
    once, run anywhere). C++ run and compile using compiler which converts
    source code into machine level languages so c++ is platform dependent
    (Write once, compile anywhere).

  3. Java is platform independent language but c++ is dependent upon
    operating system machine etc. C++ source can be platform independent
    (and can work on a lot more, especially embedded, platforms), although
    the generated objects are generally platform dependent but there is
    clang for llvm which doesn't have this restriction.

  4. Java uses both a compiler and interpreter, while C++ only uses a compiler

  5. C++ supports operator overloading multiple inheritance but java does not.

  6. C++ is nearer to hardware then Java

  7. Everything (except fundamental types) is an object in Java (Single root hierarchy as everything gets derived from java.lang.Object).

  8. Java does is similar to C++ but it doesn't have the complicated
    aspects of C++, such as pointers, templates, unions, operator
    overloading, structures, etc. Java also does not support conditional
    compilation (#ifdef/#ifndef type).

  9. Thread support is built into Java but not in C++. C++11, the most
    recent iteration of the C++ programming language, does have Thread
    support though.

  10. Internet support is built into Java, but not in C++. On the other
    hand, C++ has support for socket programming which can be used.

  11. Java does not support header files and library files. Java uses import to include different classes and methods.

  12. Java does not support default arguments.

  13. There is no scope resolution operator :: in Java. It has . using which we can qualify classes with the namespace they came from.

  14. There is no goto statement in Java.

  15. Because of the lack of destructors in Java, exception and auto garbage collector handling is different than C++.

  16. Java has method overloading, but no operator overloading unlike C++.

  17. The String class does use the + and += operators to concatenate strings and String expressions use automatic type conversion,

  18. Java is pass-by-value.

  19. Java does not support unsigned integers.

以下转载自:http://geeksquiz.com/c-features-missing-java/

Following features of C++ are not there in Java.

No pointers
No sizeof operator
No scope resolution operator
Local variables in functions cannot be static
No Multiple Inheritance
No Operator Overloading
No preprocessor and macros
No user suggested inline functions
No goto
No default arguments
No unsigned int in Java
No -> operator in java
No stack allocated objects in java
No delete operator in java due to java’s garbage collection
No destructor in java
No typedef in java
No global variables, no global function because java is pure OO.
No friend functions
No friend classes
No templates in java