2. java - හැදින්වීම

java - හැදින්වීම

මෙම Java හැදින්වීම දැන ගැනීමට පමණයි. මතක තබා ගැනීමට අවශ්‍ය නොවේ. Java ඉගන ගන්න හේතු ගොඩක් තියනවා ඉන් කිහිපයක් සවිස්තරව සදහන් කරන්නම්.

  1. අැයි මම java ඉගන ගන්නේ?

  • java පිළිබඳ තොරතුරු විශාල ප්‍රමාණයක් තිබීම (පොත්‍, වෙබ් අඩවි, විඩියෝ)
  •    Java පිළිබද තොරතුරු, පාඩම් මාලා, සකච්චා වෙබ් අඩවි බොහෝමයක් අන්තර්ජලය මගින්ද තව ප්‍රධානවම පොත් විශාල ප්‍රමාණයක්ද ලියවී අැත. මින් මම අදහස් කරනුයේ java ඉගන ගැනීමට නොදන්නා දේවල් දැන ගැනීමට, ගැටලු හෝ තෙරුම් ගැනීමට අපහසු බොහෝ දේ සරලවම අන්තර්ජාලය මගින් ලබා ගත හැක. Java සොයා ගැනීමෙන් අවුරුදු ගණනාවක් වන බැවින් ඔබට අැති ඕනෑම ප්‍රශ්ණයකට පිළිතුරු හෝ ඒ හා සමාන පිළිතුරු ලබාගත හැක. උදා :-stackoverflowමෙම වෙබ් අඩවිය ප්‍රශ්ණ වලට පිළිතුරු ලබා ගැනීමට මෙන්ම ප්‍රශ්ණ වලට පිළිතුරු දීමට තිබෙන විශලතම community එක වන අතර java මෙහි අැති දෙවන විශාලතම ප්‍රශ්ණ හා පිළිතුරු අැති programming language එක වේ, Head First Javaබොහෝ ප්‍රවීණයන් පවා නිර්දේශ කරනු ලැබූ පොතකි මොකද මෙහි අන්තර්ගතය තේරුම් ගැනීමට පහසුයි මෙන්ම වැදගත් තොරතුරු විශාල වශයෙන් අන්තර්ගත වේ.

     read more - stackoverflow
  • Object Oriented Programming (OOP)

  • මෙහි තේරුම "වස්තු නැඹුරු භාෂාව" නමුත් ඔබ මෙම වචන සිංහලෙන් මතක තියා ගන්න එපා English වචන භාවිතයට හුරු වන්න. තවද පෙර කියුවා සේම සිංහල සහ English වචන සෑම පාඩමක් අවසානයේම සදහන් කරනවා(Word Glossary). 
         ඔබ programming වලට අළුත් නම් මුලින්ම මෙම Java Basic පාඩම් මලාව අධ්‍යනය කරන්න. මොකද Basic (මුලික දැනුම) නොමැතිව තේරුම් ගැනීමට අපහසුය. OOP බාවිතා කර application develop කිරීම ඉතා පහසුයි මෙන්ම කොටස් කොටස් වශයෙන් තබා ගැනීමෙන් නැවත කියවා තෙරුම් ගැනීමට(Re-usability), හැසිර වීමට ඉතා පහසු වීම(Maintainability) සහ නැවත නැවත එකම application එක වැඩි දියුනු(Implement) කරගත හැකි වීම මගින් කාලය විශාල වශයෙන් ඉතුරු කර ගත හැක.
         OOP බාවිතා කිරීම software development රැකියාමය වශයෙන් අනිවාර්ය වේ(industrial Standard).
          SLCoder OOP පාඩම් මලාව මගින් ඔබට ඉගන ගත හැකි සේම අනෙකුත් පාඩම් මාලාවන්හිත් Project සියල්ලෙහිත්වි බාවිතා වන බැවින් OOP බාවිතය පහසු වේ.
            

  • බලවත් සංවර්ධන මෙවලම්/ මෟදුකාංග තිබීම.(Development tools/ software)

Development tools කියන්නෙ java භාවිතා කර programming කිරීම සදහා නිපදවා අැති මෟදුකාංග සහ අනෙකුත් supporting tools විශාල ප්‍රමාණයක් තිබීම. එම මෟදුකාංග භාවිතා කරමින් programming කිරීමේදී ගොඩක් සරලව‍, පහසුවෙන් විශාල වැඩ ප්‍රමාණයක් කරගත හැක.
      IDE(Integrated Development Environment) මෙයට හොද උදාහරණයක් වේ. අප යම්කිසි දෙයක් type කර තබා ගැනීමට notepad භාවිතා කරන අාකාරයට java code type කර ගැනීමටද භාවිතා කර හැක. නමුත් notepad භාවිතා කර  coding(programs ලිවීම) කරනවානම් එය කරදර කාරී වේ. මොකද ඔබට errors(දෝශ) හදුනා ගැනීමට, සියලුම codes type කිරීමට වීම, cmd(command prompt) මගින් compile කිරීමට සිදුවීම වැනි බොහෝ දුශ්කරතාවයන් තිබීම. මෙන්ම මෙම හේතුන් නිසා java මෟදුකාංග(software) සංවර්ධනය(Development) සදහා විශේෂ වු බලවත් IDE අැත. උදාහරන වශයෙන් netbeanseclipse වැනී java සදහාම විශේෂ වු IDE වේ. තවද ගොඩක් developers(මෟදුකාංග සංවර්දකයින්) භාවිතා කරනුයේ මෙම IDE වේ. මෙවායේ විශේෂතාවයන් පහසුකම් ගොඩක් අැත.
       ඉදිරි පාඩම්(Java Basic) සදහා eclipse බාවිතා කරනු ලබන අතර GUI software developing පාඩම් මාලාව සදහා netbeans භාවිතා කරයි.

                read more - IDE(wikipedia)

  • Platform Independence

          මෙහි තේරුම වනුයේ java program එකක් Operating System(මෙහෙයුම් පද්දති) ගණනාවක program එක වෙනස් නොකර භාවිතා කර හැකි වීමයි. java most popular(ඉතා ජනප්‍රය) language එකක් වීමට බලපෑ හේතුවක් වන අතර C, C++, Pascal වැනි languages platform Dependent වේ.

             read more - stack exchange

  • විශාල වශයෙන් Open Source Libraries තිබීම

         Open Source යනු computer software මුදල් නොමැතිව source codes(මූල කේත) ලබාගෙන(free download) අපට අවශ්‍ය පරිදි වෙනස් කරීමව(change), අධ්‍යනයට(study), ඔනෑම අයෙකුට බෙදා හැරීමට(distribute) හැකි පරිදි හිමිකහම් ලබා දීමයි(copyright).
          Libraries යනුවෙන් මෙහිදී අදහස් කරනුයේ ඹබ විසින් code කරනවා වෙනුවට ඒවා download කර හෝ programming language එක සමග අැති(Built-in) object files(යන්ත්‍රක කේත අඩංගු) වේ. මෙම libraries  ඔබගේ program එකට import(අැතුලත් කර ගැනීම) කර ගෙන බාවිතා කර හැක. අඩු codes ප්‍රමාණයක් type කිරීමට අවශ්‍ය වීම, code කරීම සරල/පහසු වීම මෙම කරණා නිසා කාලය ඉතිරි කර ගත හැක. මෙම open source libraries  google, apache වැනි company මගින් 100%  අත්හදා බාල නිකුත් කරනු ලැබේ.
         ඔබට අවශ්‍ය libraries google search කර ලබා ගත හැකි මෙන්ම එම code බාවිතා කරන අාකාරයද ලබා ගත හැක(documentation). slcoder පඩම් මාලා මගින්ද open source libraries බාවිතා කරන අවස්තාවන්හිදී පැහැදිලි කරනුු ලැබේ.
            
             read more - wikipediawebopedia

  • (API) Application Programmable Interface
          මෙම වචන ගැන බය වෙන්න එපා මොකද මේවා ඔබ ඉගන ගන්නා විට සරල බව තේරෙයි. දැනට අදහසක් විතරක් ගන්න. මෙම පාඩම් මාලාවේ API අඩංගු නොවේ. මීට පෙර  මෙම(java basics) පාඩම් මාලාව හොදින් අධ්‍යනය කරන්න.
         API කියන්නෙ application Programmable Interface හි කෙටි යෙදුම වේ. මෙහි තේරුම වනුයේ උපදෙස් මාලාවන් ගණනාවන් protocols සහ tools භවිතා කර application software නිපදවීමයි. API මගින් apps develop කිරීම ඉතා සරල වීමට අවශ්‍ය සියළුම codes සපයයි. මෙම codes එකලස් කර ගෙන තම program එක සකසා ගත හැක.

           read more - youtube videowikipedia
  • Documentation Support and Community Support
         Documentation Support(Javadocs) - javadocs කියන්නෙ java හිමිකම සතු Oracle අයතනය සතු document generator එක වේ. මෙය java programmer කෙනෙකුට විශාල ප්‍රයෝජනයක් ලබා ගත හැක. API source code අැතුළුව තොරතුරු බොහෝමයක් ලබාගත හැක. web browser නොමැතිව ඔබ code කරන අතර තුර ඔබගේ IDE එක හරහා තොරතුරු ලබා ගත හැක.
          
       Community Support - java ඉගන ගන්නා අයට මෙන්ම java expert(ප්‍රවීණ) අයද internet forums(සාකච්චා කිරීමට අැති වෙබ් අඩවි) භාවිතා කරගනිමින් ගැටළු විසදා ගැනීමට, අදහසක් හෝ පිළිතුරක් ලබා දීමට හැකියාව අැත. මෙහිදී ප්‍රවීනයන්ගෙන් උදව් ලබා ගැනීමට හැකි වීම විශාල වාසියකි.
          Java වෙනුවෙන් විශාල වශයෙන් forums, java groups and Open Source Organization අැති අතර ලොව විශාලතම community support වෙබ් අඩවිය වන Stackexchange හි programming සදහා වෙන් වු stackoverflow හි java පිළිබද විශාල ප්‍රමාණයක් ප්‍රශ්ණ හා පිළිතුරු අඩංගු වේ. ඔබගේ දැනුමද share(බෙදා) කර ගත හැක.

  • Java is Free
      Java උපයොගී කර ගනිමින් app develop කිරීමට කිසිදු මුදලක් අය නොවේ. තවද  java app develop කිරීමට අවශ්‍ය බොහෝ tools සදහා කිසිදු අය කිරීමක් අවශ්‍ය නොවන අතර programmers සහ java භාවිතා කරන company අතර ජනප්‍රය වීමට තවත් හේතුවක් විය.

  • බොහෝ තාක්ෂණයන් සදහා java භාවිතා කිරීම
      java භාවිතා නොවන තැනක් නොමැති තරම්. මෙයට හේතුව වී අැත්තේ java වල අැති සුවිශේෂි ගුණාංගයන් වන scalability (software එකෙහි ක්‍රියාකාරීත්වය වැඩි කිරීමේ හැකියාව), Stability(java code හි අැති වේගත්වයන් සහ බලවත් බාවය), Maintainability(මෙහෙයවීමේ හැකියාව).
       මෙම scalability, stability, maintainability ගැන සවිස්තරව මෙන්ම මෙම හැකියාවන්ගෙන් යුත් software සකසන අාකාරය ඉදිරි පාඩම් මාලා මගින් ඔබට අධ්‍යනය කල හැකි අතර මෙවා ගැන දැනට කලබල වීමට අවශ්‍ය නැත. 
       තවද Android apps java භාවිතා කර program කර අැත. Android apps සෑදීමට පාඩම් මාලාව ඉදිරියේදී ඔබට ඉගනීමට හැකිය. එයටද java basic පාඩම් මාලාව මානා පුහුණුවක් අවශ්‍ය වේ.


           read more - go.javanewrelic blog

  • රැකියා(Development) බහුල වීම
       වෙනත් රටවල් වල මෙන්ම ලංකාව තුලද java jobs බහුල වේ. රැකියා ස්ථාන වල පමණක් නොව remote working(ඔනම තැනක සිට වැඩ කිරීමට) මෙන්ම freelancing(තමා විසින්ම මෟදුකාංග සාදා අලෙවි කර ගැනීම) සඳහාද java විශාල වශයෙන් භාවිතා කරයි.

        see jobs - indeed.com

  1. මොනවටද java භාවිතා කරනුයේ?


  • Desktop app development(පරිගණක මෟදුකාංග සංවර්ධනය)
  •     
    java තාක්ෂණයන් භාවිතා කරමින් විවිධ මෙහෙයුම් පද්ධති(Operating System- OS) සදහා ගැලපෙන පරිධි මෟදුකාංග(software) සංවර්ධනය(Develop) කර ගත හැකි වේ. මෙහිදී java භාවිතයෙන් computer software නිපදවීමට අවශ්‍ය වනුයේ
    පරිගණක ජාල(network) (java networking- අන්තර්ජාලය භාවිතා කර ගැනීවමේ පාඩම් මාලාව) - අත්‍ය අවශ්‍ය නොවේ.

  • Mobile app development(ජංගම මෟදුකාංග සංවර්ධනය)
  •     
    Mobile apps සදහා විවිධ  programming languages භාවිතා කරන අතර java යොදා ගනිමින් Android apps(මුලික භාෂාව java වන අතර වෙනත් languages භාවිතා කල හැක) ද Objective C යොදා ගනිමින් iphone apps ද C# භාවිතා කරමින් Windows(OS) phone app සහ BlackBerry සදහා ප්‍රධානව java භාවිතා කරයි.
        මීට අමතරව javascript(java හා කිසිදු සම්බන්ධයක් නොමැත), HTML, CSS සහ‍ AngularJS(javascript framework) වැනි programming සහ markup languages භාවිතා කරයි. මේවා java හා කිසිදු සම්බන්ධයක් නොමැති අතර software development සදහා අත්‍ය අවශ්‍ය නොවේ.
    Android app develop කිරීම සදහා slcoder Android app development පාඩම් මාලාව මගින් ඔබට මුලික දැනුමේ සිට සංකීර්න app development දක්වාම සරලව ඉගන ගත හැක. මේ සදහාද java මුලික දැනුම අත්‍ය අවශ්‍ය වන බැවින් මෙම(java basic) පාඩම් මාලාව අධ්‍යනය කරන්න.
        තවද ඔබට C# සහ Objective C පාඩම් මාලා සහ මෙම languages භාවිතයෙන් mobile app development සදහා පාඩම් මාලා ලගදීම ලබා දෙන්නම්.

  • Web app development(අන්තර්ජාල මෟදුකාංග සංවර්ධනය)
  •     
    Web development සදහා අනිවාර්යයෙන්ම ඔබ HTML, CSS javascript ඉගන ගැනීමට අවශ්‍ය වේ. ඊට අමතරව server side(back end) development සදහා JSP(Java Server Page), servlet, Hibernate, J2EE Struts සහ තවත් java API, Framework අැත.
           Web Designing සහ Web Developing අතර වෙනස දැන ගැනීමට මෙම slcoder post එක කියවන්න.
           Server Side(Back End)  client side(Front End) ගැන වැඩි විස්තර සදහා මෙම slcoder post එක                  කියවන්න.
    මීට අමතරව Science, Maths, Image Processing, Robotics, AI සහ Automation cars වැනි තවත් බොහෝ තාක්ෂණයන් සදහා java භාවිතා කරයි.

  1. මොනවද java හි අැති විශේෂාංග(Features)?

  2. java හි විශේෂාංග ගණනාවක් අැත. ඒ අතරින් කිහිපයක් විස්තර කරන්නම්.

    • Simple

    • C සහ C++ programming languages වල තිබෙන syntax භාවිතයෙන් java syntax නිර්මාණය කර අැති අතර java හි header files, preprocessors අවශ්‍ය නොවේ. එමෙන්ම pointers, memory management නොමැත. Java හි අැති garbage collector විසින් memory management සිදු කරයි. Programmer(ඔබට) මතකය(computer memory) ගැන කරදර වීමට අවශ්‍ය නොවේ. තවද libraries සහ API විශාල ප්‍රමාණයක් අැති බැවින් java programming පහසුය.

    • Object Oriented

    • OOP භාවිතා කරමින් පහසුවෙන් කාලයද ඉතුරු කර ගනිමින් නැවත නැවත එකම code භාවිතයට ගත හැක. Java යනු OOP බවිතා වන programming language එකවේ.

    • Portable

    • java program එකක් Windows හෝ වෙනත් ඕනැම OS(Operating System) එකක run(දාවනය) කර ගත හැක. එය සිදු කරනු ලබන්නේ java compiler විසිනි. C language සහ Pascal වැනි programming languages non-portable වේ. නොහොත් program එක වෙනස්(modify) කිරීමට සිදුවේ. (Linux OS සාදන ලද program එකක් Windows OS හි දාවනය(run) කිරීමට නොහැක). 

    • Architecture-neutral

    • Java program එකක් computer System Architecture(පරිගණක පද්ධති අකෟතිය) එකක විතරක් නොව වෙනත් ඕනෑම hardware Architecture(දෟඩාංග අාකෟතිය) එකක run කර හැක. 

    • Robust

    • Java හි අැති වේගවත් බව එහි අැති ශක්තිමත් බව වේ. Java language එක ශක්තිමත් වීමට ප්‍රධාන හේතු වනුයේ
      Automatic garbage collection(ප්‍රධාන මතකයෙහි(RAM) එකතු වන අනවශ්‍ය දත්ත ඉවත් කිරීම).
      Strong memory allocation(program එකෙහි අවශ්‍යතාවයන් සදහා memory භාවිතය ශක්තිමත්ය).
      Powerful exception handling(program එකෙහි අැති errors පාලනය ශක්තිමත් හා විධිමත් වේ). 

    • Distributed

      Java භාවිතයෙන් distributed apps නිර්මාණය කල හැක. Distributed Application යනු ජාලයක(Network) අැති පරිගණක කිහිපයක එකවර එකම software එක බාවිතා(use) කිරීමයි. තවද servers හෝ cloud වල ගබඩා(store) කල හැක. මෙම application සදහා java EJB, RMI භාවිතා කරයි.

    • Multi-threaded

      Program කොටස් කිහිපයක් එකවර නියමිත කාල පරාසයක් තුල ක්‍රියා කිරීමයි.මෙම program කොටස් සදහා common memory area හුවමාරු කරගන්නා බැවින් memory වැඩි වශයෙන් භාවිතා නොකරයි.

      තවද High performance, Networked, Dynamic, Secure සහ Interpreted කියන්නෙ තවත් features වේ.
        read more - javatpoint

Have a look at this video also:

No comments:

Post a Comment

Java data types in Sinhala