1 / 15

C++ vs. Java: Similiarities & Differences

C++ vs. Java: Similiarities & Differences. Dr. Jeyakesavan Veerasamy Director of CS UTDesign program & CS Teaching Faculty jeyv@utdallas.edu University of Texas at Dallas, USA. History. C (1969)  C++ (1979)  Java (1995)

pabla
Download Presentation

C++ vs. Java: Similiarities & Differences

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C++ vs. Java: Similiarities & Differences Dr. Jeyakesavan VeerasamyDirector of CS UTDesign program & CS Teaching Faculty jeyv@utdallas.eduUniversity of Texas at Dallas, USA

  2. History • C (1969)  C++ (1979)  Java (1995) • Both support OOP. Most OOP library contents are similar, however Java continues to grow. • Syntax is very close – Java has strong influence of C/C++. Easy to learn the other language when you know one of these.

  3. C++ compiler & Linker usage file1.cpp file2.cpp filen.cpp …. Compiler Compiler Compiler file1.o file2.o filen.o …. Linker This appliction runs directly on top of OS. C++ compiler does not care about filenames. application (executable)

  4. Java compiler usage file1.java file2.java filen.java …. Compiler Compiler Compiler file1.class file2.class filen.class …. Java Runtime Environment (JRE) Operating System

  5. C++ vs. Java: differences

  6. C++ vs. Java: differences …

  7. C++ vs. Java: differences …

  8. Types of memory used by executable task data (static) heap (dynamic) Code Stack

  9. Objects • Objects can be created as local variables just like any basic data types in C++. C++: ComplexType num1; Java: Nothing equivalent – Objects cannot be in stack.

  10. Objects in Heap C++: ComplexType *num1 = new ComplexType(…); Java: ComplexType num1 = new ComplexType(…);

  11. Arrays • Basic data types and classes are treated the same way in C++, unlike Java. C++: ComplexNumber numbers[5]; Java: nothing equivalent.

  12. C++ array version #2 ComplexNumber *numbers; numbers = new ComplexNumber[5]; Java: nothing equivalent for classes, but possible for basic data types: int numbers[]; numbers = new int[5];

  13. C++ array version #3 ComplexNumber **numbers; numbers = new ComplexNumber*[5]; for( index i = 0 ; i < 5 ; i++) numbers[i] = new ComplexNumber(…); Java: ComplexNumber numbers[]; numbers = new ComplexNumber [5]; for( index i = 0 ; i < 5 ; i++) numbers[i] = new ComplexNumber(…);

  14. C++ vs. Java: Analogy • Working with C++ is like flying a airpline, while working with Java is like driving a car. • What does it mean? • Too many controls/options in C++: think before use each one. • Careful use can result in efficiency, poor use can result in serious inefficiency • Issues like memory leak can crash the application, out-of-bounds array access can cause memory corruption – but it may not show up for long time – causing lot of headache! • Java : slow and steady wins the race?

  15. References • C++ tutorials: http://www.cplusplus.com/files/tutorial.pdf, http://www.learncpp.com/ • C++ reference: http://en.cppreference.com/w/ • Java tutorial: http://docs.oracle.com/javase/tutorial/ • Java API documentation: http://docs.oracle.com/javase/6/docs/api/

More Related