دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۴
  • مهر

جلسه ۳۰ : Serialization در جاوا

  • دسته‌بندی‌ها :
جلسه ۳۰ : Serialization در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. جاوا یک مکانیسم را ایجاد می کند که به نام serialization (سریال سازی) شناخته می شود، جایی که یک شی را می توان به عنوان دنباله ای از بایت هایی که شامل داده های شیء و همچنین اطلاعات مربوط به نوع شیء و نوع داده ذخیره شده در شیء است، را نشان داد.  یک شیء سریالی در قالب یک فایل نوشته شده است، که می توان آن را از فایل خوانده و یا آن را نادیده گرفت. با این قابلیت یک شی را می توان بر روی یک پلتفرم سریال کرد و یا در یک پلتفرم کاملا متفاوت قرار داد. برای آشنایی بیشتر با Serialization در جاوا در ادامه ی مباحث این بخش با ما همراه باشید.

      آشنایی با Serialization در جاوا

      در ادامه ی مبحث Serialization در جاوا ما شما را با کلاس های Serialization و سریال سازی شیء آشنا می کنیم.

      آشنایی با دو نمونه کلاس

      کلاس های ObjectInputStream و ObjectOutputStream از نوع stream سطح بالا هستند.

      کلاس های فوق الذکر شامل متد های سریال سازی و deserialization یک شی است.

      کلاس ObjectOutputStream شامل بسیاری از متدهای نوشتن برای نوشتن انواع داده های مختلف است:

      مثال : 

      متد فوق یک Object را سریال کرده و آن را به stream خروجی ارسال می کند.

      به طور مشابه، کلاس ObjectInputStream شامل متد زیر برای deserialization یک شی است:

      مثال : 

      این متد Object بعدی را خارج از stream بازیابی کرده و آن را غیرفعال می کند.

      مقدار بازگشتی Object است، بنابراین شما باید آن را به نوع داده های مناسب مورد بازبینی قرار دهید.

      در ادامه برای نمونه کلاس Employee را Serialization می کنیم:

      مثال : 

      توجه داشته باشید که برای اعمال Serialization موفق روی یک کلاس باید موارد زیر را رعایت کنید:

      • کلاس باید رابط کاربری java.io.Serializable را اجرا کند.
      • تمام فیلد های کلاس باید Serial شود. اگر یک فیلد قابل Serial نیست، باید از آن رد شد.

      اگر می خواهید بدانید که آیا یک کلاس استاندارد Java قابل سریال سازی است یا خیر، مستندات مربوط به آن کلاس را بررسی کنید.

      تست ساده:  اگر کلاس implements java.io.Serializable موجود بود قابل سریال سازی است در غیر این صورت نیست.

      serializing یک آبجکت

      کلاس ObjectOutputStream برای سریال سازی یک شی مورد استفاده قرار می گیرد.

      برنامه SerializeDemo زیر یک شیء Employee را ایجاد می کند و آن را به یک پرونده سریال می کند.

      هنگامی که برنامه اجرا می شود، یک فایل به نام employee.ser ایجاد می شود.

      برنامه ی فوق خروجی تولید نمی کند، بلکه کد را مرور کرده و سعی می کند که برنامه را انجام دهد.

      هنگامی که یک شیء را به یک پرونده انتساب می دهید استاندارد جاوا این است که به فایل فرمت ser بدهید.

      مثال:

      مثال : 

      Deserializing یک آبجکت

      برنامه DeserializeDemo زیر Deserializes شیء Employee ایجاد شده در برنامه SerializeDemo است:

      مثال : 

      نتیجه ی اجرای کد فوق خروجی زیر خواهد بود:

      مثال : 

      در اینجا نکات مهمی را می توان ذکر کرد:

      • بلوک try / catch تلاش می کند تا ClassNotFoundException را بگیرد، که توسط متد () readObject اعلام شده است.
      • برای اینکه یک JVM بتواند یک شیء را از بین ببرد، باید بتواند کد بایت را برای کلاس پیدا کند.
      • اگر شیء مورد نظر برای نابود کردن پیدا نشد جاوا خطای ClassNotFoundException را نمایش می دهد.
      • توجه داشته باشید که مقدار () return of readObject به مرجع Employee ارجاع داده می شود.
      • مقدار فیلد SSN 11122333 هنگامی که شیء مورد سریال قرار گرفت به خروجی ارسال نشده و مقدار آن ۰ شد.

      کلام آخر

      با استفاده از قابلیت Serialization در جاوا می توان داده ها و اطلاعات مربوط به یک شیء را بصورت دنباله ای از بایت ها و اعداد در جاوا نمایش داد و می توان یک آبجکت را در یک پلتفرم متفاوت قرار داد، در بخش بعدی به بررسی مباحث شبکه سازی در جاوا خواهیم پرداخت.

      QR:  جلسه ۳۰ : Serialization در جاوا
      به اشتراک بگذارید