Java in Hindi : Useful Keywords

Java Useful Keywords 

हर programming language  में कुछ technical keywords होते है। ये keywords किसी programming language की vocabulary की तरह होते है। जब भी ये keywords आपके सामने आते है तो आप confuse हो जाते है और आप program को या किसी concept को समझ नहीं पाते है। इस article में मैं ऐसे ही कुछ keywords की definitions देने का प्रयास करूँगा जो java programming के लिए बहुत useful है। जब इन सभी keywords की definition आपके दिमाग़ में होगी तो आपको java programs और भी आसान लगने लगेंगे। Java programming में आगे बढ़ने से पहले में आपको suggest करूँगा की आप इन keywords को जरूर समझ ले। 

abstract 

जब आप abstract keyword को किसी class के आगे लगाते है तो आप उस class का object नहीं create कर सकते है। ऐसी classes सिर्फ inherit करने के लिए ही बनायीं जाती है। जब आप किसी method के आगे abstract keyword लगाते है तो उस method की body (implementation) आप नहीं define करते है। उस method की body किसी दूसरी class में define की जाती है।

Example : abstract className/methodName

assert 

Assert keyword program में assert statements डालने के लिए यूज़ किया जाता है। एक assert statement program में अपेक्षित Boolean condition (statement) को declare करने के लिए यूज़ किया जाता है। जब आपका program run होता है तो ये condition check की जाती है। यदि ये condition true ना हो तो program का execution terminate हो जाता है।

उदाहरण के लिए मान लीजिये आप एक condition डालते है की program के successfully execute होने के लिए particular variable की value 5 होनी चाहिए। लेकिन यदि ऐसा नहीं होता है तो program का execution terminate हो जाएगा।

Example : assert age >18;

const 

इस keyword से आप constants declare करते है। हालाँकि java library में ये keyword शामिल है लेकिन इस keyword को java में यूज़ नहीं किया जाता है। Constants declare करने के लिए इसके बजाय आपको final keyword यूज़ करना चाहिए जो बताता है की declare किया गया variable final है और इसकी value को अब change करना possible नहीं है।   
Example : const 10; 

import 

ये keyword किसी भी java program में first line में यूज़ किया जाता है। इस keyword के माध्यम से आप java library में provide किये गए packages को अपने program में inherit करते है। Import keyword के माध्यम से packages को inherit करने के बाद आप उन packages में define की गयी classes और methods को अपने program में यूज़ कर सकते है। 
Example : import packageName/packageName.subPackageName

instanceof

ये एक operator होता है। इस operator का पहला operand एक object होता है और दूसरा operand एक class होती है। यदि दिया गया object दी गयी class का है तो ये operator true return करता है। कभी program में यदि आप ये check करना चाहते है की कोई दिया हुआ object किसी particular class का है या नहीं। 
ये operator तब ज्यादा useful होता है जब आप किसी और के द्वारा बनाये गए project पर काम करते है। ऐसी situation में आपको पता नहीं होता है की कौनसा object किस class का है ऐसे में आप इस keyword को यूज़ कर सकते है। 
Example : instance of(obj1, myClass);

new 

ये एक keyword होता है। इस keyword के माध्यम से आप classes के objects create करते है। साथ ही ये keyword arrays declare करने के लिए भी यूज़ किया जाता है। 
Example :  myClasss obj1 = new myClass();

return     

ये keyword किसी method के अंत में value return करने के लिए यूज़ किया जाता है। जब ये keyword execute होता है तो program control method से बाहर आ जाता है और वही चल जाता है जँहा से method को call किया गया था। यदि आप कोई value या variable return करना चाहते है तो उनको भी साथ में लिख सकते है। आप चाहे तो इसे बिना किसी value के भी execute करवा सकते है।

super 

ये keyword किसी subclass में super class के method को execute करवाने के लिए यूज़ किया जाता है। मान लीजिये super class में एक display() method और ये ही display() method subclass में भी है। यदि आप subclass में super class के display method को execute करवाना चाहते है तो इसके लिए आपको method के नाम के आगे super लगाना पड़ेगा नहीं तो compiler confuse हो जायेगा। 
Example : super methodName()  

this 

ये keyword current object को refer करने के लिए यूज़ किया जाता है। इसका सबसे popular उदाहरण है की जब आप object create करते समय pass किये गए arguments को class में real variables पर apply करते है तो उस समय this keyword को यूज़ कर सकते है। 
Example : this.variableName         
  

transient

जब आप किसी variable को इस keyword के द्वारा declare करते है तो ऐसे variables serialize नहीं किये जा सकते है। इस keyword का यूज़ केवल तब ही किया जाता है जब आप objects को serialize करना चाहते हो। transient keyword के द्वारा define किये गए variables की value store नहीं की जाती है इससे memory का सही उपयोग होता है और unnecessary information नहीं store की जाती है।    
Example : transient variableName & value

Learn Java in Hindi

Learn Java in Hindi 

Contents 

जैसा की आप जानते है की java एक बहुत ही popular और powerful language है। इसके साथ ही में बता दू की java बहुत बड़ी लैंग्वेज है। Java को completely समझना और यूज़ करना बहुत मुश्किल है। लेकिन यदि java के बेसिक concepts समझ लिए जाये तो आप java को आसानी से समझ सकते है और यूज़ भी कर सकते है। Java से related सभी books और tutorials ज्यादातर आपको english में मिलेगी। यंहा इस website में मैने प्रयास किया है की में java को hindi भाषा में समझा सकु।  

मैने java को written tutorials से तो समझाया ही है साथ ही java की video tutorials भी बनायीं है। जिससे आप java के हर topic को practically समझ सकते है।

Java अब तक शायद आपको tough लग रही होगी।  लेकिन जब आप इस website की टूटोरियल्स को पड़ेंगे तो आपको java बहुत आसान लगने लगेगी। ऐसा इसलिए है क्योंकि hindi में आप कोई भी topic आसानी से समझ जाते है, वही topic जब आप english में पड़ते है तो आपको टफ लगने लगता है।

Hindi हमारी मात्र भाषा है इसमें आप कोई भी टॉपिक जल्दी से और आसानी से समझ जाते है। लेकिन ऐसा english के साथ नहीं है जब आप कोई टॉपिक english में पड़ते है तो आपको डबल मेहनत करनी पड़ती है।  आपको इसी मेहनत से बचाने के लिए इस website की हर टूटोरियल hindi में लिखी गयी है।
      
इस website  की success का राज ये है की hindi में कुछ भी सीखना english में सिखने से इजी है। Hindi हमारी मातृ भाषा है जितनी आसानी से हम कोई concept hindi में समझ सकते है उतनी आसानी से और किसी भाषा में नहीं समझ सकते है। आसानी से ही नहीं hindi में हम जल्दी भी सीखते है।

उपर आपको java के सभी टॉपिक्स की लिस्ट दी हुई है। आप अपने मन चाहे टॉपिक से शुरू कर सकते है।  मुझे आशा है आपको सभी टूटोरियल्स पसंद आएगी।  धन्यवाद।     

Java in Hindi : Java Arrays

Java Arrays 

  • Introduction to java arrays in Hindi  
  • Creating java arrays in Hindi 
  • Initializing & displaying java arrays in Hindi 

Introduction to Java Arrays 

कल्पना कीजिये की आप 200 employees के बारे में कोई information store कर रहे है। इतने employees की information separately store करने के लिए आपको 200 variables की आवश्यकता होगी।

लेकिन कोई भी human इतने सारे variables को create और manage नहीं कर सकता है। आपको 200 अलग अलग नाम सोचने होंगे। और इससे आपका program भी काफ़ी बड़ा हो जायेगा। इस समस्या से बचने के लिए arrays का उपयोग किया जाता है।         

एक array similar data type की values का collection होता है। Array से आप similar information का group बना सकते है। जैसे employees की salary का array बना कर आप सभी employees की salary store करवा सकते है।

आप किसी भी type का array create कर सकते है। जैसे की int, float, char आदि। जिस type का आप variable create करेंगे उसी तरह की values उसमे डाल सकते है। जब आप array create करते तो उसकी size भी define करते है।

जितनी array की size होती है उतनी ही values उसमे store की जा सकती है। Array सभी values को indexing के द्वारा store करता है। हर index एक different variable को represent करती है। 

array_name[0]; // first variable 
array_name[1];// second variable 
..
..
array-name[n-1]; // last variable 
Arrays की index zero से शुरू होती है इसलिए यदि आपके array का size n है तो last element (n -1) position पर store होगा।
Elements 
 4
10 
22 
 Index 
यँहा पर array की size 5 है लेकिन array का last element 22 4th position पर store हो रहा है क्योंकि array की index zero से शुरू हो रही है। 

Creating Java Arrays 

Java में arrays create करना बहुत ही आसान है। ये किसी class का object create करने जैसा है। इसका उदाहरण निचे दिया जा रहा है।

type arrayName = new type[arraySize];

  

type  
ये वो type होता है जिस type का array आप create करना चाहते है।  
arrayName 
ये array का नाम होता है। ये unique होना चाहिए।    
new 
Array को memory allocate करने के लिए new keyword यूज़ किया गया है।   
arraySize 
ये array की size होती है। इसे आप किसी integer से define करते है। या बताती है की आप array में कितने elements store करेंगे।     
int salary = new int[10];

Initializing Arrays 

Arrays को आप 2 तरह से initialize कर सकते है। पहले तरीके में variable की तरह ही java की किसी index को आप initialize कर सकते है। इसका उदाहरण निचे दिया जा रहा है। 
salary[0] = 25000;
salary[1] = 10000;
..
..
salary[9] = 30000;
   
यूज़र के द्वारा भी values input करवाई जा सकती है।

Scanner s = new Scanner(System.in);
salary[0] = s.nextInt();

ये तरीका बहुत ही time consuming है। दूसरे तरीके में आप एक loop यूज़ करते है और सभी values को एक साथ input करवा लेते है।

Scanner s = new Scanner(System.in);
for(int i=0;i<10;i++)
{
    salary[i] = s.nextInt();
}

Displaying Arrays

Arrays की values आप 2 तरह से print करवा सकते है। आप single index की value भी print करवा सकते है और पुरे array को भी print करवा सकते है। 
System.out.println(salary[0]); // prints value of first index 
  
for(int i =0; i<10; i++)
{
    System.out.println(salary[i]); // prints all array 
}

Multidimensional Java Arrays 

अब तक आपने array के जो example देखे वो सभी one dimensional array है। Arrays के कई dimensions हो सकते है। अब 2 dimensional arrays की बात करेंगे। Two dimensional arrays create करने के लिए आप row और column size देते है।

ये कोई table create करने जैसा होता है। इसमें पहले square brackets rows को और दूसरे brackets columns को represent करते है। 

Creating Two Dimensional Array

int TwoDiem [][] = new int [3][4];

Initializing Two Dimensional Arrays 

Scanner s = new Scanner(System.in);
System.out.println(“Enter the array elements”);
for(int i=0; i<3;i++)
{
    for(int j=0;j<4;j++)
    {
        TwoDiem[][] = s.nextInt();
    }
}

Displaying Two Dimensional Arrays 

for(int i = 0; i<3; i++)
{
    for(int j=0; j<4; j++)
    {
        System.out.println(TwoDiem[i][j]);
    }
}         
Java arrays implement बहुत ही आसान होते है। यदि आपको java arrays समझने में कोई problem है तो आप comments में mention कर सकते है।

Previous: Java Strings
Next: Java Operators

Java in hindi : Java Servlets

Java Servlets

  • Introduction to java servlets in Hindi 
  • Tasks of java servlets in Hindi 
  • Life cycle of java servlets in Hindi

Introduction to Java Servlets 

Java servlets applets के opposite होते है। Applets में आप HTML program के अंदर java program यूज़ करते है। और servlets में आप java program के अंदर HTML program लिखते है। Servlets ऐसे java program होते है जो HTML file generate करते है। 

Java आपको ऐसे features provide करती है जिससे आप किसी java program के द्वारा एक HTML file generate कर सकते है और उसे web पर execute करवा सकते है।

इसके लिए आपको java program के अंदर HTML program लिखना होता है। और जब आप इस java code को execute करवाते है तो वो HTML code भी execute होता है और उसके code के according आपको webpage show हो जाता है।

लेकिन इसके लिए जरुरी है की आप अपने servlet program को किसी web server पर store करे और उसे वही से execute करवाये।

Related Article : Learn JSP (Java Server Pages) in Hindi 

Packages Used by Java Servlets 

Servlets को यूज़ करने के लिए आपको program में 2 packages को import करना पड़ता है। इनके बारे में निचे दिया जा रहा है। 
 Package 
Explanation 
 javax.servlet 
इस package में बहुत सी classes और interfaces होते है जो आप अपने program में यूज़ कर सकते है। ये package किसी एक protocol के लिए नहीं होता है। इस package में GenericServlet class होती है जिसे extend करके आप servlet create करते है।     
 javax.servlet.http 
ये package भी बहुत सी classes और interfaces provide करता है। इनको आप servlet program create करने के लिए यूज़ कर सकते है। लेकिन ये package आप तब ही यूज़ कर सकते है जब आप HTTP protocol को यूज़ कर रहे है। इस package में HttpServlet class होती है जिसे extend करके आप servlets create करते है।       
       

Tasks of Java Servlets 

  • Processing HTML  
  • Opening web browser 
  • Displaying web page 

Life Cycle Methods of Java Servlets 

Method 
Explanation
 
init()
ये method applet के init() method की तरह ही होता है। जब
servlet first time create होता है तब ये method
call होता है। ये method
सिर्फ एक बार ही call होता है।      
service() 
ये method servlet life cycle का सबसे important method है। इस method
में client request को process किया जाता है और response दिया जाता है।    
destroy() 
ये method सिर्फ एक ही बार call होता है। इस method
में आप सभी
connections को close कर सकते है। जैसे की database connectivity और server connection आदि। Destroy method call होने के बाद
servlet object  garbage collect हो जाता है।      

doGet() and doPost() Methods 

Method  
Explanation  
doGet() 
एक URL की request handle करने के लिए doGet() method यूज़ किया जाता है। और यदि form submit करते समय उसमे method (GET, POST) mention नहीं किया हुआ है तो वो request भी doGet() method ही handle करता है।        
doPost() 
ऐसे HTML form जिनमें method POST mention किया होता है वो request doPost() method ही handle करता है।    

Steps to Create Java Servlets Program 

  1. सबसे पहले अपने program में servlet packages को import कीजिये। 
  2. यदि आप HTTP protocol यूज़ करना चाहते है तो HttpServlet class को extend कीजिये नहीं तो GenericServlet class को extend कीजिये। 
  3. यदि आप HTTP servlet create कर रहे है तो doGet() और doPost() method से request handle करते है। और यदि आप generic servlets create कर रहे है तो life cycle methods में request handle करते है। 
  4. किस तरह की file produce होगी ये आपको पहले ही define करना होता है। जैसे की आप HTML define करेंगे। इसके लिए आप setContentType() method यूज़ करते है। इस method को response object पर call किया जाता है।   
  5. इसके बाद आप response object पर getWriter() method call करेंगे। ये method PrintWriter stream return करता है। इसलिए आप इसे PrintWriter object में store करेंगे। 
  6. इसके बाद आप PrintWriter object पर println method call करेंगे और उसमे अपना HTML code लिखेंगे। 
  7. इसके बाद आप इस object पर close() method call करके stream को close करेंगे। आप चाहे तो destroy() method का default implementation भी इस काम के लिए यूज़ कर सकते है।   

Example of Java Servlet 

public class HelloJava extends HttpServlet
{
    private String message;
    public void init() throws ServletException 
    {
          message = “Hello Java”;
    }
    public void doGet(HttpServletRequest request, HttpServletsResponse response)
    {
         response.setContentType(“text/html”);
         PrintWriter out = response.getWriter();
         out.println(“<h1>”+message+”</h1>”);
   }
   public void destroy()
   {
    }
}
Next: Java Swing

Java in hindi : Swing

Java Swing 

  • Introduction to java swing in Hindi 
  • Features of java swing in Hindi 
  • Java Swing hierarchy in Hindi 

Introduction to Java Swing 

Abstract windows toolkit की कामियों को पूरा करने के लिए swing को बनाया गया है। AWT library basic GUI controls provide करती है। Swing AWT का advanced version है। AWT के साथ 2 problems होती है।

  • AWT programs size में बहुत बड़े होते है। 
  • AWT components fixed रहते है, आप उन्हें ज्यादा change नहीं कर सकते है।       

इन दोनों problems को swing remove कर देता है। Swing AWT पर based बना हुआ है। इसलिए swing AWT को replace नहीं करता है। यदि आप AWT के साथ familiar है तो swing को समझने में आपको कोई परेशानी नहीं होगी।
    

Features of Java Swing

  • सभी swing कंपोनेंट्स Platform independent होते है।   
  • सभी swing components lightweight होते है।  
  • Swing plug-gable look and feel को support करता है।  
  • Swing MVC(Model-View-Controller) architecture को फॉलो करता है।   

Java Swing Classes

JWindow – JWindow container क्लास hierarchy को represent करती है। JFrame और JDialog क्लासेज इस class को higher करती है।

JFrame –  JFrame class AWT की frame क्लास के बेस पर बनायीं गयी है। ये एक container क्लास होती है। ये आपकी बेस window होती है जिसमे आप दूसरे components add करके अपनी एप्लीकेशन को design करते है।  इसमें आप different components जैसे की buttons, labels आदि add कर सकते है। Components add करने के लिए आप add() मेथड यूज़ करते है।

JDialog  – इस क्लास का ऑब्जेक्ट क्रिएट करके आप अपनी एप्लीकेशन में Dialog box डाल सकते है।

JComponent  – ये क्लास swing hierarchy में सभी components को represent करती है। सभी swing components इस क्लास को directly inherit करती है।

JLabel – इस क्लास का object क्रिएट करके आप text labels अपनी एप्लीकेशन में add कर सकते है।

JButton  – इस क्लास का object क्रिएट करके आप अपनी window में button ऐड कर सकते है। इसका ऑब्जेक्ट क्रिएट करते समय आप एक string पास  करते है जो की बटन का नाम होती है।

JTextField – इस क्लास का ऑब्जेक्ट create करके आप अपनी अपनी एप्लीकेशन में text box add कर सकते है।

JScrollBar – ये class एप्लीकेशन में scroll bar ऐड करने के लिए यूज़ की जाती है।

JMenuBar – इस क्लास के माध्यम से आप अपनी window में menu bar add कर सकते है।

JCheckBox  – इस क्लास का ऑब्जेक्ट क्रिएट करके आप अपनी window में check box add कर सकते है।

JList  – ये क्लास आपकी window में एक list ऐड करती है।

JTextArea – इस क्लास के माध्यम से आप अपनी एप्लीकेशन में text area ऐड कर सकते है।

JRadioButton  – ये क्लास application में radio button add करने के लिए यूज़ की जाती है।

Example of Java Swing

public class swingDemo
{
    public static void main(String args[])
    {
        JFrame frame = new JFrame();
        JButton button = new JButton(“Click here!”);
        
       button.setBounds(100,100,100,60);
       frame.add(button);
       frame.setSize(300,300);
       f.setVisible(true);
    }
}

Previous: Java Servlets

Java in hindi : How to compile & run a Java Program?

How to Compile and Run a Java Program

  • Through Eclipse Java IDE 
  • Through JDK console 

 

    Introduction to Java Code Compilation & Execution

    किसी भी जावा प्रोग्राम को रन करने के 2 तरीके होते है। मै जब java सिख रहा था तो हमे लैब में IDE का use करना मना था हमे सारे प्रोग्राम notepad में बनाने होते थे और console से उन्हें रन करवाना होता था।

    यदि आपके साथ भी ऐसा है तो आप console से जावा प्रोग्राम रन करवाना सिख लीजिये। लेकिन आपको दोनों तरीके पता होने चाहिए। 

    1. Through IDE (Integrated Development Environment)
    2. Through  Console

    1. Through IDE

    IDE से किसी भी प्रोग्राम को रन करवाना आसान होता है बस आपको प्रोग्राम टाइप करना है और रन बटन पर क्लिक करना है। सभी IDE जैसे की Eclipse, NetBeans आदि बटन प्रोवाइड करते है।

    जब हम इस बटन  पर क्लिक करते है तो IDE Java Compiler को execute करता है. मै आपको सलाह दूंगा की आप एक IDE जरूर डाउनलोड करे।

    2. Through Console

    Console से जावा program रन करवाने के steps निचे दिए हुए है.

    1. Run में cmd टाइप कीजिये और command prompt ओपन कीजिये।  

    2. Command prompt ओपन करने के बाद आप उस drive में जाइये जिसमे जावा install है और जावा के bin folder को locate कर लीजिये।

    3. अब आपको ये चेक कर लेना चाहिए की जावा ठीक तरह से काम कर रही है या नहीं इसके लिए आप javac कमांड टाइप कीजिये और enter प्रेस कीजिये आपको निचे की image जैसा कुछ शो होगा।

    4.  जो प्रोग्राम आप रन करवाना चाहते है उसे बिन फोल्डर में .java extension से सेव कर लीजिये जैसे MyProgram.java.  इसके बाद कमांड prompt में javac command टाइप करिये और इस फाइल का नाम लिख दीजिये। जैसे की javac MyProgram.java और फिर enter प्रेस कीजिये।

    यदि आपके प्रोग्राम में कोई errors होगी तो वो शो जाएगी नहीं तो आप दूसरी लाइन में आ जायेंगे। ये कमांड हमारे प्रोग्राम की executable file क्रिएट करती है. 

     5. अब आप java कमांड के आगे अपनी फाइल का नाम लिख दीजिये और एंटर प्रेस कीजिये।  जैसे java MyProgram. अब आपका प्रोग्राम रन हो जायेगा।

    Java in hindi : Serialization

    Java Serialization 

    • Introduction to java serialization in Hindi 
    • Serializable interface in Hindi 
    • Object input & output streams in Hindi 

    Introduction to Java Serialization 

    आप कोई video game खेल रहे है और उसमे आप बहुत आगे जा चुके है। अब आपको आपकी माँ खाना खाने के लिए बुलाती है। और आप video game बंद करके खाना खाने चल जाते है। थोड़ी देर बाद आप वापस आते है। और video game start करते है। आपने game को जँहा छोड़ा था game वापस वँही से start हो जाता है।

    कल्पना कीजिये कैसा हो यदि आपको ये game शुरू से खेलना पड़े। लेकिन ऐसा नहीं होता है। इसी प्रकार आपके program में कुछ ऐसी processing हो सकती है जिसे आप थोड़े समय बाद वापस उसी जगह से शुरू कर सकते है। Java के इस feature को Serialization कहते है।

    Serialization में आप object की state को save करते है। जैसे की आप कोई music player बना रहे है। तो आपको उसमे pause और play का feature जरूर add करना पड़ेगा। यदि यूज़र song को pause करके जब वापस play करता है और song शुरू से शुरू हो जाता है तो यूज़र को आपका music player बिलकुल पसंद नहीं आएगा। ऐसे situation में आप serialization को यूज़ कर सकते है।  
    जब आप किसी object की state को save करते है तो वो process serialization कहलाती है। और जब आप उस object को restore करते है तो वो process de-serialization कहलाती है। Object की state आप byte stream के द्वारा किसी file में store करवाते है। 
    तो आखिर क्या होता है जब आप किसी object को serialize करते है। जब आप किसी object को serialize करते है तो उसके data members की value file में store हो जाती है।

    जैसे की यदि कोई variable है EmployeeName और ये किसी employee का नाम store करता है। तो ये variable उस नाम के साथ file में store हो जाता है। जब आप object को deserialize करते है तो वापस ये value memory में load हो जाती है।

    Serializable Interface 

    किसी object को serialize करना बहुत आसान है। इसके लिए आपको serializable interface implement करना होता है। जो class serializable interface करती है उसके objects ही serialize किये जा सकते है। 
    class ClassToSerialize implements Serializable
    {
        String Name = “YourName”;
        int Age = 24;
     }
      

    Serializing Objects 

    जब भी आप किसी object को serialize करते है तो एक file क्रिएट होती है और object की current state उस file में store हो जाती है। किसी भी object को serialize करने के लिए आप ObjectOutputStream class का object create करते है।

    जब आप इस class का object create तो उसमे FileOutputStream class का object argument की तरह pass करते है। इसके बाद ObjectOutputStream class के object पर writeObject() method call करते है। जो object आप serialize करना चाहते है उसे आप इस method में argument की तरह pass करते है। 

    ऊपर दिए उदाहरण में ये बताया गया की कैसे एक class serializable interface को implement करती है। अब आपको ये देखना है की इस class के objects को कैसे serialize किया जाता है। इसका उदाहरण निचे दिया जा रहा है। 
    import java.io.*;
    public class HowToSerialize
    {
        public static void main(String args[]) throws IOException
        {
             FileOutputStream fstream = new FileOutputStream(“directory-address-of-file);
             ObjectOuputStream obstream = new ObjectOutputStream(fstream);
             ClassToSerialize CTS = new ClassToSerialize();
             
             obstream.writeObject(CTS);
        }
    }
           

    De-serializing Objects

    जब आप किसी object की processing फिर से शुरू करना चाहते है तो उसकी पुरानी state file में से memory में load की जाती है। किसी object को वापस file से memory में load करने के लिए आप ObjectInputStream class का object create करते है।

    Object create करते समय आप इसमें FileInputStream class का object argument की तरह pass करते है। इसके बाद आप ObjectInputStream class के object पर readObject() method call करते है। ये method आपको उस class का object return करता है। इसलिए आप इसको उसी class के reference variable में cast करके store करवाते है। 

    import java.io.*;
    public class HowToSerialize
    {
        public static void main(String args[]) throws IOException, ClassNotFoundException
        {
              FileInputStream fstream = new FileInputStream(“directory-address-of-file”);
              ObjectInputStream obstream = new ObjectInputStream(fstream);
              ClassToSerialize CTS2 = (ClassToSerialize) obstream.readObject();
              System.out.println(CTS2.Name);
              System.out.println(CTS2.Age);
         }
    }
    Previous: Java File I/O 

    Java in hindi : File I/O

    Java File I/O 

    • Introduction to java file I/O in Hindi 
    • Java Streams in Hindi 
    • Java Byte & character streams in Hindi

    Introduction to Java File I/O 

    जब भी यूज़र से program में input लेने की बात होती है तो ऐसा program run करवाने के बाद console की मदद से किया जाता है और output भी console पर ही देखा जाता है। कुछ software ऐसे होते है जो बहुत सारे data को एक साथ execute करते है।

    इसलिए उनमें input भी इतना ही अधिक दिया जाता है। लेकिन इतना सारा input किसी human के द्वारा हाथों से नहीं किया जा सकता है। Input के साथ ही कई बार output भी इतना अधिक हो सकता है की किसी human द्वारा इसको computer की screen पर देखना possible नहीं होता है।

    ऐसा भी हो सकता है की इस output की आपको किसी और execution में जरुरत पड़े या आप इसको print करना चाहते है। ऐसी situation में आप java के File I/O mechanism को यूज़ कर सकते है। 

    Java कुछ ऐसी classes provide करती है जिनकी मदद से आप input भी किसी file से read कर सकते है और output भी किसी file में store करवा सकते है। मेरा मतलब है यदि आप चाहे तो input console से लेने की बजाय किसी file से read कर सकते है और output भी console पर दिखाने की बजाए किसी file में store करके दिखा सकते है। 
    Files के द्वारा input और output operations perform करने के लिए आप stream को यूज़ करते है। Data की sequence को stream कहते है। Inputstream से input लिया जाता है। और output stream से output लिया जाता है।

    Java में streams 2 तरह की होती है। Byte stream में data bytes की form में होता है और character stream में data character की form में होता है। इन दोनों तरह की streams के बारे में निचे दिया जा रहा है।

    Byte Stream

    Byte stream में data bytes की form में होता है। इसमें input और output के लिए 2 classes provide की गयी है। ये दोनों abstract classes होती है। ये classes ऐसे methods provide करती है जिनकी मदद से आप files के साथ operations perform करते है। इन classes के बारे में निचे दिया जा रहा है। 

    InputStream

    ये एक abstract class है। ये byte input stream class होती है। FileInputStream class इसे extend करती है। और इसके methods को file operations के लिए यूज़ करती है। 
    Method
    Description
    int read()
    Reads data from file in form of bytes.
    void close()
    Closes input stream
       
    FileInputStream एक byte stream input class है। इस class का object create करके आप byte input stream create करते है। फिर इस object पर different methods call करके files के साथ operations perform करते है। 
    import java.io.*;
    public class FileIOExample
    {
         public static void main(String args[]) throws IOException
         {
             FileInputStream in = new FileInputStream(“directory-address-of-file”);
             int a;
             while((a = in.read()) != -1)
             {
                  System.out.println((char)a);
                  in.close();
             }
         }
    }

    OutputStream 

    ये एक abstract class होती है। ये एक byte output stream class है। FileOutputStream class इसे extend करती है। इस class के कुछ methods निचे दिए हुए है जो FileOutputStream class यूज़ करती है। 
    Method
    Description
    int write()
    Writes data to file in form of bytes. 
    void close()
    Closes output stream
        
    FileOutputStream class एक byte stream output class है। सबसे पहले आप इस class का object क्रिएट करते है और फिर उस object पर write method call करके bytes() को file में write() करते है। 
    import java.io.*;
    public class FileIOExample
    {
        public static void main(String args[]) throws IOException
        {
            FileOutputStream out = new FileOutputStream(“directory-address-to-store-file”);
            a = 5;
            
            out.write(a);
            out.close();
        }
    }        
        

    Character Stream

    Character stream में data bytes में ना होकर सीधा characters की form में होता है। Character stream में input और output के लिए 2 abstract classes यूज़ की जाती है। इन classes के बारे में निचे दिया जा रहा है। 

    Reader 

    Reader एक abstract class है। ये एक character input stream class है। FileReader class इसे extend करती है। इस class के methods निचे दिए जा रहे है। 
    Method
    Description
    int read()
    Reads data from file in form of characters. 
    void close()
    Closes output stream
           
    FileReader एक character input stream class है। ये Reader class को extend करती है। इस class का object create करके आप character input stream create करते है। फिर उस object पर read method call करके data read करते है। 
    import java.io.*;
    public class FileIOExample
    {
       FileReader in = new FileReader(“director-address-of-file”);
       
       int a;
       
       while((a=in.read())!=-1)
       {
            System.out.print((char)a);
            in.close();
       }
    }
        

    Writer 

    ये एक abstract class है। ये एक character output stream class है। FileWriter class इसे extend करती है। इस class के कुछ methods होते है जिन्हें FileWriter class यूज़ करती है। 
    Method
    Description
    int read()
    Writes data to file in character form.  
    void close()
    Closes output stream
         
    FileWriter class का object create करके आप character output stream क्रिएट करते है। फिर उस object पर write() method call करके data write() करते है। 
    import java.io.*;
    public class FileIOExample
    {
       public static void main(String args[]) throws IOException
       {
           FileWriter out = new FileWriter(“directory-addres-of-File”);
           
          int a = 5;
          out.write();
         out.close();
       }
    }
         
    Previous: Java Multithreading
    Next: Java Serialization

    Java in hindi : Collections Framework

    Java Collections Framework 

    • Introduction to java collections framework in Hindi 
    • Java Collection interface in Hindi 
    • Java collections framework interfaces in Hindi

    Introduction to Collections Framework 

    यदि आपने data structures पहले से पढ़ रखा है तो java collections आप आसानी से समझ सकते है। Java में बहुत सारे objects को एक साथ organize करने के लिए कुछ data structures (set, list, queue and array) यूज़ किये जाते है। इन data structures को java में collections कहते है।

    इन data structure के collection को collection framework कहा जाता है। इन collections की मदद से आप objects के साथ वो सभी operations ( searching, sorting, insertion, deletion आदि) perform कर सकते है। जो आप normal data के साथ करते है। 

    Collections framework में आपके काम को आसान बनाने के लिए पहले से ही classes और interfaces provide किये गए है। ये classes इन interfaces को implement करती है। इन classes को extend करके आप आसानी से objects को organize कर सकते है।

    आपको अलग से data structure क्रिएट करने की जरुरत नहीं है। Collections framework के सभी interfaces और classes generic है, इसलिए object का type आप collection क्रिएट करते समय देते है। इन interfaces और classes के बारे में निचे दिया जा रहा है।

    Collection Interface

    Collections framework के सभी interfaces collection interface को by default implement करते है। Collection interface ऐसे बहुत सारे methods provide करता है जो आप objects को manage करने के लिए यूज़ करेंगे। इन सभी methods की list निचे दी जा रही है।

    Methods
    Description
    Boolean add(E obj)
    इस method के द्वारा आप collection में object add करते है।    
    Void clear()
    ये method call होने पर collection के सभी objects को remove कर देता है।   
    Boolean contains(Object obj)
    इस method के द्वारा आप collection में object search कर सकते है। यदि object मिलता है तो ये method true return करता है।    
    Boolean equals(Object obj)
    ये method calling collection के object से pass किये गए object को compare करता है और equal होने पर true return करता है।   
    Boolean isEmpty()
    यदि call करने वाला collection empty होता है तो ये method true return करता है।   

    List Interface 

    ArrayList और LinkedList classes list interface को implement करती है। ये classes objects को list की तरह store करती है। एक list collection में आप duplicate objects भी store कर सकते है। इन classes का object create करके आप objects को list की तरह store कर सकते है। 

    ArrayList

    ArrayList<objType> ArrList = new ArrayList<objType>();
    arrList.add(obj1);
    arrList.add(obj2);
    arrList.add(obj3);

    LinkedList

    LinkedList<objType> linklist = new LinkedList<objType>();
    linklist.add(obj1);
    linklist.add(obj2);
    linklist.add(obj3);

    Set Interface

    HashSet or TreeSet classes set interface को implement करती है। Set collection में objects किसी set की तरह ही store किये जाते है।
    इसमें आप duplicate objects नहीं store कर सकते है। इन दोनों में से किसी भी class का object create करके आप set collection क्रिएट कर सकते है। 

    HashSet 

    HashSet<objType> hSet = new HashSet<objType>();
    hSet.add(obj1);
    hSet.add(obj2);
        

    TreeSet

    TreeSet<objType> tSet = new TreeSet<objType>();
    tSet.add();
    tSet.add();

    Queue Interface

    Queue interface को PriorityQueue class implement करती है। जब भी आप इस collection में objects store करते है तो वे First In First Out की form में store होता है। 

    PriorityQueue 

    PriorityQueue<objType> pQueue = new PriorityQueue<objType>();
    pQueue.add(obj1);
    pQueue.add(obj2);

    Map Interface

    HashMap और TreeMap class Map interface को implement करती है। Map collection में data key और value के pair में store किया जाता है। हर element को store और access करने के लिए key यूज़ की जाती है। Map collection में elements unique होते है। 

    HashMap

    HashMap<objType> hMap = new HashMap<objType>();
    hMap.add(key,obj1);
    hMap.add(key.obj2);
           

    TreeMap 

    TreeMap<objType> tMap = new TreeMap<objType>();
    tMap.add(key,obj1);
    tMap.add(key,obj2);

    Iterator Interface

    Collection interface की तरह ही सभी interface Iterator interface को भी by default implement करते है। ये interface iterator(), hasNext() और next() methods provide करता है। इन methods की मदद से आप अपने collection को traverse कर सकते है।

    सबसे पहले आप collection पर iterator() method call करते है। ये method collection के first element की index return करता है। इसको आप iterator interface के reference variable में store करवाते है।

    इसके बाद आप hasNext() method को यूज़ करते हुए loop चलाते है। और next() method के द्वारा collection की सभी values को traverse करते है। 

    ArrayList<objType> aList = new ArrayList<objType>();
    aList.add(key,obj1);
    aList.add(key,obj2);
    Iterator<objType> itr = aList.iterator();
    while(itr.hasNext())
    {
        System.out.println(itr.next());
    }              

    Java in hindi : Strings

    Java Strings 

    • Introduction to java strings in Hindi
    • Operations on java strings in Hindi 
    • Length of java strings in Hindi

    Introduction to Java Strings 

    Strings characters की sequence होती है। जैसे की “Java in Hindi” एक string है। Java में strings को objects की तरह implement किया गया है। ऐसा इसलिए किया गया है, ताकि strings पर operations perform किये जा सके।

    Operations जैसे की 2 strings को जोड़ना या compare करना आदि आप strings पर perform कर सकते है। String एक class है। आप normal string variables भी create कर सकते है और string class का object भी create कर सकते है। और दोनों के साथ ही operations perform कर सकते है।  
    String myString = “this is a string”;   // variable 
    String myString = new String(“This is a string”);   // object 
      
    String को एक variable की तरह और एक object की तरह यूज़ करने में फर्क होता है। जब आप string को object की तरह यूज़ करते है तो एक बार object create होने के बाद आप उसमे कोई change नहीं कर सकते है। उदाहरण के लिए ऊपर दिए हुए example को देखिये मैने myString नाम से object बनाया है।

    लेकिन अब इसके text “This is a string” में कोई change नहीं किया जा सकता है”. लेकिन जब आप string को variable की तरह यूज़ करते है तो उसमे आसानी से changes किये जा सकते है। 

    Java कुछ methods provide करती है, जिनसे आप string object में modification कर सकते है। लेकिन जब भी आप ऐसा करते है तो एक नया string object generate होता है। Original string object में कोई change नहीं आता है। इन सभी operations के बारे में निचे दिया जा रहा है।

    String Length

    किसी भी string में जितने characters होते है वो उस string की length होते है। किसी भी string की length पता करने के लिए आप length() method यूज़ कर सकते है। इसके लिए आप उस string पर length method call करते है। 
    String myString = “hello”;
    System.out.println(myString.length());
          

    Concatenating Strings

    जब किन्हीं 2 strings को जोड़कर एक तीसरी string बनायीं जाती है तो उसे string concatenation कहते है। ऐसा आप + operator के द्वारा भी कर सकते है और concat() method के द्वारा भी कर सकते है। इन दोनों ही तरीकों के उदाहरण निचे दिए जा रहे है।

    String myString = “This is a string”;
    String yourString = “This is your string”;
    String ourString = myString+yourString; // with + operator 
    ourString = myString.concat(yourString); // with concat() method 
    System.out.println(ourString);

      

    String Indexing with charAt()

    ये method string में से किसी एक method को extract करने के लिए यूज़ किया जाता है। Strings की indexing arrays की तरह ही होती है। पहला character 0 index पर होता है।

    इसलिए आप string के किसी भी single character को access कर सकते है। इसके लिए आप charAt() method यूज़ करते है। जो index number आप इस method में pass करते है ये method उसी index के character को return करता है।         

    String myString = “hello”;
    System.out.println(myString.charAt(3)); 

    String Indexing with substring()

    किसी string में substring search करने के लिए आप substring() method यूज़ करते है। इस method में आप 2 arguments pass करते है। पहला argument वो index number है जंहा से आप string को access करना चाहते है।

    और दूसरा argument वो index number है जँहा तक की string आप access करना चाहते है। ये method starting index से लेकर ending index तक की string return करता है। 

    String s1 = “hello my name is khan”;
    System.out.println(s1.substring(5,8));
           

    String Indexing with indexOf()

    कौनसी substring किस index पर है ये पता करने के लिए आप indexOf() method यूज़ करते है। इस method में एक substring pass की जाती है। ये method उस substring की starting index return करता है। 
    String s1 = “hello my name is khan”;
    System.out.println(s1.indexOf(“my”)); //returns 7
          

    String Comparison with equals() 

    कोई सी भी 2 strings को compare करने के लिए Equals() method यूज़ किया जाता है। यदि दोनों strings equal होती है तो ये method true return करता है।

    एक string पर इस method को call किया जाता है और दूसरी string argument की तरह pass की जाती है। इसका उदाहरण निचे दिया जा रहा है। 

    String s1 = “hello”;
    String s2 = “hello”;
    System.out.println(s1.equals(s2)); // prints true
           
    Previous: Java Variables
    Next: Java Arrays