دوره‌ها / JAVA / ریاضیات (Java Math)

ریاضیات (Java Math)

15 دقیقه Article

کلاس ریاضیات (Math): دنیای محاسبات هوشمند 📐📉

کلاس Math در جاوا مجموعه‌ای از عملیات‌های ریاضی را روی اعداد انجام می‌دهد. این کلاس به صورت پیش‌فرض در جاوا وجود دارد و نیاز به تعریف آبجکت از آن نیست (متدها Static هستند).

۱. متدهای پایه Math

  • Math.max(x, y): بزرگترین عدد بین دو ورودی را می‌دهد.
  • Math.min(x, y): کوچکترین عدد بین دو ورودی را می‌دهد.
  • Math.sqrt(x): جذر (ریشه دوم) عدد را محاسبه می‌کند.
  • Math.abs(x): قدر مطلق (مقدار مثبت) عدد را برمی‌گرداند.

مثال:

{code_block('System.out.println(Math.max(5, 10)); // 10\nSystem.out.println(Math.sqrt(64)); // 8.0')}

۲. تولید اعداد تصادفی (Random Numbers) 🎲

متد Math.random() یک عدد اعشاری تصادفی بین 0.0 تا 1.0 (خودِ 1.0 نیست) تولید می‌کند.

برای تولید یک عدد صحیح تصادفی در یک بازه خاص (مثلاً 0 تا 100)، از فرمول زیر استفاده می‌کنیم:

{code_block('int randomNum = (int)(Math.random() * 101); // عدد بین 0 تا 100')}
نکته فنی: کلاس Math بخشی از پکیج java.lang است که به صورت خودکار در تمام برنامه‌های جاوا Import می‌شود.

۳. سایر متدهای مفید

  • Math.pow(a, b): توان (a به توان b).
  • Math.round(x): رُند کردن عدد به نزدیک‌ترین عدد صحیح.
  • Math.floor(x): رُند کردن رو به پایین.
  • Math.ceil(x): رُند کردن رو به بالا.
دقت در محاسبات: برای پروژه‌های مالی حساس، کلاس Math ممکن است خطاهای کوچکِ شناور (Floating-point errors) داشته باشد. در آن موارد از کلاس BigDecimal استفاده می‌شود.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: عمیق‌تر در دنیای جاوا 🛠️💎

در این بخش، به نکاتی می‌پردازیم که در سطح حرفه‌ای و مصاحبه‌های کاری بسیار مهم هستند.

۱. مدیریت حافظه (Memory Management)

در جاوا، داده‌ها در دو بخش از حافظه ذخیره می‌شوند: Stack و Heap. انواعِ داده اولیه (Primitives) معمولاً در Stack ذخیره می‌شوند که سرعت دسترسی به آن‌ها بسیار بالاست. اشیاء و آرایه‌ها در Heap ذخیره می‌شوند که حجم بیشتری دارد اما مدیریت آن توسط Garbage Collector انجام می‌شود. درک این تفاوت، کلید اصلی برای نوشتن برنامه‌های بهینه است.

۲. مفاهیم امنیت در سطح زبان

جاوا یکی از امن‌ترین زبان‌هاست چون اجازه دسترسی مستقیم به آدرس‌های فیزیکی حافظه (مانند اشاره‌گرها در C++) را نمی‌دهد. مضاف بر این، وجود Bytecode Verifier قبل از اجرا، تضمین می‌کند که کدهای مخرب یا نامعتبر اجرا نشوند.

۳. کدهای تمیز (Clean Code)

در پروژه‌های تیمی، خوانایی کد مهم‌تر از هوشمندانه بودن آن است. همیشه از نام‌های معنادار برای متغیرها استفاده کنید (مثلاً به جای a از userAge استفاده کنید). همچنین رعایتِ CamelCase و استفاده درست از کامنت‌ها، نگهداری پروژه را در آینده بسیار ساده‌تر می‌کند.

نکته پایانی: یادگیری یک زبان فقط یادگیری دستورات آن نیست؛ بلکه یادگیریِ طرز فکر و معماریِ آن اکوسیستم است. جاوا با ساختارِ منضبط خود، ذهن شما را برای مهندسی نرم‌افزار به سبکِ صحیح تربیت می‌کند.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

محاسبه جذر Easy
سوال تمرین

با استفاده از متد مناسب در کلاس Math، جذر عدد 225 را محاسبه و چاپ کنید.

پاسخ تمرین
JAVA
public class Main {
  public static void main(String[] args) {
    System.out.println(Math.sqrt(225));
  }
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.