1. Introduction
Java, C और C++ तीनों programming languages हैं, लेकिन इनका use, structure और execution method अलग-अलग है। C एक procedure-oriented language है, C++ एक object-oriented language है, जबकि Java एक pure object-oriented style वाली language मानी जाती है।
Java को C और C++ की कमियों को दूर करके बनाया गया था। Java में security, portability और automatic memory management जैसी सुविधाएँ दी गई हैं।
2. Basic Difference
C language में program functions के आधार पर लिखा जाता है, इसलिए इसे procedure-oriented language कहते हैं। C++ में classes और objects का use होता है, इसलिए यह object-oriented language है। Java में लगभग सब कुछ class और object के अंदर होता है, इसलिए Java को object-oriented language कहा जाता है।
3. Difference Between C, C++ and Java
| Basis | C | C++ | Java |
|---|---|---|---|
| Programming Approach | Procedure-oriented | Object-oriented | Object-oriented |
| Platform Dependency | Platform-dependent | Platform-dependent | Platform-independent |
| Pointer | Pointers supported | Pointers supported | Explicit pointers not supported |
| Memory Management | Manual | Manual | Automatic by Garbage Collector |
| Multiple Inheritance | Not supported | Supported using classes | Supported using interfaces |
| Security | Less secure | Less secure | More secure |
| Compilation | Source code to machine code | Source code to machine code | Source code to bytecode |
| Execution | Direct execution | Direct execution | JVM executes bytecode |
| Header Files | Used | Used | Not used |
| Preprocessor | Used | Used | Not used |
| Operator Overloading | Not supported | Supported | Not supported |
| Global Variables | Supported | Supported | Not supported directly |
4. Platform Dependency Difference
C और C++ में program compile होकर machine code में बदल जाता है। यह machine code केवल उसी operating system या processor पर run होता है जिसके लिए उसे compile किया गया है। इसलिए C और C++ platform-dependent languages हैं।
Java में program compile होकर bytecode में बदलता है। यह bytecode JVM की help से किसी भी operating system पर run हो सकता है। इसलिए Java platform-independent language है।
Flow in C/C++
Source Code
↓
Compiler
↓
Machine Code
↓
Run on Specific Platform
Flow in Java
Java Source Code
↓
Java Compiler
↓
Bytecode
↓
JVM
↓
Run on Any Platform
5. Pointer Difference
C और C++ में pointers का use memory address को store करने के लिए किया जाता है। Pointer powerful होते हैं, लेकिन इनके गलत use से program crash हो सकता है या security problem आ सकती है।
Java में explicit pointers नहीं होते। Java memory को directly access करने की permission नहीं देता। इसलिए Java ज्यादा secure और safe language है।
Example of Pointer in C
#include <stdio.h>
int main() {
int a = 10;
int *p;
p = &a;
printf("Value of a = %d", *p);
return 0;
}
Output
Value of a = 10
Java में Pointer नहीं होता
class PointerDemo {
public static void main(String[] args) {
int a = 10;
System.out.println("Value of a = " + a);
}
}
Output
Value of a = 10
6. Memory Management Difference
C और C++ में memory को manually manage करना पड़ता है। Programmer को memory allocate और free करनी पड़ती है। अगर memory free नहीं की गई तो memory leak हो सकता है।
Java में memory management automatic होता है। Java में Garbage Collector unused objects को automatically memory से remove कर देता है।
C++ Example
#include <iostream>
using namespace std;
int main() {
int *p = new int;
*p = 50;
cout << *p;
delete p;
return 0;
}
Java Example
class MemoryDemo {
public static void main(String[] args) {
String name = new String("Java");
System.out.println(name);
}
}
Java में unused object को Garbage Collector automatically remove कर देता है।
7. Multiple Inheritance Difference
C++ में एक class एक से अधिक classes को inherit कर सकती है। इसे multiple inheritance कहते हैं।
Java में classes के through multiple inheritance support नहीं होता क्योंकि इससे ambiguity problem आ सकती है। Java multiple inheritance को interfaces की help से support करता है।
C++ Multiple Inheritance Example
class A {
};
class B {
};
class C : public A, public B {
};
Java Interface Example
interface A {
void showA();
}
interface B {
void showB();
}
class C implements A, B {
public void showA() {
System.out.println("Interface A method");
}
public void showB() {
System.out.println("Interface B method");
}
public static void main(String[] args) {
C obj = new C();
obj.showA();
obj.showB();
}
}
Output
Interface A method
Interface B method
8. Header Files Difference
C और C++ में header files का use किया जाता है। जैसे:
#include <stdio.h>
#include <iostream>
Java में header files नहीं होतीं। Java में packages का use किया जाता है। जैसे:
import java.util.Scanner;
9. Security Difference
Java C और C++ की तुलना में अधिक secure है क्योंकि:
- Java में explicit pointers नहीं होते।
- Java program JVM के अंदर run होता है।
- Java bytecode verification करता है।
- Java automatic memory management provide करता है।
10. Main Difference in One Line
C and C++ are platform-dependent languages, while Java is a platform-independent language because Java uses bytecode and JVM.
11. Exam-Oriented Short Answer
Q. How is Java different from C and C++?
Java C और C++ से अलग है क्योंकि Java platform-independent, secure और object-oriented language है। C और C++ में pointers और manual memory management होता है, जबकि Java में explicit pointers नहीं होते और memory management Garbage Collector द्वारा automatically किया जाता है। C++ multiple inheritance को classes के through support करता है, लेकिन Java multiple inheritance को interfaces के through support करता है। Java program bytecode में compile होता है और JVM की help से किसी भी platform पर run हो सकता है।
12. Important Points to Remember
- C procedure-oriented language है।
- C++ object-oriented language है।
- Java object-oriented और platform-independent language है।
- C और C++ में pointers होते हैं।
- Java में explicit pointers नहीं होते।
- C और C++ में memory manually manage होती है।
- Java में Garbage Collector memory automatically manage करता है।
- C++ multiple inheritance classes द्वारा support करता है।
- Java multiple inheritance interfaces द्वारा support करता है।
- Java bytecode और JVM का use करती है।
13. Practice Questions
Short Answer Questions
- Java को platform-independent क्यों कहा जाता है?
- C और Java में कोई तीन differences लिखिए।
- C++ और Java में कोई चार differences लिखिए।
- Java में pointers क्यों नहीं होते?
- Garbage Collector क्या है?
Long Answer Question
C, C++ और Java में अंतर समझाइए।
14. Homework Program
एक Java program लिखिए जो आपका नाम, course और semester print करे।
Hint
class Student {
public static void main(String[] args) {
System.out.println("Name: Your Name");
System.out.println("Course: BCA");
System.out.println("Semester: 1st");
}
}