Object Oriented Programming with Java (4341602) - Summer 2024 Solution (Gujarati)
Object Oriented Programming with Java (4341602) Summer 2024 પરીક્ષા માટે સોલ્યુશન ગાઇડ
પ્રશ્ન 1(અ) [3 ગુણ]
Java program નો બેસિક સ્ટ્રક્ચર સમજાવો.
જવાબ:
મૂળભૂત માળખું કોષ્ટક:
| ઘટક | વર્ણન |
|---|---|
| Package declaration | વૈકલ્પિક, package સભ્યપદ દર્શાવે છે |
| Import statements | જરૂરી classes/packages આયાત કરે છે |
| Class declaration | મુખ્ય class વ્યાખ્યા |
| Main method | પ્રવેશ બિંદુ: public static void main(String[] args) |
આકૃતિ:
goat
- Package: સંબંધિત classes ને જૂથબદ્ધ કરે છે
- Import: બાહ્ય classes ને access કરે છે
- Class: objects માટે blueprint
- Main method: પ્રોગ્રામ execution અહીંથી શરૂ થાય છે
મેમરી ટ્રીક: "PICM - Package, Import, Class, Main"
પ્રશ્ન 1(બ) [4 ગુણ]
જાવાના વિવિધ લક્ષણોની યાદી આપો. કોઈપણ બે લક્ષણો સમજાવો.
જવાબ:
Java ના લક્ષણો કોષ્ટક:
| લક્ષણ | વર્ણન |
|---|---|
| Platform Independent | એક વાર લખો, બધે ચલાવો |
| Object Oriented | બધું object છે |
| Simple | સરળ syntax, pointers નથી |
| Secure | built-in સુરક્ષા લક્ષણો |
| Robust | મજબૂત memory management |
| Multithreaded | concurrent execution આધાર |
વિગતવાર સમજાવટ:
Platform Independence:
- Java કોડ bytecode માં compile થાય છે
- JVM કોઈપણ platform પર bytecode interpret કરે છે
- એ જ પ્રોગ્રામ Windows, Linux, Mac પર ચાલે છે
Object Oriented:
- Encapsulation: classes માં data hiding
- Inheritance: extends દ્વારા કોડ પુનઃઉપયોગ
- Polymorphism: એક જ method, અલગ વર્તન
મેમરી ટ્રીક: "POSRMM - Platform, Object, Simple, Robust, Multithreaded, Memory"
પ્રશ્ન 1(ક) [7 ગુણ]
દાખલ કરેલ નંબરના અંકોનો સરવાળો શોધવા માટે Java માં પ્રોગ્રામ લખો. (ઉદા. સંખ્યા 123 આઉટપુટ 6 છે).
જવાબ:
Java
Algorithm કોષ્ટક:
| પગલું | ક્રિયા | ઉદાહરણ (123) |
|---|---|---|
| 1 | છેલ્લો અંક કાઢો (n%10) | 123%10 = 3 |
| 2 | સરવાળામાં ઉમેરો | sum = 0+3 = 3 |
| 3 | છેલ્લો અંક હટાવો (n/10) | 123/10 = 12 |
| 4 | n=0 સુધી પુનરાવર્તન | ચાલુ રાખો |
- Input: Command line argument
- Process: modulo વાપરીને અંકો કાઢો
- Output: બધા અંકોનો સરવાળો
મેમરી ટ્રીક: "EARD - Extract, Add, Remove, Done"
પ્રશ્ન 1(ક OR) [7 ગુણ]
Command line arguments નો ઉપયોગ કરીને કોઈપણ દસ સંખ્યાઓ માંથી maximum શોધવા માટે Java માં પ્રોગ્રામ લખો.
જવાબ:
Java
પ્રક્રિયા કોષ્ટક:
| પગલું | ક્રિયા | વિગતો |
|---|---|---|
| 1 | args તપાસો | 10 સંખ્યાઓ આપેલી છે કે કેમ |
| 2 | Max initialize કરો | પહેલી સંખ્યાને initial max બનાવો |
| 3 | Compare loop | બાકીની દરેક સંખ્યા તપાસો |
| 4 | Max update કરો | જો current > max, તો update કરો |
- Validation: argument count ચકાસો
- Comparison: સામાન્ય maximum શોધવાની પદ્ધતિ
- Output: સૌથી મોટી સંખ્યા દર્શાવો
મેમરી ટ્રીક: "VCIU - Validate, Compare, Initialize, Update"
પ્રશ્ન 2(અ) [3 ગુણ]
OOP ના Basic concept ની યાદી આપો. કોઈપણ એક વિગતવાર સમજાવો.
જવાબ:
OOP ની વિભાવનાઓ કોષ્ટક:
| વિભાવના | વર્ણન |
|---|---|
| Encapsulation | ડેટા છુપાવવું અને બાંધવું |
| Inheritance | પિતૃ class થી કોડ પુનઃઉપયોગ |
| Polymorphism | એક interface, અનેક સ્વરૂપ |
| Abstraction | Implementation વિગતો છુપાવવી |
Encapsulation વિગતો:
- ડેટા અને methods ને એક unit માં જોડે છે
- ડેટા માટે private access modifiers વાપરે છે
- Public getter/setter methods પ્રદાન કરે છે
- અનધિકૃત access થી ડેટાને સુરક્ષિત કરે છે
ફાયદાઓ:
- સુરક્ષા: ડેટા સુરક્ષા
- જાળવણી: કોડ updates સરળ
- લવચીકતા: Implementation સરળતાથી બદલી શકાય
મેમરી ટ્રીક: "EIPA - Encapsulation, Inheritance, Polymorphism, Abstraction"
પ્રશ્ન 2(બ) [4 ગુણ]
JVM ને વિગતવાર સમજાવો.
જવાબ:
JVM આર્કિટેક્ચર આકૃતિ:
JVM ઘટકો કોષ્ટક:
| ઘટક | કાર્ય |
|---|---|
| Class Loader | .class files ને memory માં લોડ કરે છે |
| Memory Areas | Heap, Stack, Method area |
| Execution Engine | Bytecode execute કરે છે |
| JIT Compiler | વારંવાર વપરાતા કોડને optimize કરે છે |
- Platform Independence: એ જ bytecode બધે ચાલે છે
- Memory Management: automatic garbage collection
- સુરક્ષા: execution પહેલાં bytecode verification
મેમરી ટ્રીક: "CEMJ - Class loader, Execution, Memory, JIT"
પ્રશ્ન 2(ક) [7 ગુણ]
Constructor overloading ઉદાહરણ સાથે સમજાવો.
જવાબ:
Java
Constructor પ્રકારો કોષ્ટક:
| Constructor | Parameters | ઉપયોગ |
|---|---|---|
| Default | કોઈ નહિ | મૂળભૂત object બનાવટ |
| Single param | માત્ર નામ | આંશિક initialization |
| Two param | નામ, ઉંમર | વધુ નિર્દિષ્ટ ડેટા |
| Full param | બધા fields | સંપૂર્ણ initialization |
- એ જ નામ: બધા constructors ને class નામ છે
- અલગ parameters: સંખ્યા અથવા પ્રકાર અલગ છે
- Compile-time: compilation દરમિયાન નિર્ણય
મેમરી ટ્રીક: "SNDF - Same Name, Different Parameters, Flexible"
પ્રશ્ન 2(અ OR) [3 ગુણ]
Wrapper class શું છે? ઉદાહરણ સાથે સમજાવો.
જવાબ:
Wrapper Classes કોષ્ટક:
| Primitive | Wrapper Class |
|---|---|
| byte | Byte |
| int | Integer |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
ઉદાહરણ:
Java
- Boxing: primitive ને wrapper object માં convert કરવું
- Unboxing: wrapper માંથી primitive કાઢવું
- Collections: collections માં માત્ર objects જ સ્વીકાર્ય છે
મેમરી ટ્રીક: "BUC - Boxing, Unboxing, Collections"
પ્રશ્ન 2(બ OR) [4 ગુણ]
Static કીવર્ડ ઉદાહરણ સાથે સમજાવો.
જવાબ:
Java
Static લક્ષણો કોષ્ટક:
| લક્ષણ | લાક્ષણિકતાઓ |
|---|---|
| Static Variable | બધા instances વચ્ચે શેર થાય છે |
| Static Method | Object બનાવ્યા વિના કૉલ કરી શકાય |
| Static Block | Class લોડ થાય ત્યારે એક વાર execute થાય |
| Memory | Method area માં સંગ્રહિત |
- Class level: instance નહિ, class નું છે
- Memory efficiency: બધા objects માટે એક જ copy
- Access: class નામ વાપરીને access કરો
મેમરી ટ્રીક: "SCMA - Shared, Class-level, Memory, Access"
પ્રશ્ન 2(ક OR) [7 ગુણ]
Constructor શું છે? Copy constructor ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
Constructor વ્યાખ્યા: Constructor એ એક વિશેષ method છે જે objects બનાવાયા ત્યારે તેમને initialize કરે છે.
Java
Constructor પ્રકારો કોષ્ટક:
| પ્રકાર | હેતુ | Parameters |
|---|---|---|
| Default | મૂળભૂત initialization | કોઈ નહિ |
| Parameterized | કસ્ટમ initialization | User-defined |
| Copy | હાલના object ની નકલ | Same class object |
- એ જ નામ: Constructor નામ = class નામ
- કોઈ return type નહિ: void પણ નહિ
- Automatic કૉલ: Object બનાવાય ત્યારે કૉલ થાય
મેમરી ટ્રીક: "SNAC - Same Name, Automatic Call"
પ્રશ્ન 3(અ) [3 ગુણ]
Java માં કોઈપણ ચાર string functions ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
String Functions કોષ્ટક:
| Function | હેતુ | ઉદાહરણ |
|---|---|---|
| length() | String ની લંબાઈ આપે છે | "Hello".length() → 5 |
| charAt(index) | સ્થાને character | "Java".charAt(1) → 'a' |
| substring(start) | ભાગ કાઢે છે | "Program".substring(3) → "gram" |
| toUpperCase() | મોટા અક્ષરોમાં | "java".toUpperCase() → "JAVA" |
કોડ ઉદાહરણ:
Java
- Immutable: String objects બદલાતા નથી
- નવું return: Methods નવા string objects return કરે છે
- Zero-indexed: સ્થાનની ગણતરી 0 થી શરૂ થાય છે
મેમરી ટ્રીક: "LCST - Length, Character, Substring, Transform"
પ્રશ્ન 3(બ) [4 ગુણ]
Inheritance ના વિવિધ પ્રકારોની યાદી આપો. Multilevel inheritance સમજાવો.
જવાબ:
Inheritance પ્રકારો કોષ્ટક:
| પ્રકાર | વર્ણન |
|---|---|
| Single | એક parent, એક child |
| Multilevel | Inheritance ની શૃંખલા |
| Hierarchical | એક parent, અનેક children |
| Multiple | અનેક parents (interfaces દ્વારા) |
Multilevel Inheritance આકૃતિ:
ઉદાહરણ:
Java
- Chain inheritance: પિતામહ → પિતા → બાળક
- લક્ષણો સંચય: બાળકને બધા પૂર્વજોના લક્ષણો મળે છે
- Method access: બધા levels ના methods કૉલ કરી શકાય
મેમરી ટ્રીક: "SMHM - Single, Multilevel, Hierarchical, Multiple"
પ્રશ્ન 3(ક) [7 ગુણ]
Interface શું છે? ઉદાહરણ સાથે multiple inheritance સમજાવો.
જવાબ:
Interface વ્યાખ્યા: Interface એ એક કરાર છે જે define કરે છે કે class માં કયા methods હોવા જોઈએ, implementation આપ્યા વિના.
Java
Interface vs Class કોષ્ટક:
| લક્ષણ | Interface | Class |
|---|---|---|
| Methods | Abstract (default/static મંજૂર) | Concrete |
| Variables | public static final | કોઈપણ પ્રકાર |
| Inheritance | Multiple મંજૂર | માત્ર Single |
| Instantiation | Objects બનાવી શકાતા નથી | Objects બનાવી શકાય |
Multiple Inheritance આકૃતિ:
- કરાર: શું કરવું તે define કરે, કેવી રીતે નહિ
- Multiple implementation: એક class, ઘણા interfaces
- Diamond problem ઉકેલ: Interfaces multiple inheritance ની સમસ્યા હલ કરે છે
મેમરી ટ્રીક: "CMDS - Contract, Multiple, Diamond-solution"
પ્રશ્ન 3(અ OR) [3 ગુણ]
This કીવર્ડ ઉદાહરણ સાથે સમજાવો.
જવાબ:
'this' કીવર્ડ ઉપયોગો કોષ્ટક:
| ઉપયોગ | હેતુ |
|---|---|
| Instance variable | Parameter થી અલગ પાડવા |
| Method call | એ જ class ની બીજી method કૉલ કરવા |
| Constructor call | બીજા constructor ને કૉલ કરવા |
| Return object | વર્તમાન object reference return કરવા |
ઉદાહરણ:
Java
- વર્તમાન object: વર્તમાન instance ને refer કરે છે
- Parameter conflict: નામની અસમંજસ હલ કરે છે
- Method chaining: fluent interface સક્ષમ કરે છે
મેમરી ટ્રીક: "CRPM - Current, Resolve, Parameter, Method"
પ્રશ્ન 3(બ OR) [4 ગુણ]
Method overriding ઉદાહરણ સાથે સમજાવો.
જવાબ:
Java
Overriding નિયમો કોષ્ટક:
| નિયમ | વર્ણન |
|---|---|
| Same signature | Method નામ, parameters મેળ ખાવા જોઈએ |
| Inheritance | Parent-child સંબંધ હોવો જોઈએ |
| @Override | Compiler checking માટે annotation |
| Runtime decision | Object type પ્રમાણે method કૉલ |
ઉપયોગ:
Java
- Runtime polymorphism: Execution દરમિયાન નિર્ણય
- Same interface: અલગ classes માટે અલગ વર્તન
- Dynamic binding: Runtime પર method resolution
મેમરી ટ્રીક: "SSRD - Same Signature, Runtime Decision"
પ્રશ્ન 3(ક OR) [7 ગુણ]
Package શું છે? Package બનાવવાના પગલાં લખો અને તેનું ઉદાહરણ આપો.
જવાબ:
Package વ્યાખ્યા: Package એ namespace છે જે સંબંધિત classes અને interfaces ને organize કરે છે, access control પ્રદાન કરે છે અને naming conflicts ટાળે છે.
Package બનાવવાના પગલાં:
| પગલું | ક્રિયા | Command/Code |
|---|---|---|
| 1 | Directory બનાવો | mkdir com/company/utils |
| 2 | Package declaration ઉમેરો | package com.company.utils; |
| 3 | Class લખો | public class MathUtils |
| 4 | Compile કરો | javac -d . MathUtils.java |
| 5 | Import અને ઉપયોગ | import com.company.utils.*; |
Package Structure ઉદાહરણ:
src/
com/
company/
utils/
MathUtils.java
StringUtils.java
models/
Student.java
MathUtils.java:
Java
Package ઉપયોગ:
Java
Package ફાયદાઓ કોષ્ટક:
| ફાયદો | વર્ણન |
|---|---|
| સંગઠન | Classes નું તાર્કિક જૂથીકરણ |
| Namespace | નામની અસમંજસ ટાળે છે |
| Access control | Package-private access |
| જાળવણી | કોડની સરળ management |
મેમરી ટ્રીક: "ONAM - Organization, Namespace, Access, Maintenance"
પ્રશ્ન 4(અ) [3 ગુણ]
યોગ્ય ઉદાહરણ સાથે thread ની પ્રાથમિકતાઓ સમજાવો.
જવાબ:
Thread Priority કોષ્ટક:
| પ્રાથમિકતા સ્તર | Constant | મૂલ્ય |
|---|---|---|
| ન્યૂનતમ | MIN_PRIORITY | 1 |
| સામાન્ય | NORM_PRIORITY | 5 |
| મહત્તમ | MAX_PRIORITY | 10 |
ઉદાહરણ:
Java
- ઉચ્ચી પ્રાથમિકતા: CPU સમય મળવાની વધુ શક્યતા
- ગેરંટી નથી: JVM ખરેખર scheduling નક્કી કરે છે
- Default priority: દરેક thread NORM_PRIORITY સાથે શરૂ થાય છે
મેમરી ટ્રીક: "HNG - Higher priority, Not Guaranteed"
પ્રશ્ન 4(બ) [4 ગુણ]
Thread શું છે? Thread જીવન ચક્ર સમજાવો.
જવાબ:
Thread વ્યાખ્યા: Thread એ lightweight sub-process છે જે પ્રોગ્રામની અંદર અનેક કાર્યોના concurrent execution ની પરવાનગી આપે છે.
Thread Life Cycle આકૃતિ:
Thread સ્થિતિઓ કોષ્ટક:
| સ્થિતિ | વર્ણન |
|---|---|
| NEW | Thread બન્યો પણ શરૂ થયો નથી |
| RUNNABLE | ચાલવા તૈયાર, CPU માટે રાહ જોઈ રહ્યો |
| RUNNING | હાલમાં execute થઈ રહ્યો |
| BLOCKED/WAITING | Resource/condition માટે રાહ જોઈ રહ્યો |
| TERMINATED | Execution પૂર્ણ થયું |
સ્થિતિ પરિવર્તનો:
-
NEW → RUNNABLE: start() method કૉલ થાય
-
RUNNABLE → RUNNING: Thread scheduler CPU આપે
-
RUNNING → BLOCKED: I/O અથવા lock માટે રાહ
-
RUNNING → TERMINATED: run() method પૂર્ણ થાય
-
Concurrent execution: અનેક threads એકસાથે ચાલે છે
-
JVM managed: Thread scheduler execution control કરે છે
-
Resource sharing: Threads memory space શેર કરે છે
મેમરી ટ્રીક: "NRBT - New, Runnable, Blocked, Terminated"
પ્રશ્ન 4(ક) [7 ગુણ]
Java માં એક પ્રોગ્રામ લખો જે Thread Class અમલ કરીને બહુવિધ threads બનાવે છે.
જવાબ:
Java
Implementation પગલાં કોષ્ટક:
| પગલું | ક્રિયા |
|---|---|
| 1 | Thread class extends કરો |
| 2 | run() method override કરો |
| 3 | Thread objects બનાવો |
| 4 | start() method કૉલ કરો |
- Extends Thread: Threading capabilities inherit કરો
- Override run(): Thread ની execution logic define કરો
- start() method: Thread execution શરૂ કરો
- Concurrent execution: બધા threads એકસાથે ચાલે છે
મેમરી ટ્રીક: "EOCS - Extend, Override, Create, Start"
પ્રશ્ન 4(અ OR) [3 ગુણ]
Exception Handling ની મૂળભૂત વિભાવના સમજાવો.
જવાબ:
Exception Handling વિભાવનાઓ કોષ્ટક:
| વિભાવના | વર્ણન |
|---|---|
| Exception | Runtime error જે સામાન્ય flow ને ખલેલ પહોંચાડે |
| try block | કોડ જે exception ફેંકી શકે |
| catch block | વિશિષ્ટ exception પ્રકારો handle કરે |
| finally block | હંમેશા execute થાય, cleanup કોડ |
Exception Hierarchy:
મૂળભૂત Syntax:
Java
- Graceful handling: Exception પછી પ્રોગ્રામ ચાલુ રહે છે
- Error prevention: પ્રોગ્રામ crash ટાળે છે
- Resource cleanup: Finally block cleanup ensure કરે છે
મેમરી ટ્રીક: "TRCF - Try, Runtime error, Catch, Finally"
પ્રશ્ન 4(બ OR) [4 ગુણ]
યોગ્ય ઉદાહરણ સાથે multiple catch સમજાવો.
જવાબ:
Java
Multiple Catch નિયમો કોષ્ટક:
| નિયમ | વર્ણન |
|---|---|
| વિશિષ્ટ પહેલા | સામાન્ય પહેલા વિશિષ્ટ exceptions handle કરો |
| એક catch execute | માત્ર પહેલો મેળ ખાતો catch ચાલે |
| ક્રમ મહત્વપૂર્ણ | વધુ વિશિષ્ટ થી વધુ સામાન્ય |
| Finally હંમેશા | Finally block હંમેશા execute થાય |
Exception Flow:
- ArrayIndexOutOfBoundsException: અમાન્ય array access
- ArithmeticException: શૂન્ય વડે ભાગાકાર
- NumberFormatException: અમાન્ય number conversion
- Exception: બાકીના કોઈપણ exceptions catch કરે
મેમરી ટ્રીક: "SOOF - Specific first, One executes, Order matters, Finally"
પ્રશ્ન 4(ક OR) [7 ગુણ]
Exception શું છે? Arithmetic Exception નો ઉપયોગ દર્શાવતો પ્રોગ્રામ લખો.
જવાબ:
Exception વ્યાખ્યા: Exception એ એક ઘટના છે જે પ્રોગ્રામ execution દરમિયાન થાય છે અને instructions ના સામાન્ય flow ને ખલેલ પહોંચાડે છે.
Java
Exception પ્રકારો કોષ્ટક:
| પ્રકાર | વર્ણન | ઉદાહરણ |
|---|---|---|
| Checked | Compile time પર handle કરવા પડે | IOException |
| Unchecked | Runtime exceptions | ArithmeticException |
| Error | સિસ્ટમ સ્તરની સમસ્યાઓ | OutOfMemoryError |
ArithmeticException કારણો:
- શૂન્ય વડે ભાગાકાર: સૌથી સામાન્ય કારણ
- શૂન્ય વડે modulo: બાકી કામગીરી શૂન્ય સાથે
- અમાન્ય કામગીરીઓ: ગાણિતિક અશક્યતાઓ
પ્રોગ્રામ પ્રવાહ:
- સામાન્ય execution: Try block ચાલે છે
- Exception થાય: ArithmeticException ફેંકાય છે
- Exception પકડાય: Catch block તેને handle કરે છે
- Cleanup: Finally block execute થાય છે
- ચાલુ રાખો: Handling પછી પ્રોગ્રામ ચાલુ રહે છે
મેમરી ટ્રીક: "DZMI - Division by Zero, Mathematical Invalid"
પ્રશ્ન 5(અ) [3 ગુણ]
Java માં ArrayIndexOutOfBound Exception ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
ArrayIndexOutOfBound Exception કોષ્ટક:
| કારણ | વર્ણન | ઉદાહરણ |
|---|---|---|
| નકારાત્મક index | 0 થી ઓછો index | arr[-1] |
| Index >= length | Array size થી વધારે index | arr[5] size 3 માટે |
| ખાલી array | શૂન્ય-લંબાઈ array પર access | arr[0] length 0 માટે |
ઉદાહરણ:
Java
- Runtime exception: પ્રોગ્રામ execution દરમિયાન થાય છે
- Index validation: હંમેશા array bounds તપાસો
- નિવારણ: Bounds checking માટે array.length વાપરો
મેમરી ટ્રીક: "NIE - Negative, Index-exceed, Empty"
પ્રશ્ન 5(બ) [4 ગુણ]
Stream classes ની મૂળભૂત બાબતો સમજાવો.
જવાબ:
Stream Classes Hierarchy:
Stream પ્રકારો કોષ્ટક:
| Stream પ્રકાર | હેતુ | Classes |
|---|---|---|
| Byte Streams | Binary data handle કરે છે | InputStream, OutputStream |
| Character Streams | Text data handle કરે છે | Reader, Writer |
| Buffered Streams | Performance સુધારે છે | BufferedReader, BufferedWriter |
| File Streams | File operations | FileInputStream, FileOutputStream |
મૂળભૂત કામગીરીઓ:
- Input: સ્ત્રોતમાંથી ડેટા વાંચવો
- Output: લક્ષ્ય પર ડેટા લખવો
- Buffering: કાર્યક્ષમતા માટે ડેટા કામચલાઉ સંગ્રહ
- Closing: સિસ્ટમ resources મુક્ત કરવા
Stream ફાયદાઓ:
- Abstraction: I/O માટે એકસમાન interface
- કાર્યક્ષમતા: Buffered operations
- લવચીકતા: વિવિધ ડેટા sources/destinations
મેમરી ટ્રીક: "BCIF - Byte, Character, Input/Output, File"
પ્રશ્ન 5(ક) [7 ગુણ]
ટેક્સ્ટ ફાઇલ બનાવવા માટે Java પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર રાઇટ ઓપરેશન કરો.
જવાબ:
Java
ફાઇલ લખવાની પદ્ધતિઓ કોષ્ટક:
| પદ્ધતિ | Performance | Resource Management | ઉપયોગ |
|---|---|---|---|
| FileWriter | મૂળભૂત | Manual close() | સરળ writes |
| BufferedWriter | ઉચ્ચ | Manual close() | મોટો ડેટા |
| Try-with-resources | ઉચ્ચ | આટોમેટિક | ભલામણ કરેલ |
લખવાના કામગીરી પગલાં:
- Writer object બનાવો: FileWriter અથવા BufferedWriter
- ડેટા લખો: write() method વાપરો
- Stream બંધ કરો: Resources મુક્ત કરો
- Exceptions handle કરો: IOException management
ફાઇલ કામગીરીઓ:
- બનાવો: અસ્તિત્વમાં નથી તો નવી ફાઇલ
- ઓવરરાઇટ: હાલની સામગ્રી બદલે છે
- Append: હાલની સામગ્રીમાં ઉમેરે છે (append mode વાપરો)
મેમરી ટ્રીક: "CWCH - Create, Write, Close, Handle"
પ્રશ્ન 5(અ OR) [3 ગુણ]
Java માં Divide by Zero Exception ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
Divide by Zero Exception કોષ્ટક:
| કામગીરી | પરિણામ | Exception |
|---|---|---|
| Integer division | અવ્યાખ્યાયિત | ArithmeticException |
| Float division | Infinity | કોઈ exception નહિ |
| Modulo by zero | અવ્યાખ્યાયિત | ArithmeticException |
ઉદાહરણ:
Java
- Integer arithmetic: ArithmeticException ફેંકે છે
- Floating point: Infinity return કરે છે (IEEE 754 standard)
- નિવારણ: Division પહેલાં denominator તપાસો
મેમરી ટ્રીક: "IFM - Integer exception, Float infinity, Modulo error"
પ્રશ્ન 5(બ OR) [4 ગુણ]
Try and catch block ઉદાહરણ સાથે સમજાવો.
જવાબ:
Try-Catch માળખું:
Java
ઉદાહરણ:
Java
Try-Catch પ્રવાહ કોષ્ટક:
| Block | હેતુ | Execution |
|---|---|---|
| try | જોખમી કોડ સમાવે છે | હંમેશા પહેલા execute |
| catch | Exceptions handle કરે છે | માત્ર exception થાય તો |
| finally | Cleanup કોડ | હંમેશા execute |
- Exception matching: પહેલો મેળ ખાતો catch block execute
- Control flow: Catch block પછી પ્રોગ્રામ ચાલુ રહે
- Multiple catches: અલગ exception પ્રકારો handle કરે
મેમરી ટ્રીક: "TCF - Try risky, Catch exception, Finally cleanup"
પ્રશ્ન 5(ક OR) [7 ગુણ]
ટેક્સ્ટ ફાઇલના કન્ટેન્ટ ડિસ્પ્લે કરવા માટે Java માં પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર અપેન્ડ ઓપરેશન કરો.
જવાબ:
Java
ફાઇલ કામગીરીઓ કોષ્ટક:
| કામગીરી | Method | હેતુ |
|---|---|---|
| બનાવો | FileWriter(filename) | નવી ફાઇલ બનાવો |
| વાંચો | BufferedReader.readLine() | ફાઇલ સામગ્રી વાંચો |
| Append | FileWriter(filename, true) | હાલની ફાઇલમાં ઉમેરો |
| દર્શાવો | System.out.println() | સામગ્રી બતાવો |
ફાઇલ કામગીરીઓ પ્રવાહ:
- પ્રારંભિક ફાઇલ બનાવો: પ્રારંભિક સામગ્રી લખો
- સામગ્રી દર્શાવો: વર્તમાન સામગ્રી વાંચો અને બતાવો
- ડેટા append કરો: નવી માહિતી ઉમેરો
- અપડેટેડ દર્શાવો: સુધારેલી સામગ્રી બતાવો
- આંકડાકીય માહિતી: લાઇન અને અક્ષરોની ગણતરી
Append vs Write:
- Write mode: હાલની સામગ્રીને ઓવરરાઇટ કરે છે
- Append mode: હાલની સામગ્રીના અંતે ઉમેરે છે
- Constructor parameter: બીજો parameter true append enable કરે છે
Resource Management:
- Try-with-resources: આટોમેટિક close()
- Exception handling: FileNotFoundException, IOException
- Buffered operations: મોટી ફાઇલો માટે બહેતર performance
મેમરી ટ્રીક: "CDADS - Create, Display, Append, Display, Statistics"