আসুন শিখি পরিপূর্ণ জাভা [পর্ব-২] :: জাভাতে এমন কি আছে যে জন্য আপনি জাভা কে পছন্দ করবেন?

আস সালামু আলাইকুম, সবাইকে ঈদের অগ্রিম শুভেচ্ছা দিয়ে শুরু করছি আজকের এই টিউন। আশা করি সবাই ভাল আছেন। আর ভাল থাকুন সব সময় এটাই আমাদের কামনা। তো আজকে পরিপূর্ণ জাভার ২য় টিউনে আমি আপনাদের সাথে আলোচনা করবো এ বিষয়ে যে, এত প্রোগ্রামিং ল্যাঙ্গুয়েজ থাকতে আপনি জাভাকে কেন আপনার পছন্দের লিষ্টে রাখতে পারেন।

আসলে যেকোনো কাজ শেখার আগে তার সম্পর্কে ভালভাবে জেনে নেয়া উচিত। নাহলে পরে পস্তাতে হবে। মনে করুন আপনার কাছে একটা সোনার বার আছে কিন্তু আপনি সোনা চিনেন না। তাহলে ঐবারের কোনো মূল্য আপনার কাছে নাই। কিন্তু যে জানে তার কাছে সেটা অনেক মূল্যবান এবং সে সেটাকে যত্ন করে রাখবে। তাই কোনো জিনিস শেখার আগে সে জিনিসের মূল্য আর কেন সেই জিনিস শিখতেছেন সেটা ক্লিয়ার হয়ে নেওয়া ভাল। তো চলুন আজ আর কথা বাড়াবো না সরাসরি চলে যাই আজকের মূল টপিক্স এ।

জাভাতে এমন কি আছে যে জন্য আপনি জাভা কে পছন্দ করবেন?

জাভার রয়েছে ৪টি প্লাটফর্ম বা ইডিশন

জাভার রয়েছে ৪টি প্লাটফর্ম বা ইডিশন। এগুলো হলঃ

১। Java SE(java standard Edition): 

এটা একটা জাভা প্রোগ্রামিং প্লাটফর্ম। এতে java.lang, java.io, java.net,java.util,java.sql,java.math ইত্যাদি এপিআই যুক্ত রয়েছে।এছাড়া এতে মূল যে টপিক্সগুলো রয়েছে সেগুলো হল  OOPs(object oriented concept),regex,exeption,inner classes, multithreading,I/O Stream,networking, Awt,Swing,Reflection, Collection ইত্যাদি।

২। Java EE (java enterprise Edition):

এটি একটি এন্টারপ্রাইজ প্লাটফর্ম যেটা প্রধানত ওয়েব ডেভেলপ ও এন্ট্রারপ্রাইজ এপ্লিক্যাশন এর ক্ষেত্রে ব্যবহৃত হয়। এটা জাভা Se এর উপরের প্লাটফর্ম। এখানে যে টপিক্স গুলো রয়েছে সেগুলো হল Servlet, Jsp,web services,ejb,jpa ইত্যাদি।এগুলোর বিস্তারিত অনেক পড়ে আলোচনা করা হবে।

৩। Java ME(java micro Edition):

এটা একটা ছোট্ট প্লাটফর্ম যেটা মূলত মোবাইল এপ্লিক্যাশন ডেভেলপ করার কাজে ব্যবহৃত হয়।

৪। JavaFX:

এটা মূলত ইন্টারনেট এপ্লিকেশন কে ডেভেলপ করার কাজে ব্যবহৃত হয়।

এছাড়া যে ফিচারগুলোর জন্য আপনি জাভাকে পছন্দ করতে পারেনঃ 

খুবই সহজ

Sun এর তথ্য অনুযায়ী জাভা একটি সহজ প্রোগ্রামিং ল্যাগুয়েজ। কারণ এর সিন্টেক্স সি++ এর উপর ভিত্তি করে নির্মিত। তাই যদি কেউ সি++ শিখে আসে তাহলে জাভা তার কাছে একদম সহজ মনে হবে। তবে অবশ্যই কিছু জিনিস আছে যেগুলো সি++ এর সাথে মিলবে না। যেমন,  explicit পয়েন্টার, অপারেটর ওভারলোডিং জাভা সাপোর্ট করে না। এছাড়া জাভায় রয়েছে অটোমেটিক গার্ভেজ কালেকশন।

অবজেক্ট অরিয়েন্টেড ল্যাঙ্গুয়েজ

অবজেক্ট অরিয়েন্টেড বলতে বুঝায় আমরা আমদের সফটওয়্যাকে বিভিন্ন ধরণের অবজেক্টের মাধ্যমে এর ডাটা এবং চরিত্রকে সাজাবো। অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং হচ্ছে এমন এক ধরণের পদ্ধতি যার মাধ্যমে সহজেই কোনো সফটওয়্যারকে ডেভেলপ করা এবং মেইন্টানেস্ন করা যায়। অব্জেক্ট সম্পর্কে পরবর্তীতে বিস্তারিত আলোচনা করা হবে।

তবে অব্জেক্ট অরিয়েন্টেড প্রোগ্রামিং এর বেসিক কন্সেপ্ট হচ্ছে ঃ

  • অব্জেক্ট
  • ক্লাস
  • ইনহেরিটেন্স
  • পলিমরফিজম
  • ডাটা অ্যাবস্ট্রাকশন
  • এনক্যাপসুলেশন

পোর্টেবল

জাভার বাইটকোড আমরা যেকোনো প্লাটফর্মে নিয়ে যেতে পারি।

স্বাধীন প্লাটফর্ম

আশা করি ছবি দেখেই বুঝে ফেলেছেন যে প্লাটফর্ম ইন্ডিপ্যান্ডেন্ট কি জিনিস। মানে হচ্চে আপনি উইন্ডোজ এর জন্য যে ক্লাস ফাইল তৈরি করবেন তা লিনাক্স বা ম্যাক এর jvm এও সেটা রান হবে।

শক্তিশালী সিকিউরিটি

কারণঃ

  • জাভাতে কোনো এক্সপ্লিসিট পয়েন্টার ব্যবহৃত হয় না
  • জাভা প্রোগ্রাম ভিতরের ভার্চুয়াল ম্যাশিনে রান হয় (Jvm)
    c++ এ প্রোগ্রাম সরাসরি অপারেটিং সিস্টেম এর রান টাইম এনভায়নমেন্টে রান হয় আর জাভা তে জাভার নিজস্ব রান টাইম এনভায়রনমেন্টে রান হয়।
  • ক্লাস লোডারঃ ক্লাস লোডার ব্যবহারের ফলে লোকাল ফাইল এবং নেটওয়ার্ক ফাইলের ডাটা ইম্পোর্ট করার সময় সিকিউরিটি বজায় থাকে।
  • বাইটকোড ভেরিফাইয়ারঃ এই ভেরিফাইয়ার টুকরা টুকরা কোডকে চ্যাক করে দেখে যে আসলে এই কোড অবৈধভাবে কোনো অব্জেক্ট কে এক্সেস করছে কি না।
  • সিকিউরিটি ম্যানেজারঃ এই ম্যানেজার নির্ধারণ করে দেয় যে একটি ক্লাস লোকাল ডিস্ক থেকে কি কি রিড এবং রাইট করতে পারবে।

খুবই বলিষ্ঠ প্রোগ্রামিং ল্যাংগুয়েজ 

জাভায় রয়েছে খুবই শক্তিশালী মেমরি ম্যানেজমেন্ট। এছাড়া পয়েন্টারের মাধ্যমে সিকিউরিটি জনিত যে সমস্যা তা এতে নেই। এর অটোমেটিক গার্ভেজ কালেকশন রয়েছে। এছাড়া জাভার রয়েছে আলাদাভাবে হ্যান্ডেলিং এবং চেকিং পদ্ধতি যেটা উপরে বলা হয়ছে। তাই জাভা একটি খবই বলিষ্ঠ প্রোগ্রামিং ল্যাঙ্গুয়েজ।

নিরপেক্ষ গঠন

এটা সম্পূর্ণ নিরপেক্ষ গঠন অনুসরণ করে। কারণ উদাহারণস্বরুপ বলতে পারি যে, যেমন ধরুন এর প্রিমিটিভ টাইপের সাইজ সুনির্দিষ্ট। তাহলে আর কারো উপর কেন নির্ভর করবে যেহেতু আগে থেকেই নির্দিষ্ট।  যেখানে সি প্রোগ্রামিং এর ক্ষেত্রে int data টাইপে ২বাইট মেমরি দখল করে যদি প্রসেসর  ৩২বিট আর্কিটেকচারের হয়, আর ৪বাইট দখল করে যদি ৬৪বিট আর্কিটেকচারের হয়। কিন্তু জাভায় উভয় ক্ষেত্রেই ৪বাইট জায়গা দখল করে।

উচ্চ কার্যক্ষমতা

এটি একটি উচ্চ কার্যক্ষমতা সম্পন্ন প্রোগ্রামিং ল্যাংগুয়েজ। খুব দ্রুত কাজ করে।

মাল্টি থেডিং

মাল্টি থ্রেডিং পদ্ধতিতে একাধিক প্রোগ্রাম একই সাথে এক্সিকিউট করা যায়।

ভাগ ভাগ করে কাজ করা যায়। আমরা একটি টাস্ক কে মাল্টিপল থ্রেডে বিভক্ত করে  একই সাথে পরিচালনা করে খুব অল্প সময়ে কাজটা করে ফেলতে পারি। এর সবচেয়ে বড় সুবিধা হচ্ছে এর প্রতিট থ্রেড আলাদাভাবে মেমরি দখল করে না। বরং সকল থ্রেড একই মেমরি স্পেস ব্যবহার করতে পারে। থ্রেড মাল্টিমিডিয়া এবং ওয়েব এপ্লিকেশন এর জন্য খুবই গুরুত্বপূর্ণ।

ডিস্ট্রিবিউটেড এপ্লিক্যাশন

আমরা ডিস্ট্রবিউটেড এপ্লিক্যাশন তৈরিতে জাভা ব্যবহার করতে পারি। RMI এবং EJB  ব্যবহার করা হয় ডিস্ট্রিবিউটেড এপ্লিক্যাশন তৈরিতে। আমরা ইন্টারনেটে যেকোনো মেশিন দিয়ে মেথোড কলিং এর মাধ্যমে ফাইলকে এক্সেস করতে পারি।

আশা করি বুঝতে পেরেছেন জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখাটা কেন এত গুরুত্বপূর্ণ। তো আজকে আমার উদ্দেশ্য ছিল যে, জাভার ফিচারগুলো সম্পর্কে আলোচনা করা। সেগুলো খুব সহজভাবে বুঝানোর চেষ্টা করেছি। আশা করি আপনাদের কাছে ভাল লেগেছে।

আগেই প্রোগ্রামিং এ যাচ্ছি না। কারণ মাথায় কিছু না থাকলে তো প্রোগ্রামিং করতে গেলে আপনার মাথা নষ্ট হয়ে যেতে পারে। তাই থিউরি দিয়ে কিছু জিনিস ক্লিয়ার করে পরে প্রোগ্রামিং স্টার্ট করতে চাচ্ছি। কারণ টাইটেলেই বলেছি আমরা পরিপূর্ণ জাভা প্রোগ্রানিং করতে চাই। শর্টকার্ট ভাবে নয়। তো ভাল লাগলে অবশ্যই শেয়ার করবেন। আজকের মত এই পর্যন্তই। ভাল থাকুন, সুস্থ থাকুন, প্রযুক্তিকে ভালবাসুন আর প্রযুক্তির সাথেই থাকুন।

আল্লাহ হাফিজ।

ফেসবুকে আমি 

Level 1

আমি মোঃ আশিকুর রহমান সরল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 83 টি টিউন ও 102 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 12 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি একজন প্রযুক্তি প্রেমী।কম্পিউটার ইঞ্জিনিয়ারিং এ লেখাপড়া করছি।পৃথিবীকে নতুন কিছু করে দেখাতে চাই। My Website


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস