java - يقوم - كيفية تثبيت التطبيقات على بطاقة sd



ماذا تفعل جفم عندما المشغل 'الجديد' تهيئة الذاكرة باستخدام منشئ؟ (1)

RealEstate v = new RealEstate();

لقد استخدمت هذه الكلمة الرئيسية new مع RealEstate() . وأنا أعلم new بتخصيص الذاكرة ويهيئ الذاكرة باستخدام منشئ فئة RealEstate .

ما هو جفم تفعل هنا؟


المشغل new لا يستخدم في الواقع مساعدة من منشئ لتخصيص الذاكرة. لا علاقة له مع منشئ. أساسا نسخة جافا من malloc هو new .

المشغل new :

  • يخصص الذاكرة لكائن
  • استدعاء منشئ الكائن
  • ترجع الإشارة إلى تلك الذاكرة

يتم تنفيذ منشئ بشكل منفصل لأداء أي عمليات أثناء التهيئة، مثل تخصيص القيم إلى الكائنات والمتغيرات. إذا لم يتم تعريف أي منشئ، ثم سيقوم المجمع بإنشاء منشئ افتراضي وسيتم تخصيص القيم الافتراضية:

يلخص الرسم البياني التالي القيم الافتراضية لعدة أنواع بيانات. مصدر

Data Type   Default Value (for fields)
byte            0
short           0
int             0
long            0L
float           0.0f
double          0.0d
char            '\u0000'
String          null
any object      null
boolean         false

لذلك، المشغل new فقط بتخصيص الذاكرة وإرجاع إشارة إلى تلك الذاكرة.

انظر الوثائق :

يقوم المشغل الجديد بإنشاء فئة من خلال تخصيص الذاكرة لكائن جديد وإرجاع مرجع إلى تلك الذاكرة. المشغل الجديد أيضا استدعاء منشئ الكائن.





new-operator