دسته‌ها
جاوا

var در جاوا 10

یکی از تغییرات مثبتی که در جاوا ویرایش 10 صورت گرفت افزوده شدن var به این زبان بود. امروز با هم به بررسی این قابلیت می‌پردازیم

با استفاده از var دیگر نیازی به مشخص کردن نوع داده ای برای متغیرهای محلی (local variables) نداریم .

خروجی:

java.lang.String
4
java.util.HashMap

باید در نظر داشت که تنها در حالتی میتوان از var استفاده کرد که بخواهیم متغیر محلی را با initializer مقدار دهی کنیم

در حالات زیر نیمتوان از var استفاده نمود

متغیر محلی بدون initializer

متغیر غیر محلی

Array initializer

مقداردهی اولیه با null

در تهیه این مطلب از لینک های زیر استفاده شده است

Simplify Local Variable Type Definition Using the Java 10 var Keyword

Java 10 LocalVariable Type-Inference

دسته‌ها
جاوا

نحوه فراخوانی method در جاوا

در این پست نحوه فراخوانی method رو در جاوا بررسی می کنیم.

تمامی متغیرها در جاوا از یکی دو نوع داده ای Primitive و Non-Primitive می‌باشند.

Primitive ها در جاوا عبارتند از :

  • boolean data type
  • byte data type
  • char data type
  • short data type
  • int data type
  • long data type
  • float data type
  • double data type

Non-Primitive ها عبارتند از

  • String
  • Array

Primitive ها مقدار متغیر را به صورت مستقیم در خود ذخیره می کنند در صورتی که Non-Primitive ها آدرس شی ایجاد شده را در خود دخیره می‌نمایند.

در جاوا فراخوانی Method ها همیشه به صورت Call-By-Value می باشد. برای نوع داده ای Primitive مقدار آن متغیر کپی می شود و برای نوع داده ای Non-Primitive مقدار Reference آن متغیر کپی می گردد. در زیر با مثالی این نکته نمایان می شود

value of a before calling change method: 10
value of a inside change method: 5
value of a after calling change method: 10

age of Person b before calling changeValueOfReference method: 20
age of Person b inside changeValueOfReference method: 30
age of Person b after calling changeValueOfReference method: 20

age of Person c before calling changeInnerValue method: 20
age of Person c inside changeInnerValue method: 30
age of Person c after calling changeInnerValue method: 30

در تهیه این مطلب از لینک های زیر استفاده شده است:
What’s the difference between primitive and reference types?
Is Java “pass-by-reference” or “pass-by-value”?

دسته‌ها
جاوا

تفاوت String با StringBuilder و StringBuffer در جاوا

مطلبی که امروز با هم بررسی اش میکنیم تفاوت بین کلاس String با کلاس های StringBuilder و StringBuffer هست.

تفاوت اصلی این کلاس ها بر میگرده به مفهوم Mutable & Immutable Object در جاوا

Immutable Object ها Objectهایی هستند که بعد از ایجاد امکان تغییر در آن ها وجود ندارد (متغیر نیستند) و Mutable Object ها دقیقا برعکس.

String در جاوا به صورت Immutable تعریف شده است . StringBuilder و StringBuffer در نقطه مقابل Mutable هستند.

خروجی method :

7079 milliseconds
2 milliseconds
3 milliseconds

تفاوت محسوس در زمان اجرا کاملا مرتبط هست با تعداد اشیایی که در طول زمان اجرای کد ساخته میشه.