Java একটি স্ট্যাটিক টাইপের ভাষা, অর্থাৎ কম্পাইল-টাইমে প্রতিটি জিনিসেরই একটি টাইপ থাকে। একটি নামে একটি মান বসানোকে ভ্যারিয়েবল ডিফাইন করা বলা হয়।
int explicitVar = 10; // Explicitly typed
একটি ভ্যারিয়েবলের মান = অপারেটর দিয়ে অ্যাসাইন ও আপডেট করা যায়। একবার ডিফাইন করা হয়ে গেলে ভ্যারিয়েবলের টাইপ আর কখনোই বদলানো যায় না।
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning different type
// count = false;
Java একটি অবজেক্ট-ওরিয়েন্টেড ভাষা এবং এতে সব ফাংশন একটি ক্লাসের ভেতরে ডিফাইন করতে হয়, আর ক্লাস ডিফাইন করা হয় class কিওয়ার্ড দিয়ে। একটি ক্লাসের ভেতরের ফাংশনকে মেথড বলা হয়। প্রতিটি মেথড-এ শূন্য বা তার বেশি প্যারামিটার থাকতে পারে। সব প্যারামিটারই স্পষ্টভাবে টাইপ করা থাকতে হবে। প্যারামিটারের জন্য কোনো টাইপ ইনফারেন্স নেই। একইভাবে রিটার্ন টাইপও স্পষ্টভাবে উল্লেখ করতে হবে। মান ফাংশন থেকে রিটার্ন করা হয় return কিওয়ার্ড দিয়ে। অন্য ক্লাসগুলো যাতে একটি মেথড কল করতে পারে, সেজন্য public অ্যাক্সেস মডিফায়ার যোগ করতে হবে।
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
একটি মেথড ইনভোক করা হয় তার ক্লাস ও মেথডের নাম উল্লেখ করে এবং মেথডের প্রতিটি প্যারামিটারের জন্য আর্গুমেন্ট পাস করে।
int sum = new Calculator().add(1, 2);
যদি কোনো মেথড ক্লাসের কোনো স্টেট ব্যবহার না করে (এই অনুশীলনীতে যেটা হয়), তাহলে static মডিফায়ার দিয়ে মেথডটিকে স্ট্যাটিক করা যায়। একইভাবে, কোনো ক্লাসে শুধু স্ট্যাটিক মেথড থাকলে ক্লাসটিকেও static মডিফায়ার দিয়ে স্ট্যাটিক করা যায়।
static class Calculator {
public static int multiply(int x, int y) {
return x * y;
}
}
Java-তে স্কোপ নির্ধারিত হয় { আর } অক্ষরের মাঝখানে।
Java দুই ধরনের কমেন্ট সমর্থন করে। এক-লাইনের কমেন্টের আগে // বসে এবং বহু-লাইনের কমেন্ট লেখা হয় /* আর */-এর মাঝখানে।
ইন্টিজার মান এক বা একাধিক (পরপর) ডিজিট হিসেবে লেখা হয় এবং ডিফল্ট গাণিতিক অপারেটর সমর্থন করে।