Sunday, August 30, 2015

জাভা নামের রীতিনীতি

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

১. ক্লাসের নামের ক্ষেত্রে প্রথম অক্ষর বড় হাতের(Upper Case) অক্ষর দিয়ে শুরু করতে হবে । যেমনঃ System, Button, Hello ইত্যাদি । যদি ক্লাসের নাম দুই বা ততোধিক শব্দতে হয় তখন প্রতিটা শব্দের প্রথম অক্ষর বড় হাতের হবে । যেমনঃ HelloWord, EvenOdd, FindEvenNumber ইত্যাদি ।

২. ইন্টারফেইস নামের ক্ষেত্রেও প্রথম অক্ষর বড় হাতের অক্ষর দিয়ে শুরু হবে । যেমনঃ Runnable, ActionLister ইত্যাদি ।



৩. মেথড নামের ক্ষেত্রে শব্দের প্রথম অক্ষর ছোট হাতের(Lower Case) অক্ষর দিয়ে শুরু হবে । যেমনঃ main(), println() ইত্যাদি । যদি মেথড নাম দুই বা ততোধিক শব্দের হয় সেক্ষেত্রে প্রথম শব্দের প্রথম অক্ষর ছোট হাতের এবং পরের শব্দগুলোর প্রথম অক্ষর বড় হাতের হবে । যেমনঃ calculateNumber(), findEvenOdd() ইত্যাদি ।

৪. ভেরিয়েবলের নামও ছোট হাতের অক্ষর দিয়ে দিয়ে শুরু হবে এবং দুই বা ততোধিক শব্দের ক্ষেত্রে পরের শব্দের প্রথম অক্ষর বড় হাতের অক্ষর হবে । যেমনঃ firstName, phoneNumber, address ইত্যাদি ।

৫. প্যাকেজ নামের ক্ষেত্রে ছোট হাতের অক্ষর দিয়ে শুরু করতে হবে । যেমনঃ lang, sq1, util ইত্যাদি ।

৬. কনস্টান্ট নামের ক্ষেত্রে সব অক্ষরই বড় হাতের হবে । যেমনঃ PI, BLUE, MIN_NUMBER ইত্যাদি ।

উপরে আমরা দেখেছি যে দুই বা ততোধিক নামের ক্ষেত্রে পরের অক্ষর গুলোর প্রথম অক্ষর বড় হাতের অক্ষর দিয়ে শুরু হয় । এটাকে বলে ক্যামেলকেইস(CamelCase) ।

Thursday, August 20, 2015

JVM, JRE এবং JDK সম্পর্কে ধারণা

JVM:

JVM (Java Virtual Machine) হচ্ছে একটা ভার্চুয়াল মেশিন যা জাভা বাইটকোড রান করে । আমরা সাধারণত যেসব জাভা কোড লিখি বা লিখব টা কিন্তু JVM বুঝতে পারে না । তাই .java ফাইল কম্পাইল করে .class ফাইলে রূপান্তর করা হয় যা বাইটকোড ধারণ করে আর এই বাইটকোডই JVM বুঝতে পারে । JVM এই বাইটকোডকে মেশিন কোডে রূপান্তর করে । আর এই JVM ই জাভাকে পোর্টেবল ল্যাঙ্গুয়েজে পরিণত করেছে ।



JRE:

জাভাতে লেখা অ্যাপলেট বা অ্যাপ্লিকেশান রান করার জন্য জাভা লাইব্রেরি, জাভা ভার্চুয়াল মেশিন এবং অন্যান্য উপাদানগুলো সরবরাহ করে JRE বা Java Runtime Environment. কিন্তু অ্যাপলেট বা অ্যাপ্লিকেশান ডেভেলপ করার জন্য কোন কম্পাইলার বা ডিবাগার JRE তে থাকে  না ।

JDK:

যদি JRE কে একটা সেট হিসেবে ধরি তাহলে JDK বা Java Development Kit হবে সুপারসেট । অর্থাৎ JDK তে JRE এর সব উপাদান তো আছেই সাথে অ্যাপলেট বা অ্যাপ্লিকেশান ডেভেলপ করার জন্য কম্পাইলার বা ডিবাগারও থাকে । 

Wednesday, August 19, 2015

জাভার ফিচারসমূহ

যদিও পোর্টেবিলিটি এবং সিকিউরিটি এর কথা চিন্তা করে জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ এর উৎপত্তি হয়েছে তবুও অন্যান্য ফিচারগুলোও গুরুত্বপূর্ণ ভূমিকা পালন করে । নিচে জাভার ফিচার বা Buzzwords গুলোর সংক্ষিপ্ত বিবরণ দেওয়া হল ।

১. সহজঃ জাভার কিছু সংক্ষিপ্ত কিন্তু সহজে বুঝা যায় এমন এবং সংযোজক ফিচার আছে যার কারণে এটি সহজে বুঝা যায় এবং ব্যবহার করা যায় ।

২. নিরাপদঃ জাভা নিরাপদ, কারণ জাভা দিয়ে ভাইরাস মুক্ত অ্যাপ্লিকেশান তৈরি করা যায় ।

৩. পোর্টেবলঃ জাভা রান টাইম সিস্টেম আছে এমন যে কোন এনভাইরন্মেন্টে জাভা প্রোগ্রাম রান করানো যাবে ।

৪. অবজেক্ট ওরিয়েন্টেডঃ জাভার গুরুত্বপূর্ণ ফিচার হচ্ছে এটা একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ ।

৫. শক্তিশালীঃ কম্পাইল টাইম এরর এবং রান টাইম এরর চেক করার মাধ্যমে জাভা নির্ভুল প্রোগ্রামিং এর নিশ্চয়তা দেয় ।



৬. মাল্টিথ্রেডেডঃ জাভার  মাল্টিথ্রেডেড ফিচারের মাধ্যমে এমন প্রোগ্রাম তৈরি করা যায় যা একসাথে অনেক কাজ করতে পারে ।

৭. আর্কিটেকচার-নিরপেক্ষঃ জাভা কোন নির্দিষ্ট মেশিন বা অপারেটিং সিস্টেমের উপর নির্ভর করে না ।

৮. ইন্টারপ্রিটেডঃ বাইট কোড এর ব্যবহারের মাধ্যমে জাভা ক্রস-প্লাটফর্ম কোড সাপোর্ট করে ।

৯. উচ্চ কর্মক্ষমতাঃ Just In Time (JIT) কম্পাইলারের ব্যবহার জাভার উচ্চ কর্মক্ষমতা নিশ্চিত করে ।

১০. ডিস্ট্রিবিউটেডঃ Remote Method Invocation (RMI) এবং Enterprise JavaBeans (EJB) ব্যবহার করে জাভা দিয়ে ডিস্ট্রিবিউটেড অ্যাপ্লিকেশান তৈরি করা যায় ।

১১. ডিনামিকঃ জাভা প্রোগ্রাম অনেক রান টাইম তথ্য ধারণ করতে পারে যা দিয়ে রান টাইমে অবজেক্ট যাচাই এবং প্রবেশের সমস্যা সমাধান করতে পারে ।

জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ

ভূমিকাঃ
জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজে স্বাগতম । পৃথিবীর সবচেয়ে বেশি ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে জাভা । জাভা একটি ক্রস-প্লাটফর্ম ল্যাঙ্গুয়েজ, অর্থাৎ জাভা প্রোগ্রাম সব প্লাটফর্মেই রান করবে । জাভার স্লোগান হচ্ছে "Write Once, Run Anywhere", অর্থাৎ কোন জাভা প্রোগ্রাম যদি উইন্ডোজ অপারেটিং সিস্টেমে কম্পাইল এবং রান করা হয় সেই একই প্রোগ্রাম কোন রকম পরিবর্তন ছাড়া লিনাক্স বা ম্যাক অপারেটিং সিস্টেমও রান করবে ।

এটা কোনভাবেই বলা বাহুল্য হবে না যে, ১৯৯৫ সালে রিলিজ হওয়া জাভা প্রোগ্রামিং জগতে এক বিপ্লব ঘটিয়েছে । দিন দিনই জাভার জনপ্রিয়তা শীর্ষে উঠছে । প্রোগ্রামারদের পছন্দের ল্যাঙ্গুয়েজের তালিকাতে জাভা সবার উপরে ।

Java Programming Language

সংক্ষিপ্ত ইতিহাসঃ
সান মাইক্রোসিস্টেমসে থাকাকালীন সময়ে জেমস গসলিংজাভা ল্যাঙ্গুয়েজের ডিজাইন করেন । ১৯৯১ সালের জুনে জেমস গসলিং, মাইক শেরিডান এবং প্যাট্রিক নঘটন জাভার প্রোজেক্ট শুরু করেন । তখন অবশ্য জাভার নাম ছিল 'ওক' । পরবর্তীতে 'ওক' বাদ দিয়ে 'গ্রিন' এবং সবশেষে জাভা কফির নামানুসারে জাভা রাখা হয় ।

১৯৯৫ সালে সান মাইক্রোসিস্টেমস জাভার প্রথম ভার্সন বাজারে ছাড়ে জাভা ১.০ নামে । এরপর আর অনেক গুলো জাভা ভার্সন বের হয় এবং সর্বশেষ ২০১৪ সালের ১৮ মার্চ জাভা ৮ রিলিজ করা হয় ।

জাভা সংস্করণঃ
জাভা স্ট্যান্ডার্ড এডিশন (জাভা এস ই), জাভা এন্টারপ্রাইজ এডিশন (জাভা ই ই) এবং জাভা মাইক্রো এডিশন ( জাভা এম ই) নামের সর্বমোট তিনটা এডিশন বাজারে আছে ।

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

জাভার ভার্সনসমূহঃ
১৯৯৫ সাল থেকে ২০১৪ সাল পর্যন্ত জাভার মোট দশটি ভার্সন বাজারে আসে । এর মধ্যে সর্বশেষ ভার্সন আসে ২০১৪ সালের ১৮ মার্চ জাভা এস ই ৮ নামে । নিচে সব গুলো ভার্সন দেয়া হল ।

1. JDK Alpha and Beta (1995)
2. JDK 1.0 (January 23, 1996)
3. JDK 1.1 (February 19, 1997)
4. J2SE 1.2 (December 8, 1998)
5. J2SE 1.3 (May 8, 2000)
6. J2SE 1.4 (February 6, 2002)
7. J2SE 5.0 (September 30, 2004)
8. Java SE 6 (December 11, 2006)
9. Java SE 7 (July 28, 2011)
10. Java SE 8 (March 18, 2014)