મુખ્ય સામગ્રી પર જાઓ
  1. સંસાધનો/
  2. અભ્યાસ સામગ્રી/
  3. ઇન્ફોર્મેશન ટેકનોલોજી એન્જિનિયરિંગ/
  4. આઈટી સેમેસ્ટર 4/
  5. જાવા સાથે ઓબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ (4341602)/

ઓબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ વિથ જાવા (4341602) - વિન્ટર 2024 સોલ્યુશન

·
Study-Material Solutions Java Oop 4341602 2024 Winter
મિલવ ડબગર
લેખક
મિલવ ડબગર
ઇલેક્ટ્રિકલ અને ઇલેક્ટ્રોનિક મેન્યુફેક્ચરિંગ ઉદ્યોગમાં અનુભવી લેક્ચરર. એમ્બેડેડ સિસ્ટમ્સ, ઈમેજ પ્રોસેસિંગ, ડેટા સાયન્સ, મેટલેબ, પાયથન, STM32માં કુશળ. એલ.ડી. કોલેજ ઓફ એન્જિનિયરિંગ - અમદાવાદથી કમ્યુનિકેશન સિસ્ટમ્સ એન્જિનિયરિંગમાં માસ્ટર્સ ડિગ્રી ધરાવતા મજબૂત શિક્ષણ વ્યાવસાયિક.
અનુક્રમણિકા

પ્રશ્ન 1(અ) [3 ગુણ]
#

OOP અને POP વચ્ચેનો તફાવત લખો.

જવાબ:

પાસાંOOPPOP
અભિગમબોટમ-અપ અભિગમટોપ-ડાઉન અભિગમ
ફોકસઓબ્જેક્ટ અને ક્લાસફંક્શન અને પ્રોસીજર
ડેટા સિક્યોરિટીએન્કેપ્સુલેશન દ્વારા ડેટા હાઇડિંગડેટા હાઇડિંગ નથી
પ્રોબ્લેમ સોલ્વિંગસમસ્યાને ઓબ્જેક્ટમાં વિભાજિત કરોસમસ્યાને ફંક્શનમાં વિભાજિત કરો

મેમરી ટ્રીક: “ઓબ્જેક્ટ બોટમ, પ્રોસીજર ટોપ”

પ્રશ્ન 1(બ) [4 ગુણ]
#

બાઇટ કોડ શું છે? JVM ને વિગતવાર સમજાવો.

જવાબ:

બાઇટ કોડ: Java compiler દ્વારા સોર્સ કોડમાંથી જનરેટ થતો પ્લેટફોર્મ-ઇન્ડિપેન્ડન્ટ ઇન્ટરમીડિયેટ કોડ.

graph LR
    A[Java Source Code] --> B[Java Compiler javac]
    B --> C[Byte Code .class]
    C --> D[JVM]
    D --> E[Machine Code]

JVM કોમ્પોનન્ટ્સ:

  • Class Loader: .class ફાઇલોને મેમરીમાં લોડ કરે છે
  • Memory Area: Heap, stack, method area સ્ટોરેજ
  • Execution Engine: બાઇટકોડને ઇન્ટરપ્રેટ અને એક્ઝિક્યુટ કરે છે
  • Garbage Collector: ઓટોમેટિક મેમરી મેનેજમેન્ટ

મેમરી ટ્રીક: “બાઇટ કોડ દરેક જગ્યાએ ચાલે છે”

પ્રશ્ન 1(ક) [7 ગુણ]
#

એરેના એલિમેન્ટ્સને ચડતા ક્રમમાં સૉર્ટ કરવા માટે જાવામાં પ્રોગ્રામ લખો

જવાબ:

import java.util.Arrays;

public class ArraySort {
    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        
        // Bubble Sort
        for(int i = 0; i < arr.length-1; i++) {
            for(int j = 0; j < arr.length-i-1; j++) {
                if(arr[j] > arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        
        System.out.println("Sorted array: " + Arrays.toString(arr));
    }
}

મુખ્ય મુદ્દાઓ:

  • Bubble Sort: બાજુના એલિમેન્ટ્સની તુલના કરે છે
  • Time Complexity: O(n²)
  • Space Complexity: O(1)

મેમરી ટ્રીક: “બબલ અપ ધ સ્મોલેસ્ટ”

પ્રશ્ન 1(ક OR) [7 ગુણ]
#

કમાન્ડ લાઇન આર્ગ્યુમેન્ટ્સનો ઉપયોગ કરીને કોઈપણ દસ સંખ્યાઓમાંથી મહત્તમ શોધવા માટે જાવામાં પ્રોગ્રામ લખો.

જવાબ:

public class FindMaximum {
    public static void main(String[] args) {
        if(args.length != 10) {
            System.out.println("કૃપા કરીને બરાબર 10 સંખ્યાઓ દાખલ કરો");
            return;
        }
        
        int max = Integer.parseInt(args[0]);
        
        for(int i = 1; i < args.length; i++) {
            int num = Integer.parseInt(args[i]);
            if(num > max) {
                max = num;
            }
        }
        
        System.out.println("મહત્તમ સંખ્યા: " + max);
    }
}

મુખ્ય મુદ્દાઓ:

  • Command Line: args[] array આર્ગ્યુમેન્ટ્સ સ્ટોર કરે છે
  • parseInt(): સ્ટ્રિંગને ઇન્ટિજરમાં કન્વર્ટ કરે છે
  • Validation: Array length ચેક કરો

મેમરી ટ્રીક: “આર્ગ્યુમેન્ટ્સ મેક્સિમમ સર્ચ”

પ્રશ્ન 2(અ) [3 ગુણ]
#

Wrapper ક્લાસ શું છે? ઉદાહરણ સાથે સમજાવો.

જવાબ:

Wrapper Class: પ્રિમિટિવ ડેટા ટાઇપ્સને ઓબ્જેક્ટમાં કન્વર્ટ કરે છે.

PrimitiveWrapper Class
intInteger
charCharacter
booleanBoolean
doubleDouble
// Boxing
Integer obj = Integer.valueOf(10);
// Unboxing  
int value = obj.intValue();

મેમરી ટ્રીક: “પ્રિમિટિવ્સને ઓબ્જેક્ટમાં લપેટો”

પ્રશ્ન 2(બ) [4 ગુણ]
#

જાવાના વિવિધ લક્ષણોની યાદી આપો. કોઈપણ બે સમજાવો.

જવાબ:

Java Features:

  • Simple: સરળ syntax, pointers નથી
  • Platform Independent: એકવાર લખો, દરેક જગ્યાએ ચલાવો
  • Object Oriented: ઓબ્જેક્ટ અને ક્લાસ પર આધારિત
  • Secure: explicit pointers નથી, bytecode verification

વિગતવાર સમજૂતી:

  • Platform Independence: Java bytecode JVM વાળા કોઈપણ પ્લેટફોર્મ પર ચાલે છે
  • Object Oriented: inheritance, encapsulation, polymorphism, abstraction સપોર્ટ કરે છે

મેમરી ટ્રીક: “સિમ્પલ પ્લેટફોર્મ ઓબ્જેક્ટ સિક્યોરિટી”

પ્રશ્ન 2(ક) [7 ગુણ]
#

ઓવરરાઇડિંગ પદ્ધતિ શું છે? ઉદાહરણ સાથે સમજાવો.

જવાબ:

Method Overriding: ચાઇલ્ડ ક્લાસ પેરન્ટ ક્લાસની મેથડનું વિશિષ્ટ implementation પ્રદાન કરે છે.

class Animal {
    public void sound() {
        System.out.println("પ્રાણી અવાજ કરે છે");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("કૂતરો ભસે છે");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.sound(); // આઉટપુટ: કૂતરો ભસે છે
    }
}

મુખ્ય મુદ્દાઓ:

  • Runtime Polymorphism: ઓબ્જેક્ટ ટાઇપના આધારે મેથડ કોલ થાય છે
  • @Override: મેથડ ઓવરરાઇડિંગ માટે annotation
  • Dynamic Binding: રનટાઇમ પર મેથડ રિઝોલ્યુશન

મેમરી ટ્રીક: “ચાઇલ્ડ પેરન્ટ મેથડ બદલે છે”

પ્રશ્ન 2(અ OR) [3 ગુણ]
#

જાવામાં Garbage collection સમજાવો.

જવાબ:

Garbage Collection: ઓટોમેટિક મેમરી મેનેજમેન્ટ જે અનુપયોગી ઓબ્જેક્ટ્સને દૂર કરે છે.

graph TD
    A[Object Created] --> B[Object Used]
    B --> C[Object Unreferenced]
    C --> D[Garbage Collector]
    D --> E[Memory Freed]

મુખ્ય મુદ્દાઓ:

  • Automatic: મેન્યુઅલ મેમરી deallocation નથી
  • Mark and Sweep: અનુપયોગી ઓબ્જેક્ટ્સને ઓળખે અને દૂર કરે છે
  • Heap Memory: heap memory area પર કામ કરે છે

મેમરી ટ્રીક: “ઓટો ક્લીન અનયુઝ્ડ ઓબ્જેક્ટ્સ”

પ્રશ્ન 2(બ OR) [4 ગુણ]
#

static કીવર્ડ ઉદાહરણ સાથે સમજાવો.

જવાબ:

Static Keyword: ઇન્સ્ટન્સને બદલે ક્લાસનું છે.

class Student {
    static String college = "GTU";  // Static variable
    String name;
    
    static void showCollege() {     // Static method
        System.out.println("કૉલેજ: " + college);
    }
}

Static Features:

  • Memory: ક્લાસ લોડિંગ ટાઇમે લોડ થાય છે
  • Access: ઓબ્જેક્ટ વિના એક્સેસ કરી શકાય છે
  • Sharing: બધા instances વચ્ચે શેર થાય છે

મેમરી ટ્રીક: “ક્લાસ લેવલ મેમરી શેરિંગ”

પ્રશ્ન 2(ક OR) [7 ગુણ]
#

કન્સ્ટ્રક્ટર શું છે? કોપી કન્સ્ટ્રક્ટરને ઉદાહરણ સાથે સમજાવો.

જવાબ:

Constructor: ઓબ્જેક્ટ્સને initialize કરવા માટેની વિશેષ મેથડ.

class Person {
    String name;
    int age;
    
    // Default constructor
    Person() {
        name = "અજ્ઞાત";
        age = 0;
    }
    
    // Parameterized constructor
    Person(String n, int a) {
        name = n;
        age = a;
    }
    
    // Copy constructor
    Person(Person p) {
        name = p.name;
        age = p.age;
    }
}

Constructor Types:

  • Default: કોઈ પેરામીટર નથી
  • Parameterized: પેરામીટર લે છે
  • Copy: અસ્તિત્વમાં રહેલા ઓબ્જેક્ટમાંથી ઓબ્જેક્ટ બનાવે છે

મેમરી ટ્રીક: “ડિફોલ્ટ પેરામીટર કોપી”

પ્રશ્ન 3(અ) [3 ગુણ]
#

super કીવર્ડ ઉદાહરણ સાથે સમજાવો.

જવાબ:

Super Keyword: પેરન્ટ ક્લાસના સભ્યોનો સંદર્ભ આપે છે.

class Vehicle {
    String brand = "જેનેરિક";
}

class Car extends Vehicle {
    String brand = "ટોયોટા";
    
    void display() {
        System.out.println("ચાઇલ્ડ: " + brand);
        System.out.println("પેરન્ટ: " + super.brand);
    }
}

Super Uses:

  • Variables: પેરન્ટ ક્લાસના variables એક્સેસ કરો
  • Methods: પેરન્ટ ક્લાસની methods કૉલ કરો
  • Constructor: પેરન્ટ ક્લાસના constructor કૉલ કરો

મેમરી ટ્રીક: “સુપર પેરન્ટને કૉલ કરે છે”

પ્રશ્ન 3(બ) [4 ગુણ]
#

inheritance ના વિવિધ પ્રકારોની યાદી આપો. multilevel inheritance સમજાવો.

જવાબ:

Inheritance Types:

Typeવર્ણન
Singleએક પેરન્ટ, એક ચાઇલ્ડ
Multilevelinheritance ની ચેઇન
Hierarchicalએક પેરન્ટ, બહુવિધ ચિલ્ડ્રન
Multipleબહુવિધ પેરન્ટ્સ (interfaces દ્વારા)

Multilevel Inheritance:

class Animal {
    void eat() { System.out.println("ખાવું"); }
}

class Mammal extends Animal {
    void breathe() { System.out.println("શ્વાસ લેવો"); }
}

class Dog extends Mammal {
    void bark() { System.out.println("ભસવું"); }
}

મેમરી ટ્રીક: “સિંગલ મલ્ટી હાયરાર્કિકલ મલ્ટિપલ”

પ્રશ્ન 3(ક) [7 ગુણ]
#

ઇન્ટરફેસ શું છે? ઉદાહરણ સાથે multiple inheritance સમજાવો.

જવાબ:

Interface: કોન્ટ્રાક્ટ જે ક્લાસે શું કરવું જોઈએ તે વ્યાખ્યાયિત કરે છે, કેવી રીતે નહીં.

interface Flyable {
    void fly();
}

interface Swimmable {
    void swim();
}

class Duck implements Flyable, Swimmable {
    public void fly() {
        System.out.println("બતક ઉડી રહી છે");
    }
    
    public void swim() {
        System.out.println("બતક તરી રહી છે");
    }
}

Interface Features:

  • Multiple Inheritance: ક્લાસ બહુવિધ interfaces implement કરી શકે છે
  • Abstract Methods: બધી methods ડિફોલ્ટ રૂપે abstract છે
  • Constants: બધા variables public, static, final છે

મેમરી ટ્રીક: “મલ્ટિપલ એબ્સ્ટ્રાક્ટ કોન્સ્ટન્ટ્સ”

પ્રશ્ન 3(અ OR) [3 ગુણ]
#

final કીવર્ડ ઉદાહરણ સાથે સમજાવો.

જવાબ:

Final Keyword: modification, inheritance, અથવા overriding પ્રતિબંધિત કરે છે.

final class Math {           // inherit કરી શકાતું નથી
    final int PI = 3.14;     // modify કરી શકાતું નથી
    
    final void calculate() { // override કરી શકાતું નથી
        System.out.println("ગણતરી કરી રહ્યું છું");
    }
}

Final Uses:

  • Class: extend કરી શકાતું નથી
  • Method: override કરી શકાતું નથી
  • Variable: reassign કરી શકાતું નથી

મેમરી ટ્રીક: “ફાઇનલ ફેરફાર અટકાવે છે”

પ્રશ્ન 3(બ OR) [4 ગુણ]
#

જાવામાં વિવિધ એક્સેસ કંટ્રોલ સમજાવો.

જવાબ:

Access Modifiers:

Modifierસેમ ક્લાસસેમ પેકેજસબક્લાસડિફરન્ટ પેકેજ
public
protected
default
private

મેમરી ટ્રીક: “પબ્લિક પ્રોટેક્ટેડ ડિફોલ્ટ પ્રાઇવેટ”

પ્રશ્ન 3(ક OR) [7 ગુણ]
#

પેકેજ શું છે? પેકેજ બનાવવાના પગલાં લખો અને તેનું ઉદાહરણ આપો.

જવાબ:

Package: સંબંધિત ક્લાસ અને interfaces નું જૂથ.

પેકેજ બનાવવાના પગલાં:

  1. Declare: ટોપ પર package statement વાપરો
  2. Compile: javac -d . ClassName.java
  3. Run: java packagename.ClassName
// File: mypack/Calculator.java
package mypack;

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

// File: Test.java
import mypack.Calculator;

public class Test {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        System.out.println(calc.add(5, 3));
    }
}

Package Benefits:

  • Organization: સંબંધિત ક્લાસોને જૂથ કરે છે
  • Access Control: પેકેજ-લેવલ પ્રોટેક્શન
  • Namespace: નામિંગ કન્ફ્લિક્ટ ટાળે છે

મેમરી ટ્રીક: “ડિક્લેર કમ્પાઇલ રન”

પ્રશ્ન 4(અ) [3 ગુણ]
#

યોગ્ય ઉદાહરણ સાથે thread ની પ્રાથમિકતાઓ સમજાવો.

જવાબ:

Thread Priority: thread execution order નક્કી કરે છે (1-10 સ્કેલ).

class MyThread extends Thread {
    public void run() {
        System.out.println(getName() + " પ્રાથમિકતા: " + getPriority());
    }
}

public class ThreadPriorityExample {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        MyThread t2 = new MyThread();
        
        t1.setPriority(Thread.MIN_PRIORITY);  // 1
        t2.setPriority(Thread.MAX_PRIORITY);  // 10
        
        t1.start();
        t2.start();
    }
}

Priority Constants:

  • MIN_PRIORITY: 1
  • NORM_PRIORITY: 5
  • MAX_PRIORITY: 10

મેમરી ટ્રીક: “મિન નોર્મલ મેક્સ”

પ્રશ્ન 4(બ) [4 ગુણ]
#

થ્રેડ શું છે? થ્રેડ જીવન ચક્ર સમજાવો.

જવાબ:

Thread: concurrent execution માટે lightweight process.

stateDiagram-v2
    [*] --> New
    New --> Runnable: start()
    Runnable --> Running: CPU allocation
    Running --> Blocked: wait(), sleep()
    Blocked --> Runnable: notify(), timeout
    Running --> Dead: complete

Thread States:

  • New: Thread બનાવ્યું પણ શરૂ થયું નથી
  • Runnable: ચાલવા માટે તૈયાર
  • Running: હાલમાં execute થઈ રહ્યું છે
  • Blocked: resource માટે રાહ જોઈ રહ્યું છે
  • Dead: execution પૂર્ણ થયું

મેમરી ટ્રીક: “ન્યૂ રનેબલ રનિંગ બ્લોક્ડ ડેડ”

પ્રશ્ન 4(ક) [7 ગુણ]
#

જાવામાં એક પ્રોગ્રામ લખો જે રનેબલ ઇન્ટરફેસનો અમલ કરીને બહુવિધ થ્રેડો બનાવે છે.

જવાબ:

class MyRunnable implements Runnable {
    private String threadName;
    
    MyRunnable(String name) {
        threadName = name;
    }
    
    public void run() {
        for(int i = 1; i <= 5; i++) {
            System.out.println(threadName + " - ગણતરી: " + i);
            try {
                Thread.sleep(1000);
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class MultipleThreads {
    public static void main(String[] args) {
        Thread t1 = new Thread(new MyRunnable("થ્રેડ-1"));
        Thread t2 = new Thread(new MyRunnable("થ્રેડ-2"));
        Thread t3 = new Thread(new MyRunnable("થ્રેડ-3"));
        
        t1.start();
        t2.start(); 
        t3.start();
    }
}

મુખ્ય મુદ્દાઓ:

  • Runnable Interface: Thread ક્લાસ extend કરવા કરતાં સારું છે
  • Thread.sleep(): thread execution pause કરે છે
  • Multiple Threads: એકસાથે concurrent ચાલે છે

મેમરી ટ્રીક: “ઇમ્પ્લિમેન્ટ રનેબલ સ્ટાર્ટ મલ્ટિપલ”

પ્રશ્ન 4(અ OR) [3 ગુણ]
#

ચાર અલગ-અલગ ઇનબિલ્ટ exception ની યાદી આપો. કોઈપણ એક ઇનબિલ્ટ exception સમજાવો.

જવાબ:

Inbuilt Exceptions:

  • NullPointerException: null object એક્સેસ કરવું
  • ArrayIndexOutOfBoundsException: અમાન્ય array index
  • ArithmeticException: શૂન્યથી ભાગાકાર
  • NumberFormatException: અમાન્ય સંખ્યા ફોર્મેટ

ArithmeticException: arithmetic operation નિષ્ફળ થાય ત્યારે throw થાય છે.

int result = 10 / 0; // ArithmeticException throw કરે છે

મેમરી ટ્રીક: “નલ એરે એરિથમેટિક નંબર”

પ્રશ્ન 4(બ OR) [4 ગુણ]
#

યોગ્ય ઉદાહરણ સાથે ટ્રાય અને કેચ સમજાવો.

જવાબ:

Try-Catch: Exception handling મેકેનિઝમ.

public class TryCatchExample {
    public static void main(String[] args) {
        try {
            int[] arr = {1, 2, 3};
            System.out.println(arr[5]); // Index out of bounds
        }
        catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("Array index એરર: " + e.getMessage());
        }
        finally {
            System.out.println("હંમેશા execute થાય છે");
        }
    }
}

Exception Handling Flow:

  • Try: કોડ જે exception throw કરી શકે છે
  • Catch: વિશિષ્ટ exceptions handle કરે છે
  • Finally: હંમેશા execute થાય છે

મેમરી ટ્રીક: “ટ્રાય કેચ ફાઇનલી”

પ્રશ્ન 4(ક OR) [7 ગુણ]
#

Exception શું છે? Arithmetic Exception નો ઉપયોગ દશાવતો પ્રોગ્રામ લખો.

જવાબ:

Exception: runtime error જે સામાન્ય પ્રોગ્રામ flow ને વિક્ષેપ કરે છે.

import java.util.Scanner;

public class ArithmeticExceptionExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        try {
            System.out.print("પ્રથમ સંખ્યા દાખલ કરો: ");
            int num1 = sc.nextInt();
            
            System.out.print("બીજી સંખ્યા દાખલ કરો: ");
            int num2 = sc.nextInt();
            
            int result = num1 / num2;
            System.out.println("પરિણામ: " + result);
        }
        catch(ArithmeticException e) {
            System.out.println("એરર: શૂન્યથી ભાગાકાર કરી શકાતો નથી!");
        }
        catch(Exception e) {
            System.out.println("સામાન્ય એરર: " + e.getMessage());
        }
        finally {
            sc.close();
        }
    }
}

Exception Types:

  • Checked: કમ્પાઇલ-ટાઇમ exceptions
  • Unchecked: રનટાઇમ exceptions
  • Error: સિસ્ટમ-લેવલ પ્રોબ્લેમ્સ

મેમરી ટ્રીક: “રનટાઇમ એરર ફ્લો ડિસરપ્ટ કરે છે”

પ્રશ્ન 5(અ) [3 ગુણ]
#

JavaમાંArrayIndexOutOfBound અપવાદને ઉદાહરણ સાથે સમજાવો.

જવાબ:

ArrayIndexOutOfBoundsException: અમાન્ય array index એક્સેસ કરતી વખતે throw થાય છે.

public class ArrayIndexExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30};
        
        try {
            System.out.println(numbers[5]); // અમાન્ય index
        }
        catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("અમાન્ય array index: " + e.getMessage());
        }
    }
}

મુખ્ય મુદ્દાઓ:

  • Valid Range: 0 થી array.length-1
  • Negative Index: નકારાત્મક index પણ exception throw કરે છે
  • Runtime Exception: unchecked exception

મેમરી ટ્રીક: “એરે ઇન્ડેક્સ રેન્જ ચેક”

પ્રશ્ન 5(બ) [4 ગુણ]
#

stream classes ની મૂળભૂત બાબતો સમજાવો.

જવાબ:

Stream Classes: input/output operations handle કરે છે.

Stream TypeClasses
Byte StreamsInputStream, OutputStream
Character StreamsReader, Writer
File StreamsFileInputStream, FileOutputStream
Buffered StreamsBufferedReader, BufferedWriter
graph TD
    A[Stream Classes] --> B[Byte Streams]
    A --> C[Character Streams]
    B --> D[InputStream]
    B --> E[OutputStream]
    C --> F[Reader]
    C --> G[Writer]

Stream Features:

  • Sequential: ડેટા sequence માં flow કરે છે
  • One Direction: કાં તો input કાં output
  • Automatic: નીચલા સ્તરની વિગતો handle કરે છે

મેમરી ટ્રીક: “બાઇટ કેરેક્ટર ફાઇલ બફર્ડ”

પ્રશ્ન 5(ક) [7 ગુણ]
#

ટેક્સ્ટ ફાઇલ બનાવવા માટે જાવા પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર રીડ ઑપરેશન કરો.

જવાબ:

import java.io.*;

public class FileReadExample {
    public static void main(String[] args) {
        // ફાઇલ બનાવો અને લખો
        try {
            FileWriter writer = new FileWriter("sample.txt");
            writer.write("હેલો વર્લ્ડ!\n");
            writer.write("જાવા ફાઇલ હેન્ડલિંગ\n");
            writer.write("GTU પરીક્ષા 2024");
            writer.close();
            System.out.println("ફાઇલ સફળતાપૂર્વક બનાવાઈ");
        }
        catch(IOException e) {
            System.out.println("ફાઇલ બનાવવામાં એરર: " + e.getMessage());
        }
        
        // ફાઇલમાંથી વાંચો
        try {
            BufferedReader reader = new BufferedReader(new FileReader("sample.txt"));
            String line;
            
            System.out.println("\nફાઇલની વિગતો:");
            while((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            reader.close();
        }
        catch(IOException e) {
            System.out.println("ફાઇલ વાંચવામાં એરર: " + e.getMessage());
        }
    }
}

મુખ્ય મુદ્દાઓ:

  • FileWriter: ફાઇલ બનાવે અને લખે છે
  • BufferedReader: કાર્યક્ષમ વાંચન
  • Exception Handling: IOException handle કરો

મેમરી ટ્રીક: “બનાવો લખો વાંચો બંધ કરો”

પ્રશ્ન 5(અ OR) [3 ગુણ]
#

Java માં Divide by Zero Exception ને ઉદાહરણ સાથે સમજાવો.

જવાબ:

ArithmeticException: શૂન્યથી ભાગાકાર ઑપરેશન દરમિયાન throw થાય છે.

public class DivideByZeroExample {
    public static void main(String[] args) {
        try {
            int a = 10;
            int b = 0;
            int result = a / b;  // ArithmeticException throw કરે છે
            System.out.println("પરિણામ: " + result);
        }
        catch(ArithmeticException e) {
            System.out.println("શૂન્યથી ભાગાકાર કરી શકાતો નથી: " + e.getMessage());
        }
    }
}

મુખ્ય મુદ્દાઓ:

  • Integer Division: માત્ર integer division by zero exception throw કરે છે
  • Floating Point: floating point division માટે Infinity return કરે છે
  • Runtime Exception: unchecked exception

મેમરી ટ્રીક: “શૂન્ય ભાગાકાર એરિથમેટિક એરર”

પ્રશ્ન 5(બ OR) [4 ગુણ]
#

java I/O પ્રક્રિયા સમજાવો.

જવાબ:

Java I/O Process: ડેટા વાંચવા અને લખવાની પદ્ધતિ.

graph LR
    A[Data Source] --> B[Input Stream]
    B --> C[Java Program]
    C --> D[Output Stream]
    D --> E[Data Destination]

I/O Components:

  • Stream: ડેટાનો ક્રમ
  • Buffer: કાર્યક્ષમતા માટે અસ્થાયી સ્ટોરેજ
  • File: સ્થાયી સ્ટોરેજ
  • Network: દૂરસ્થ ડેટા ટ્રાન્સફર

I/O Types:

  • Byte-oriented: કાચો ડેટા (images, videos)
  • Character-oriented: ટેક્સ્ટ ડેટા
  • Synchronous: blocking operations
  • Asynchronous: non-blocking operations

મેમરી ટ્રીક: “સ્ટ્રીમ બફર ફાઇલ નેટવર્ક”

પ્રશ્ન 5(ક OR) [7 ગુણ]
#

ટેક્સ્ટ ફાઇલ બનાવવા માટે જાવા પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર રાઇટ ઑપરેશન કરો.

જવાબ:

import java.io.*;
import java.util.Scanner;

public class FileWriteExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        try {
            // FileWriter સાથે ફાઇલ બનાવો
            FileWriter writer = new FileWriter("student.txt");
            
            System.out.println("વિદ્યાર્થીની વિગતો દાખલ કરો:");
            System.out.print("નામ: ");
            String name = sc.nextLine();
            
            System.out.print("રોલ નંબર: ");
            String rollNo = sc.nextLine();
            
            System.out.print("શાખા: ");
            String branch = sc.nextLine();
            
            // ફાઇલમાં ડેટા લખો
            writer.write("વિદ્યાર્થીની માહિતી\n");
            writer.write("==================\n");
            writer.write("નામ: " + name + "\n");
            writer.write("રોલ નંબર: " + rollNo + "\n");
            writer.write("શાખા: " + branch + "\n");
            writer.write("તારીખ: " + new java.util.Date() + "\n");
            
            writer.close();
            System.out.println("\nડેટા સફળતાપૂર્વક ફાઇલમાં લખાયો!");
            
        }
        catch(IOException e) {
            System.out.println("ફાઇલમાં લખવામાં એરર: " + e.getMessage());
        }
        finally {
            sc.close();
        }
    }
}

મુખ્ય મુદ્દાઓ:

  • FileWriter: ફાઇલમાં character data લખે છે
  • BufferedWriter: મોટા ડેટા માટે વધુ કાર્યક્ષમ
  • Auto-close: automatic closing માટે try-with-resources વાપરો

મેમરી ટ્રીક: “બનાવો લખો બંધ કરો હેન્ડલ કરો”

સંબંધિત

Object Oriented Programming with Java (4341602) - Summer 2024 Solution (Gujarati)
Study-Material Solutions Java Oop 4341602 2024 Summer Gujarati
Object Oriented Programming with Java (4341602) - Winter 2023 Solution (Gujarati)
Study-Material Solutions Java Oop 4341602 2023 Winter Gujarati
ડિજિટલ અને ડેટા કોમ્યુનિકેશન (4343201) - વિન્ટર 2024 સોલ્યુશન
25 મિનિટ
Study-Material Solutions Digital-Communication 4343201 2024 Winter
ડિજિટલ કોમ્યુનિકેશન (4341102) - વિન્ટર 2024 સોલ્યુશન
23 મિનિટ
Study-Material Solutions Digital-Communication 4341102 2024 Winter
Mobile Computing and Networks (4351602) - Winter 2024 Solution Gujarati
Study-Material Solutions Mobile-Computing 4351602 2024 Winter Gujarati
ઓઓપીએસ અને પાયથોન પ્રોગ્રામિંગ (4351108) - શિયાળુ 2024 સોલ્યુશન
Study-Material Solutions Python Oops 4351108 2024 Winter Gujarati