+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
C++vs java
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.cpp file2.cpp filen.cpp
….
file1.o file2.o filen.o
….
Linker
application
(executable)
Compiler Compiler Compiler
C++ compiler does
not care about
filenames.
This appliction
runs directly on
top of OS.
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.
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?