How Java Differs from C and C++

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

BasisCC++Java
Programming ApproachProcedure-orientedObject-orientedObject-oriented
Platform DependencyPlatform-dependentPlatform-dependentPlatform-independent
PointerPointers supportedPointers supportedExplicit pointers not supported
Memory ManagementManualManualAutomatic by Garbage Collector
Multiple InheritanceNot supportedSupported using classesSupported using interfaces
SecurityLess secureLess secureMore secure
CompilationSource code to machine codeSource code to machine codeSource code to bytecode
ExecutionDirect executionDirect executionJVM executes bytecode
Header FilesUsedUsedNot used
PreprocessorUsedUsedNot used
Operator OverloadingNot supportedSupportedNot supported
Global VariablesSupportedSupportedNot 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

  1. Java को platform-independent क्यों कहा जाता है?
  2. C और Java में कोई तीन differences लिखिए।
  3. C++ और Java में कोई चार differences लिखिए।
  4. Java में pointers क्यों नहीं होते?
  5. 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");
    }
}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top