zoukankan      html  css  js  c++  java
  • Java Main Differences between Java and C++

    转载自:http://www.cnblogs.com/springfor/p/4036739.html

    1. C++ supports pointers whereas Java does not. 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 forllvm 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.

    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

  • 相关阅读:
    命令行推送文章到博客园
    链表的新写法
    关于vim无法复制到剪切板的问题
    Ethernet & ARP Protocol
    [从今天开始修炼数据结构]串、KMP模式匹配算法
    [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现
    [从今天开始修炼数据结构]栈、斐波那契数列、逆波兰四则运算的实现
    [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList
    IntelliJ IDEA快捷键大全
    [从今天开始修炼数据结构]基本概念
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/4855307.html
Copyright © 2011-2022 走看看