💎 داده های نوع پیشین و داده های مرجع
📝 #سوالات_مصاحبه
🔆داده های نوع پیشین (Primitive data types)
⭕️داده های نوع پیشین عبارتند از :
byte, boolean, char, short, int ,float, long , double
⭕️داده های نوع پیشین همیشه یک مقدار ذخیره دارند. اگر مقدار دهی نشده باشند، یک مقدار پیشفرض خواهند داشت. البته این مقدار پیش فرض مختص متغیر های نمونه ای هست که در سطح کلاس تعریف میشوند و متغیر های محلی که در یک بلاک کد تعریف میشوند، بطور خودکار هیچ مقدار پیشفرضی ندارند و شما پیش از استفاده باید آن را مقدار دهی کنید.
⭕️وجه تمایز بین داده long و int ، حرف L (یا l اِل کوچک)میباشد که آخر عدد اضافه میشود. حرف L نشاندهنده نوع داده long میباشد.
⭕️وجه تمایز بین داده float و double، حرف F(یا f کوچک) میباشد که بعد از عدد اعشاری برای داده فلوت به کار برده میشود. به همین صورت برای متغیر double میتوان بعد از عدد حرف D (یا d) قرار داد.
⭕️اختصاص یک داده نوع پیشین به یک متغیر، باعث ذخیره یک کپی از داده در متغیر خواهد شد:
🔆داده های مرجع (reference data types / non-primitive data types)
⭕️داده های مرجع شامل تمامی داده ها غیر از داده های نوع پیشین میباشد.
⭕️داده های نوع مرجع بعنوان اشیا (objects) شناخته میشوند.
⭕️داده های مرجع در واقع به یک خانه از حافظه اشاره میکنند.
⭕️برای یک داده مرجع در صورتی که تعریف نشده باشد، مقدار null تعلق میگیرد.
⭕️داده های مرجع (اشیا) شامل متغیر ها و متد ها میشوند که وضعیت و رفتار شی ساخته شده را تعریف میکنند.
⭕️زمانی که یک داده مرجع به یک داده دیگر نسبت داده میشود، در این صورت هر دو به یک خانه از حافظه اشاره میکنند و کپی ایجاد نمیشود. این به این معناست که هر تغییر در ابجکت دوم، ابجکت اول را هم دچار تغییر میکند:
(⁉️) سوالات:
❓داده نوع پیشین چیست؟
❓اگر به داده نوع پیشین مقداری نسبت داده نشود، چه مقداری در متغیر ذخیره خواهد شد؟
❓پیشوند های D و F و L به ترتیب برای کدام داده ها و چرا به کار میروند؟
❓ اگر که یک داده پیشین به داده پیشین دیگر نسبت دهیم چه اتفاقی خواهد افتاد؟
❓داده مرجع چیست؟
❓ اگر که یک داده مرجع را به داده مرجع دیگر نسبت دهیم چه اتفاقی خواهد افتاد؟
❓تفاوت داده مرجع و داده نوع پیشین را توضیح دهید؟
❓هدف از نوشتن متدها و متغیر در داده های مرجع چیست؟
❓اگر داده مرجع مقدار دهی نشود، بصورت پیشفرض چه مقداری در بر میگیرد؟
#primitive #reference #dataTypes #data_types #primitive_data
@pieceJava
📝 #سوالات_مصاحبه
🔆داده های نوع پیشین (Primitive data types)
⭕️داده های نوع پیشین عبارتند از :
byte, boolean, char, short, int ,float, long , double
⭕️داده های نوع پیشین همیشه یک مقدار ذخیره دارند. اگر مقدار دهی نشده باشند، یک مقدار پیشفرض خواهند داشت. البته این مقدار پیش فرض مختص متغیر های نمونه ای هست که در سطح کلاس تعریف میشوند و متغیر های محلی که در یک بلاک کد تعریف میشوند، بطور خودکار هیچ مقدار پیشفرضی ندارند و شما پیش از استفاده باید آن را مقدار دهی کنید.
⭕️وجه تمایز بین داده long و int ، حرف L (یا l اِل کوچک)میباشد که آخر عدد اضافه میشود. حرف L نشاندهنده نوع داده long میباشد.
⭕️وجه تمایز بین داده float و double، حرف F(یا f کوچک) میباشد که بعد از عدد اعشاری برای داده فلوت به کار برده میشود. به همین صورت برای متغیر double میتوان بعد از عدد حرف D (یا d) قرار داد.
⭕️اختصاص یک داده نوع پیشین به یک متغیر، باعث ذخیره یک کپی از داده در متغیر خواهد شد:
int x = 4;
int y = x;
🔆داده های مرجع (reference data types / non-primitive data types)
⭕️داده های مرجع شامل تمامی داده ها غیر از داده های نوع پیشین میباشد.
⭕️داده های نوع مرجع بعنوان اشیا (objects) شناخته میشوند.
⭕️داده های مرجع در واقع به یک خانه از حافظه اشاره میکنند.
⭕️برای یک داده مرجع در صورتی که تعریف نشده باشد، مقدار null تعلق میگیرد.
⭕️داده های مرجع (اشیا) شامل متغیر ها و متد ها میشوند که وضعیت و رفتار شی ساخته شده را تعریف میکنند.
⭕️زمانی که یک داده مرجع به یک داده دیگر نسبت داده میشود، در این صورت هر دو به یک خانه از حافظه اشاره میکنند و کپی ایجاد نمیشود. این به این معناست که هر تغییر در ابجکت دوم، ابجکت اول را هم دچار تغییر میکند:
class myClass{
String name;
}
class Main{
public static void main(String[] args){
Class o1 = new Class();
Class o2 = o1;
o2.name = "Object Name";
System.out.println(o1.name);//prints Object Name
}
}
❌ در مثال بالا هر چند که مقدار ابجکت o2 را تغییر داده ایم ولی از آنجا که هر دو ابجکت به یک خانه از حافظه اشاره میکنند، این تغییر باعث میشود که o1 نیز دچار تغییر شود.(⁉️) سوالات:
❓داده نوع پیشین چیست؟
❓اگر به داده نوع پیشین مقداری نسبت داده نشود، چه مقداری در متغیر ذخیره خواهد شد؟
❓پیشوند های D و F و L به ترتیب برای کدام داده ها و چرا به کار میروند؟
❓ اگر که یک داده پیشین به داده پیشین دیگر نسبت دهیم چه اتفاقی خواهد افتاد؟
❓داده مرجع چیست؟
❓ اگر که یک داده مرجع را به داده مرجع دیگر نسبت دهیم چه اتفاقی خواهد افتاد؟
❓تفاوت داده مرجع و داده نوع پیشین را توضیح دهید؟
❓هدف از نوشتن متدها و متغیر در داده های مرجع چیست؟
❓اگر داده مرجع مقدار دهی نشود، بصورت پیشفرض چه مقداری در بر میگیرد؟
#primitive #reference #dataTypes #data_types #primitive_data
@pieceJava
👍3