Presentation is loading. Please wait.

Presentation is loading. Please wait.

C++ vs. Java: Similiarities & Differences Dr. Jeyakesavan Veerasamy Director of CS UTDesign program & CS Teaching Faculty University.

Similar presentations


Presentation on theme: "C++ vs. Java: Similiarities & Differences Dr. Jeyakesavan Veerasamy Director of CS UTDesign program & CS Teaching Faculty University."— Presentation transcript:

1 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

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.cppfile2.cppfilen.cpp …. file1.ofile2.ofilen.o …. Linker application (executable) Compiler C++ compiler does not care about filenames. This appliction runs directly on top of OS.

4 Java compiler usage file1.javafile2.javafilen.java …. file1.classfile2.classfilen.class …. Compiler Operating System Java Runtime Environment (JRE)

5 C++ vs. Java: differences C++Java Write once, compile everywhere  unique executable for each target Write once, run anywhere  same class files will run above all target-specific JREs. No strict relationship between class names and filenames. Typically, a header file and implementation file are used for each class. Strict relationship is enforced, e.g. source code for class PayRoll has to be in PayRoll.java

6 C++ vs. Java: differences … C++Java I/O statements use cin and cout, e.g. cin >> x; cout << y; I/O input mechanism is bit more complex, since default mechanism reads one byte at a time (System.in). Output is easy, e.g. System.out.println(x); Pointers, References, and pass by value are supported. No array bound checking. Primitive data types always passed by value. Objects are passed by reference. Array bounds are always checked.

7 C++ vs. Java: differences … C++Java Explicit memory management. Supports destructors. Automatic Garbage Collection. Supports operator overloading. Specifically operator overloading was thrown out.

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

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/


Download ppt "C++ vs. Java: Similiarities & Differences Dr. Jeyakesavan Veerasamy Director of CS UTDesign program & CS Teaching Faculty University."

Similar presentations


Ads by Google