ઑબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ વિથ જાવા (4341602) - સમર 2023 સોલ્યુશન
ઑબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ વિથ જાવા (4341602) સમર 2023 પરીક્ષા માટે સોલ્યુશન ગાઇડ
પ્રશ્ન 1(અ) [3 ગુણ]
પ્રોસિજર-ઓરિએન્ટેડ પ્રોગ્રામિંગ (POP) અને ઑબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ (OOP) વચ્ચે તફાવત કરો.
જવાબ:
ટેબલ:
| પાસું | POP | OOP |
|---|---|---|
| ધ્યાન | ફંક્શન્સ/પ્રોસિજર્સ | ઑબ્જેક્ટ્સ અને ક્લાસ્સિઝ |
| ડેટા સિક્યોરિટી | ઓછી સુરક્ષા, ગ્લોબલ ડેટા | વધુ સુરક્ષા, ડેટા encapsulation |
| સમસ્યા ઉકેલ | ટોપ-ડાઉન એપ્રોચ | બોટમ-અપ એપ્રોચ |
| કોડ પુનઃઉપયોગ | મર્યાદિત | inheritance દ્વારા વધુ |
| ઉદાહરણો | C, Pascal | Java, C++, Python |
- POP: પ્રોગ્રામ ફંક્શન્સમાં વિભાજિત, ડેટા ફંક્શન્સ વચ્ચે વહે છે
- OOP: પ્રોગ્રામ ઑબ્જેક્ટ્સની આસપાસ ગોઠવાયેલું જેમાં ડેટા અને મેથડ્સ બંને હોય છે
મેમરી ટ્રીક: "POP ફંક્શન્સ, OOP ઑબ્જેક્ટ્સ"
પ્રશ્ન 1(બ) [4 ગુણ]
યોગ્ય ઉદાહરણ સાથે inheritance માં Super કીવર્ડ સમજાવો.
જવાબ:
Super કીવર્ડ નો ઉપયોગ child class માંથી parent class ના members ને access કરવા માટે થાય છે.
ટેબલ: Super કીવર્ડના ઉપયોગો
| ઉપયોગ | હેતુ | ઉદાહરણ |
|---|---|---|
| super() | parent constructor ને કૉલ કરે | super(name, age) |
| super.method() | parent method ને કૉલ કરે | super.display() |
| super.variable | parent variable ને access કરે | super.name |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Super Parent ને કૉલ કરે"
પ્રશ્ન 1(ક) [7 ગુણ]
વ્યાખ્યાયિત કરો: મેથડ ઓવરરાઇડિંગ. મેથડ ઓવરરાઇડિંગ માટેના નિયમોની યાદી બનાવો. એક જાવા પ્રોગ્રામ લખો જે મેથડ ઓવરરાઇડિંગને implement કરે છે.
જવાબ:
મેથડ ઓવરરાઇડિંગ: Child class પોતાની parent class ના method નું specific implementation આપે છે સમાન signature સાથે.
ટેબલ: મેથડ ઓવરરાઇડિંગના નિયમો
| નિયમ | વર્ણન |
|---|---|
| સમાન નામ | મેથડનું નામ સમાન હોવું જોઈએ |
| સમાન parameters | Parameter list બરાબર મેચ થવી જોઈએ |
| IS-A સંબંધ | inheritance હોવું જરૂરી |
| Access modifier | visibility ઘટાડી શકાતી નથી |
| Return type | સમાન અથવા covariant હોવું જોઈએ |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Override સમાન Signature"
પ્રશ્ન 1(ક OR) [7 ગુણ]
વર્ણવો: ઇન્ટરફેસ. મલ્ટિપલ inheritance ને દર્શાવવા માટે interface નો ઉપયોગ કરીને જાવા પ્રોગ્રામ લખો.
જવાબ:
Interface: blueprint જેમાં abstract methods અને constants હોય છે. Classes interfaces ને implement કરીને multiple inheritance પ્રાપ્ત કરે છે.
ટેબલ: Interface ની વિશેષતાઓ
| વિશેષતા | વર્ણન |
|---|---|
| Abstract methods | કોઈ implementation નથી (Java 8 પહેલાં) |
| Constants | બધા variables public static final છે |
| Multiple inheritance | Class અનેક interfaces implement કરી શકે |
| Default methods | Concrete methods (Java 8+) |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Interface Multiple Implementation"
પ્રશ્ન 2(અ) [3 ગુણ]
ઉદાહરણ સાથે Java પ્રોગ્રામ સ્ટ્રક્ચર સમજાવો.
જવાબ:
Java પ્રોગ્રામ સ્ટ્રક્ચર માં package, imports, class declaration અને main method હોય છે.
આકૃતિ:
goat
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Package Import Class Main"
પ્રશ્ન 2(બ) [4 ગુણ]
યોગ્ય ઉદાહરણ સાથે static કીવર્ડ સમજાવો.
જવાબ:
Static કીવર્ડ class નું છે instance નું નહીં. memory એક વાર allocate થાય છે.
ટેબલ: Static ના ઉપયોગો
| પ્રકાર | વર્ણન | ઉદાહરણ |
|---|---|---|
| Static variable | બધા objects દ્વારા shared | static int count |
| Static method | object વિના કૉલ થાય | static void display() |
| Static block | main પહેલાં execute થાય | static |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Static Class દ્વારા Shared"
પ્રશ્ન 2(ક) [7 ગુણ]
વ્યાખ્યાયિત કરો: કન્સ્ટ્રક્ટર. તેના પ્રકારોની યાદી બનાવો. પેરામીટરાઇઝ્ડ અને કોપી કન્સ્ટ્રક્ટરને યોગ્ય ઉદાહરણ સાથે સમજાવો.
જવાબ:
કન્સ્ટ્રક્ટર: objects ને initialize કરવા માટેની special method, class જેવું જ નામ, કોઈ return type નથી.
ટેબલ: કન્સ્ટ્રક્ટરના પ્રકારો
| પ્રકાર | વર્ણન | ઉદાહરણ |
|---|---|---|
| Default | કોઈ parameters નથી | Student() |
| Parameterized | parameters સાથે | Student(String name) |
| Copy | object ની copy બનાવે | Student(Student s) |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Constructor Objects ને Initialize કરે"
પ્રશ્ન 2(અ OR) [3 ગુણ]
જાવામાં પ્રિમિટિવ ડેટા પ્રકારો અને યુઝર ડિફાઇન્ડ ડેટા પ્રકારો સમજાવો.
જવાબ:
પ્રિમિટિવ ડેટા ટાઇપ્સ: Java language દ્વારા આપવામાં આવેલા built-in types. યુઝર ડિફાઇન્ડ ટાઇપ્સ: programmer દ્વારા classes વાપરીને બનાવવામાં આવેલા custom types.
ટેબલ: ડેટા ટાઇપ્સ
| કેટેગરી | પ્રકારો | સાઇઝ | ઉદાહરણ |
|---|---|---|---|
| Primitive | byte, short, int, long | 1,2,4,8 bytes | int x = 10; |
| Primitive | float, double | 4,8 bytes | double d = 3.14; |
| Primitive | char, boolean | 2,1 bytes | char c = 'A'; |
| User Defined | Class, Interface, Array | Variable | Student s; |
- Primitive: stack માં store થાય, ઝડપી access
- User Defined: heap માં store થાય, જટિલ operations
મેમરી ટ્રીક: "Primitive Built-in, User Custom"
પ્રશ્ન 2(બ OR) [4 ગુણ]
યોગ્ય ઉદાહરણ સાથે this કીવર્ડ સમજાવો.
જવાબ:
This કીવર્ડ વર્તમાન object instance ને refer કરે છે, instance અને local variables વચ્ચે ભેદ પાડવા માટે વાપરાય છે.
ટેબલ: This કીવર્ડના ઉપયોગો
| ઉપયોગ | હેતુ | ઉદાહરણ |
|---|---|---|
| this.variable | instance variable ને access કરે | this.name = name; |
| this.method() | instance method ને કૉલ કરે | this.display(); |
| this() | constructor ને કૉલ કરે | this(name, age); |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "This વર્તમાન Object"
પ્રશ્ન 2(ક OR) [7 ગુણ]
ઇનહેરિટન્સ વ્યાખ્યાયિત કરો. તેના પ્રકારોની યાદી બનાવો. multilevel અને hierarchical ઇનહેરિટન્સને યોગ્ય ઉદાહરણ સાથે સમજાવો.
જવાબ:
Inheritance: mechanism જેમાં child class parent class ના properties અને methods મેળવે છે.
ટેબલ: Inheritance ના પ્રકારો
| પ્રકાર | વર્ણન | સ્ટ્રક્ચર |
|---|---|---|
| Single | એક parent, એક child | A → B |
| Multilevel | inheritance ની chain | A → B → C |
| Hierarchical | એક parent, અનેક children | A → B, A → C |
| Multiple | અનેક parents (interfaces દ્વારા) | B,C → A |
આકૃતિ - Multilevel:
કોડ બ્લોક - Multilevel:
Java
આકૃતિ - Hierarchical:
કોડ બ્લોક - Hierarchical:
Java
મેમરી ટ્રીક: "Inheritance Properties શેર કરે"
પ્રશ્ન 3(અ) [3 ગુણ]
જાવામાં ટાઇપ કન્વર્ઝન અને કાસ્ટિંગ સમજાવો.
જવાબ:
Type Conversion: એક data type ને બીજામાં બદલવું. Casting: programmer દ્વારા explicit type conversion.
ટેબલ: Type Conversion
| Type | Description | Example |
|---|---|---|
| Implicit (Widening) | Automatic, smaller to larger | int to double |
| Explicit (Narrowing) | Manual, larger to smaller | double to int |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Implicit Auto, Explicit Manual"
પ્રશ્ન 3(બ) [4 ગુણ]
Java માં ઉપયોગમાં લેવાતા વિવિધ visibility controls સમજાવો.
જવાબ:
Visibility Controls (Access Modifiers): classes, methods અને variables ના access ને control કરે છે.
ટેબલ: Access Modifiers
| Modifier | Same Class | Same Package | Subclass | Different Package |
|---|---|---|---|---|
| private | ✓ | ✗ | ✗ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Private Package Protected Public"
પ્રશ્ન 3(ક) [7 ગુણ]
વ્યાખ્યાયિત કરો: થ્રેડ. થ્રેડ બનાવવા માટે ઉપયોગમાં લેવાતી વિવિધ પદ્ધતિઓની સૂચિ બનાવો. થ્રેડની લાઇફ સાઇકલ વિગતવાર સમજાવો.
જવાબ:
Thread: lightweight subprocess જે program ના અનેક ભાગોને concurrent execution ની મંજૂરી આપે છે.
ટેબલ: Thread બનાવવાની પદ્ધતિઓ
| પદ્ધતિ | વર્ણન | ઉદાહરણ |
|---|---|---|
| Thread વિસ્તરવું | Thread class ને inherit કરવું | class MyThread extends Thread |
| Runnable implement કરવું | Runnable interface implement કરવું | class MyTask implements Runnable |
આકૃતિ: Thread Life Cycle
ટેબલ: Thread States
| સ્થિતિ | વર્ણન |
|---|---|
| NEW | Thread બન્યું પણ શરૂ નથી થયું |
| RUNNABLE | ચાલવા તૈયાર, CPU ની રાહમાં |
| RUNNING | હાલમાં execute થઈ રહ્યું છે |
| BLOCKED | resource અથવા sleep ની રાહમાં |
| TERMINATED | execution પૂર્ણ થયું |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Thread Concurrent Execution"
પ્રશ્ન 3(અ OR) [3 ગુણ]
java માં JVM નો હેતુ સમજાવો.
જવાબ:
JVM (Java Virtual Machine): runtime environment જે Java bytecode execute કરે છે અને platform independence પ્રદાન કરે છે.
ટેબલ: JVM Components
| Component | હેતુ |
|---|---|
| Class Loader | .class files ને memory માં લોડ કરે |
| Execution Engine | bytecode execute કરે |
| Memory Area | heap અને stack memory ને manage કરે |
| Garbage Collector | automatic memory management |
આકૃતિ:
goat
- Platform Independence: "એકવાર લખો, દરેક જગ્યાએ ચલાવો"
- Memory Management: automatic garbage collection
- Security: Bytecode verification
મેમરી ટ્રીક: "JVM Java Virtual Machine"
પ્રશ્ન 3(બ OR) [4 ગુણ]
વ્યાખ્યાયિત કરો: પેકેજ. યોગ્ય ઉદાહરણ સાથે પેકેજ બનાવવા માટેના પગલાંઓ લખો.
જવાબ:
Package: સંબંધિત classes અને interfaces નો સંગ્રહ, namespace અને access control પ્રદાન કરે છે.
ટેબલ: Package ના ફાયદા
| ફાયદો | વર્ણન |
|---|---|
| Namespace | નામની ટકરાર ટાળે |
| Access Control | બહેતર encapsulation |
| Organization | logical grouping |
| Reusability | maintain કરવું સરળ |
Package બનાવવાના પગલાં:
- Package declare કરો file ની ટોચે
- Directory structure બનાવો package name મુજબ
- Compile કરો package structure સાથે
- Import કરો અન્ય classes માં
કોડ બ્લોક:
Java
Directory Structure:
com/
company/
utilities/
Calculator.class
Main.class
મેમરી ટ્રીક: "Package Classes ને Group કરે"
પ્રશ્ન 3(ક OR) [7 ગુણ]
થ્રેડમાં Synchronization ને યોગ્ય ઉદાહરણ સાથે સમજાવો.
જવાબ:
Synchronization: shared resources ના access ને multiple threads દ્વારા control કરવાની mechanism, data inconsistency ટાળવા માટે.
ટેબલ: Synchronization ના પ્રકારો
| પ્રકાર | વર્ણન | ઉપયોગ |
|---|---|---|
| Synchronized method | આખી method lock થાય | synchronized void method() |
| Synchronized block | ચોક્કસ code block lock થાય | synchronized(object) |
| Static synchronization | Class level locking | synchronized static void method() |
કોડ બ્લોક:
Java
મેમરી ટ્રીક: "Synchronization Race Conditions અટકાવે"
પ્રશ્ન 4(અ) [3 ગુણ]
સ્ટ્રિંગ ક્લાસ અને સ્ટ્રિંગબફર ક્લાસ વચ્ચે તફાવત કરો.
જવાબ:
ટેબલ: String vs StringBuffer
| પાસું | String | StringBuffer |
|---|---|---|
| Mutability | Immutable (બદલાતું નથી) | Mutable (બદલાય છે) |
| Performance | concatenation માટે ધીમું | concatenation માટે ઝડપું |
| Memory | દર વખતે નવું object બનાવે | હાલનું object modify કરે |
| Thread Safety | Thread safe | Thread safe |
| Methods | concat(), substring() | append(), insert(), delete() |
કોડ બ્લોક:
Java
- String: જ્યારે content વારંવાર બદલાતું નથી ત્યારે વાપરો
- StringBuffer: જ્યારે વારંવાર modifications જરૂરી હોય ત્યારે વાપરો
મેમરી ટ્રીક: "String Immutable, StringBuffer Mutable"
પ્રશ્ન 4(બ) [4 ગુણ]
એરેની 10 સંખ્યાઓનો સરવાળો અને સરેરાશ મેળવવા માટે જાવા પ્રોગ્રામ લખો.
જવાબ:
કોડ બ્લોક:
Java
આઉટપુટ:
Array elements: 10 20 30 40 50 60 70 80 90 100
Sum: 550
Average: 55.0
લોજિક પગલાં:
- Initialize 10 numbers સાથે array
- Loop array માં સરવાળો calculate કરવા માટે
- Calculate સરેરાશ = સરવાળો / length
- Display પરિણામો
મેમરી ટ્રીક: "Loop Sum Divide Average"
પ્રશ્ન 4(ક) [7 ગુણ]
I) યોગ્ય ઉદાહરણ સાથે abstract class સમજાવો. II) યોગ્ય ઉદાહરણ સાથે final class સમજાવો.
જવાબ:
I) Abstract Class: class જેનું instantiation થઈ શકતું નથી, abstract methods હોય છે જેનું implementation subclasses માં જરૂરી છે.
ટેબલ: Abstract Class ની વિશેષતાઓ
| વિશેષતા | વર્ણન |
|---|---|
| Cannot instantiate | object બનાવી શકાતું નથી |
| Abstract methods | implementation વિનાની methods |
| Concrete methods | implementation સાથેની methods |
| Inheritance | Subclasses માં abstract methods implement કરવા જરૂરી |
કોડ બ્લોક - Abstract Class:
Java
II) Final Class: class જેનું extension થઈ શકતું નથી (inheritance નથી).
ટેબલ: Final Class ની વિશેષતાઓ
| વિશેષતા | વર્ણન |
|---|---|
| No inheritance | extend કરી શકાતું નથી |
| Security | modification અટકાવે છે |
| Performance | બહેતર optimization |
| ઉદાહરણો | String, Integer, System |
કોડ બ્લોક - Final Class:
Java
મેમરી ટ્રીક: "Abstract અધૂરું, Final પૂરું"
પ્રશ્ન 4(અ OR) [3 ગુણ]
જાવામાં Garbage Collection સમજાવો.
જવાબ:
Garbage Collection: automatic memory management process જે heap memory માંથી unused objects ને remove કરે છે.
ટેબલ: GC ના ફાયદા
| ફાયદો | વર્ણન |
|---|---|
| Automatic | manual memory management નથી |
| Memory leak prevention | unreferenced objects ને દૂર કરે |
| Performance | memory usage optimize કરે |
| Safety | memory errors અટકાવે |
આકૃતિ:
goat
- ક્યારે થાય: જ્યારે heap memory ઓછી હોય અથવા System.gc() કૉલ થાય
- Process: Mark and Sweep algorithm
- Guarantee કરી શકાતું નથી: garbage collection નો exact timing
મેમરી ટ્રીક: "GC Automatic Memory Cleanup"
પ્રશ્ન 4(બ OR) [4 ગુણ]
'Divide by Zero' એરર માટે યુઝર ડિફાઇન્ડ એક્સેપ્શન હેન્ડલ કરવા માટે જાવા પ્રોગ્રામ લખો.
જવાબ:
કોડ બ્લોક:
Java
આઉટપુટ:
ભૂલ: શૂન્ય થી ભાગ નથી આપી શકાતો!
પગલાં:
- Custom exception class બનાવો Exception extend કરીને
- Exception throw કરો જ્યારે condition આવે
- Exception handle કરો try-catch block સાથે
મેમરી ટ્રીક: "Custom Exception Error Handle કરે"
પ્રશ્ન 4(ક OR) [7 ગુણ]
Multiple try block અને multiple catch block exception દર્શાવવા માટે જાવા પ્રોગ્રામ લખો.
જવાબ:
કોડ બ્લોક:
Java
આઉટપુટ:
Array index ભૂલ: Index 5 out of bounds for length 3
Null pointer ભૂલ: null
Arithmetic ભૂલ: / by zero
પ્રોગ્રામ પૂર્ણ થયું
દર્શાવેલી વિશેષતાઓ:
- Multiple try blocks: દરેક અલગ operations handle કરે
- Multiple catch blocks: દરેક specific exception type handle કરે
- Exception hierarchy: સામાન્ય Exception બધાને catch કરે
- Finally block: હંમેશા execute થાય
મેમરી ટ્રીક: "Multiple Try Multiple Catch"
પ્રશ્ન 5(અ) [3 ગુણ]
ફાઇલ બનાવવા અને આ ફાઇલ પર write operation કરવા માટે જાવામાં પ્રોગ્રામ લખો.
જવાબ:
કોડ બ્લોક:
Java
પગલાં:
- Import java.io package
- File object બનાવો filename સાથે
- FileWriter object બનાવો
- ડેટા લખો write() method વાપરીને
- Writer બંધ કરો changes save કરવા માટે
મેમરી ટ્રીક: "File Writer Write Close"
પ્રશ્ન 5(બ) [4 ગુણ]
Throw અને finally ને Exception Handling માં ઉદાહરણ સાથે સમજાવો.
જવાબ:
Throw: keyword જેનો ઉપયોગ explicitly exception throw કરવા માટે થાય. Finally: block જે exception આવે કે ન આવે હંમેશા execute થાય છે.
ટેબલ: Throw vs Finally
| કીવર્ડ | હેતુ | ઉપયોગ |
|---|---|---|
| throw | Explicitly exception throw કરે | throw new Exception() |
| finally | હંમેશા cleanup code execute કરે | finally |
કોડ બ્લોક:
Java
આઉટપુટ:
ભૂલ: ઉંમર 18 કે તેથી વધુ હોવી જોઈએ
Finally block હંમેશા execute થાય છે
- Throw: Exception બળપૂર્વક બનાવે
- Finally: Cleanup code, resources બંધ કરે
મેમરી ટ્રીક: "Throw Exception, Finally હંમેશા"
પ્રશ્ન 5(ક) [7 ગુણ]
વર્ણવો: પોલીમોર્ફિઝમ. જાવામાં યોગ્ય ઉદાહરણ સાથે રન ટાઇમ પોલીમોર્ફિઝમ સમજાવો.
જવાબ:
Polymorphism: એક interface, અનેક implementations. Object તેના actual type પર આધાર રાખીને અલગ રીતે વર્તે છે.
ટેબલ: Polymorphism ના પ્રકારો
| પ્રકાર | વર્ણન | ક્યારે નક્કી થાય |
|---|---|---|
| Compile-time | Method overloading | Compilation વખતે |
| Run-time | Method overriding | Execution વખતે |
Run-time Polymorphism: Method call runtime પર actual object type આધારે resolve થાય.
આકૃતિ:
કોડ બ્લોક:
Java
આઉટપુટ:
કૂતરો ભસે છે
બિલાડી મ્યાં કરે છે
કૂતરો ભસે છે
બિલાડી મ્યાં કરે છે
કૂતરો ભસે છે
વિશેષતાઓ:
- Dynamic Method Dispatch: JVM runtime પર નક્કી કરે છે કઈ method કૉલ કરવી
- Upcasting: Child object ને parent reference દ્વારા reference કરવું
- Flexibility: સમાન કોડ વિવિધ object types સાથે કામ કરે
મેમરી ટ્રીક: "Polymorphism અનેક રૂપ Runtime"
પ્રશ્ન 5(અ OR) [3 ગુણ]
જાવામાં એક પ્રોગ્રામ લખો જે બાઇટ બાય બાઇટ ફાઇલના કન્ટેન્ટ વાંચે અને તેને બીજી ફાઇલમાં કોપી કરે.
જવાબ:
કોડ બ્લોક:
Java
પગલાં:
- FileInputStream બનાવો વાંચવા માટે
- FileOutputStream બનાવો લખવા માટે
- બાઇટ બાય બાઇટ વાંચો read() વાપરીને
- દરેક બાઇટ લખો write() વાપરીને
- બંને streams બંધ કરો
મેમરી ટ્રીક: "Read Byte Write Byte"
પ્રશ્ન 5(બ OR) [4 ગુણ]
Java સાથે ઉપલબ્ધ વિવિધ I/O વર્ગો સમજાવો.
જવાબ:
ટેબલ: Java I/O Classes
| Class Type | Class Name | હેતુ |
|---|---|---|
| Byte Stream | FileInputStream | ફાઇલમાંથી bytes વાંચે |
| Byte Stream | FileOutputStream | ફાઇલમાં bytes લખે |
| Character Stream | FileReader | ફાઇલમાંથી characters વાંચે |
| Character Stream | FileWriter | ફાઇલમાં characters લખે |
| Buffered | BufferedReader | કાર્યક્ષમ character reading |
| Buffered | BufferedWriter | કાર્યક્ષમ character writing |
આકૃતિ: I/O Class Hierarchy
goat
કોડ ઉદાહરણ:
Java
મેમરી ટ્રીક: "Byte Character Buffered Streams"
પ્રશ્ન 5(ક OR) [7 ગુણ]
જાવા પ્રોગ્રામ લખો જે બે થ્રેડોને એક્ઝિક્યુટ કરે છે. એક થ્રેડ દર 3 સેકન્ડે "Java Programming" દર્શાવે છે, અને બીજો દર 6 સેકન્ડે "Semester - 4th IT" દર્શાવે છે. (થ્રેડને extending the Thread class દ્વારા બનાવો)
જવાબ:
કોડ બ્લોક:
Java
નમૂના આઉટપુટ:
Java Programming
Semester - 4th IT
Java Programming
Java Programming
Semester - 4th IT
Java Programming
Java Programming
Semester - 4th IT
...
વિશેષતાઓ:
- બે અલગ threads: દરેક અલગ timing સાથે
- Thread.sleep(): ચોક્કસ milliseconds માટે execution પોઝ કરે
- Concurrent execution: બંને threads એકસાથે ચાલે છે
- Thread class વિસ્તારવું: run() method ને override કરવું
Execution Pattern:
- JavaThread: દર 3 સેકન્ડે દર્શાવે
- SemesterThread: દર 6 સેકન્ડે દર્શાવે
- બંને concurrent રીતે અલગ timing બતાવે છે
મેમરી ટ્રીક: "બે Threads અલગ Timing"