PDA

View Full Version : سوال: JVM Object Serialize



a.seieddokht
پنج شنبه 04 مهر 1392, 20:45 عصر
با سلام
از دوستان عزیز کسی بلده jvm object رو serialize کنه
ممنون میشم توضیح بدید:بوس:

Ehsan rashydy
جمعه 05 مهر 1392, 20:55 عصر
با سلام
از دوستان عزیز کسی بلده jvm object رو serialize کنه
ممنون میشم توضیح بدید:بوس:

میشه بگید دقیقا منظورتون از jvm object چیه؟

a.seieddokht
شنبه 06 مهر 1392, 00:26 صبح
میشه بگید دقیقا منظورتون از jvm object چیه؟


سلام
دز جاوا 2 نوع object داریم
1) developer object که برنامه نویس ایجاد میکند و تعداد ان میتواند n تا باشد و شامل تمام متدها و فیلدها غیر استاتیک و (developer constructor) ها میباشد

2) jvm object : که توسط jvm ایجاد می شود و ان هم در اولین ارجاع به کلاس یا object و در بین تمام developer object ها مشترک است و تنها یک jvm object از هر کلاس در RAM ساخته میشود حتی اگر ما nتا شی از کلاس بساریم تنها 1 jvm object در RAM وحود دارد که شامل تمام متد ها فیلدها و بلوک استاتیک (jvm constructor) می باشد

حالا اگه حرف من رو قبول ندارید بگید تا نشون بدم 2نوع object وجود داره:قهقهه::لبخند:

Ehsan rashydy
شنبه 06 مهر 1392, 07:13 صبح
سلام
دز جاوا 2 نوع object داریم
1) developer object که برنامه نویس ایجاد میکند و تعداد ان میتواند n تا باشد و شامل تمام متدها و فیلدها غیر استاتیک و (developer constructor) ها میباشد

2) jvm object : که توسط jvm ایجاد می شود و ان هم در اولین ارجاع به کلاس یا object و در بین تمام developer object ها مشترک است و تنها یک jvm object از هر کلاس در RAM ساخته میشود حتی اگر ما nتا شی از کلاس بساریم تنها 1 jvm object در RAM وحود دارد که شامل تمام متد ها فیلدها و بلوک استاتیک (jvm constructor) می باشد

حالا اگه حرف من رو قبول ندارید بگید تا نشون بدم 2نوع object وجود داره:قهقهه::لبخند:


یه لینک به یه reference از گفته هات میتونی به ما بدی؟

javaphantom
شنبه 06 مهر 1392, 09:22 صبح
با سلام
از دوستان عزیز کسی بلده jvm object رو serialize کنه
ممنون میشم توضیح بدید:بوس:

اگر نیاز به این داری که از یک jvm به یک jvm دیگه object رد وبدل کنی به کمک RMI می تونی این کار رو انجام بدی

a.seieddokht
شنبه 06 مهر 1392, 13:44 عصر
اگر نیاز به این داری که از یک jvm به یک jvm دیگه object رد وبدل کنی به کمک RMI می تونی این کار رو انجام بدی

این موضوع رو استاد من بهم گفت و این که در document های sun میتونید پیدا کنید من دقیقا نمی دونم کجاست ولی من خودم اصلا نیازی به reference ندارم و به شما اثبات میکنم
شما میگید که 1 نوع object وجود داره دیگه (developer object) که شامل تمام متدها و فیلدها چه استاتیک و چه غیر استاتیک می باشد.

اگه اینجور باشه پس اگه object رو serialize کنیم و بخوابونیم تو فایل xml باید ذخیره بشه دیگه نه این که null باشه

اثبات


import java.io.Serializable;

public class ObjectSerialize implements Serializable{
public static String name;
public static String family;
public String id;
public String address;

}




import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileOutputStream;

public class Runner {
public static void main(String[] args)throws Exception{
ObjectSerialize objectSerialize = new ObjectSerialize();
objectSerialize.name = "ali";
objectSerialize.family = "hasani";
objectSerialize.id = "101";
objectSerialize.address = "tehran";

File file = new File("D:\\myFile.xml");
file.createNewFile();

FileOutputStream fileOutputStream = new FileOutputStream(file);
XMLEncoder xmlEncoder = new XMLEncoder(fileOutputStream);

xmlEncoder.writeObject(objectSerialize);
xmlEncoder.close();
fileOutputStream.close();

}
}



حالا برو تو فایل xml ببین نام فامیلی هست :قهقهه:

:لبخند:

javaphantom
شنبه 06 مهر 1392, 16:57 عصر
شما میگید که 1 نوع object وجود داره دیگه (developer object) که شامل تمام متدها و فیلدها چه استاتیک و چه غیر استاتیک می باشد.

من هیجا و هیچ وقت همچین حرفی نزدم که شما بخواهین چیزی رو به من اثبات کنید.

javaphantom
شنبه 06 مهر 1392, 17:09 عصر
این موضوع رو استاد من بهم گفت و این که در document های sun میتونید پیدا کنید من دقیقا نمی دونم کجاست ولی من خودم اصلا نیازی به reference ندارم و به شما اثبات میکنم
شما میگید که 1 نوع object وجود داره دیگه (developer object) که شامل تمام متدها و فیلدها چه استاتیک و چه غیر استاتیک می باشد.

اگه اینجور باشه پس اگه object رو serialize کنیم و بخوابونیم تو فایل xml باید ذخیره بشه دیگه نه این که null باشه

اثبات


import java.io.Serializable;

public class ObjectSerialize implements Serializable{
public static String name;
public static String family;
public String id;
public String address;

}




import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileOutputStream;

public class Runner {
public static void main(String[] args)throws Exception{
ObjectSerialize objectSerialize = new ObjectSerialize();
objectSerialize.name = "ali";
objectSerialize.family = "hasani";
objectSerialize.id = "101";
objectSerialize.address = "tehran";

File file = new File("D:\\myFile.xml");
file.createNewFile();

FileOutputStream fileOutputStream = new FileOutputStream(file);
XMLEncoder xmlEncoder = new XMLEncoder(fileOutputStream);

xmlEncoder.writeObject(objectSerialize);
xmlEncoder.close();
fileOutputStream.close();

}
}



حالا برو تو فایل xml ببین نام فامیلی هست :قهقهه:

:لبخند:

یک چیز جالبی که تو کدتون دارم می بینم این هست که توی کلاس ObjectSerialzie که شما دارید دو فیلد static وجود داره.

بعد در قسمت Runner اومدید از کلاس ObjectSerialze یک instance گرفتید و instance رو پاس دادید که بره توی فایل براتون deserialize بشه. مشخص هست دو فیلد static شما فرستاده نخواهد شد نه فامیلی و نه نام چون جزو instance شما نیستن. خوب من هنوز نفهمیدم مشکل شما دقیقا چی هست و باید به نتیجه برسیم. اینکه شما فرمودید دو نوع object هست من بحثی ندارم مشکل من الان این هست که باید چه چیزی رو اثبات کنیم.

a.seieddokht
شنبه 06 مهر 1392, 18:21 عصر
:لبخندساده:
اقا ببخشید من منظورم به شما نبود که :ناراحت::متعجب:منظورم به اقایی که گفت لینک بدید من معذرت میخوام شما که استادی و ... من هیچ وقت از این حرفا به شما نمیزنم
موضوع این هست که من گفتم 2 نوع object راریم در جاوا و این که حرفم این که فیلد static جزو instance نیست و وقتی instance ما میره تو فایل خبری از فیلد های static نیست و میخوام بدونم چطور این فیلدهای static رو ببرم تو فایل یا همون (jvm object) ممنون میشم راهنمایی کنید :تشویق:

javaphantom
شنبه 06 مهر 1392, 21:53 عصر
:لبخندساده:
اقا ببخشید من منظورم به شما نبود که :ناراحت::متعجب:منظورم به اقایی که گفت لینک بدید من معذرت میخوام شما که استادی و ... من هیچ وقت از این حرفا به شما نمیزنم
موضوع این هست که من گفتم 2 نوع object راریم در جاوا و این که حرفم این که فیلد static جزو instance نیست و وقتی instance ما میره تو فایل خبری از فیلد های static نیست و میخوام بدونم چطور این فیلدهای static رو ببرم تو فایل یا همون (jvm object) ممنون میشم راهنمایی کنید :تشویق:

شما لطف دارین ولی من استاد نیستم، من هم مثل شما دارم یاد می گیرم. اما تا اونجا که من می دونم static یعنی state of class نه state of object برای همین وقتی یک فیلد static یا transient باشه serialize نمی شه.

اینکه چطور می شه این کار رو کرد من توی دنیای واقعیم تا حالا گیر نکرده بودم اما خوب سرچم زدم چیزی دستگیرم نشد اگر شما راه حلی پیدا کردی به من هم یاد بدین ممنون می شم

a.seieddokht
شنبه 06 مهر 1392, 22:35 عصر
شما لطف دارین ولی من استاد نیستم، من هم مثل شما دارم یاد می گیرم. اما تا اونجا که من می دونم static یعنی state of class نه state of object برای همین وقتی یک فیلد static یا transient باشه serialize نمی شه.

اینکه چطور می شه این کار رو کرد من توی دنیای واقعیم تا حالا گیر نکرده بودم اما خوب سرچم زدم چیزی دستگیرم نشد اگر شما راه حلی پیدا کردی به من هم یاد بدین ممنون می شم


خیلی ممنون من پرسیدم از استادم که چطور میشه این کارو کرد گفت من بلدم و فقط راهنماییم کرد و گفت خودت برو یادبگیر و ... گفت باید از native c استفاده کنی و jvm رو دستکاری کنی تا بتونی این کارو انجام بدی ومن بلد نیستم چجوری تو جاوا c کد بزنم پس کلا بیخیال بشم بهتره ولی از شما و دوستان عزیز اگه کسی یاد گرفت و انجام داد به ما هم یاد بده تو اینجا
ممنون:لبخندساده:
موفق باشید
یا علی

Ehsan rashydy
شنبه 06 مهر 1392, 23:36 عصر
این موضوع رو استاد من بهم گفت و این که در document های sun میتونید پیدا کنید من دقیقا نمی دونم کجاست ولی من خودم اصلا نیازی به reference ندارم و به شما اثبات میکنم


من reference رو واسه شما نگفتم، واسه خودم گفتم که ببینم حرفاتون مستنده یا نه!



شما میگید که 1 نوع object وجود داره دیگه (developer object) که شامل تمام متدها و فیلدها چه استاتیک و چه غیر استاتیک می باشد.


من کی گفتم که یه نوع آبجکت وجود داره یا 2 نوع آبجکت وجود نداره؟؟
من اصن درباره این موضوع چیزی گفتم؟؟
من فقط واسه حرفاتون یه مرجع خواستم که هنوزم چیزی ارائه ندادید!!!!!!!!


بعد با این مثالی که زدید دقیقا چی رو میخواید اثبات کنید؟
این که developer object داریم و jvm object؟

الان با توجه به مثالتون یکم در مورد jvm object صحبت میکنید؟
این 2 تا عبارت jvm object و developer object رو میشه بگید از کجا آوردید؟؟؟


از اون طرف تو کداتون، کلاس ObjectSerialize با چه هدفی اینترفیس Serializable رو پیاده کرده؟
شما که میخواید object serialization روی کلاس ObjectSerialize پیاده کنید چرا از کلاس XMLEncoder استفاده کردید؟

a.seieddokht
یک شنبه 07 مهر 1392, 00:17 صبح
من reference رو واسه شما نگفتم، واسه خودم گفتم که ببینم حرفاتون مستنده یا نه!



من کی گفتم که یه نوع آبجکت وجود داره یا 2 نوع آبجکت وجود نداره؟؟
من اصن درباره این موضوع چیزی گفتم؟؟
من فقط واسه حرفاتون یه مرجع خواستم که هنوزم چیزی ارائه ندادید!!!!!!!!


بعد با این مثالی که زدید دقیقا چی رو میخواید اثبات کنید؟
این که developer object داریم و jvm object؟

الان با توجه به مثالتون یکم در مورد jvm object صحبت میکنید؟
این 2 تا عبارت jvm object و developer object رو میشه بگید از کجا آوردید؟؟؟


از اون طرف تو کداتون، کلاس ObjectSerialize با چه هدفی اینترفیس Serializable رو پیاده کرده؟
شما که میخواید object serialization روی کلاس ObjectSerialize پیاده کنید چرا از کلاس XMLEncoder استفاده کردید؟

اقا سلام چرا ناراحت می شید ؟؟؟!!!!:متعجب::ناراحت: ببخشید من واقعا منظوری نداشتم و اینجا هدف ما باید این باشه که با هم 1 چیزی یا بگیریم ممکن حرف من اشتباه باشه ولی این درسی هست که من خوندم و تو کتاب های فارسی هم نوشتن البته اسمش تغییر کرده مثلا به فیلدهای static میگن متغیرهای کلاس یا مثلا به static{} میگن بلوک static خوب ما میگیم jvm constructor استادم میگفت زمان ما تو sun میگفتن jvm object و من شنیدم برنامه هایی هستن که این هارو نشو ن میدن در سطح RAM با جزیتات موضوع اسم نیست موضوع این که چجور اینارو ذخیره کنیم
من منظوری نداشتم دوست عزیز ببخش من رو...:گریه::ناراحت:
موفق باشید

omidbizdotcom
پنج شنبه 11 مهر 1392, 20:55 عصر
خیلی ممنون من پرسیدم از استادم که چطور میشه این کارو کرد گفت من بلدم و فقط راهنماییم کرد و گفت خودت برو یادبگیر و ... گفت باید از native c استفاده کنی و jvm رو دستکاری کنی تا بتونی این کارو انجام بدی ومن بلد نیستم چجوری تو جاوا c کد بزنم پس کلا بیخیال بشم بهتره ولی از شما و دوستان عزیز اگه کسی یاد گرفت و انجام داد به ما هم یاد بده تو اینجا
ممنون:لبخندساده:
موفق باشید
یا علی

اگه استادتون اینو گفته من پیشنهاد می کنم استادتونو عوض کنید

نمونه native c در جاوا



http://www.javaworld.com/javatips/jw-javatip23.html
http://en.wikipedia.org/wiki/Java_Native_Interface


نمونه JSNI Java Script Native Interface



public static native void alert(String msg) /*-{ // $wnd.alert(msg); $wnd.testJSNI= $entry(@com.jsni.client.HelloJSNI::testJSNI(IFI)); }-*/;

cups_of_java
پنج شنبه 11 مهر 1392, 21:34 عصر
:لبخندساده:
اقا ببخشید من منظورم به شما نبود که :ناراحت::متعجب:منظورم به اقایی که گفت لینک بدید من معذرت میخوام شما که استادی و ... من هیچ وقت از این حرفا به شما نمیزنم
موضوع این هست که من گفتم 2 نوع object راریم در جاوا و این که حرفم این که فیلد static جزو instance نیست و وقتی instance ما میره تو فایل خبری از فیلد های static نیست و میخوام بدونم چطور این فیلدهای static رو ببرم تو فایل یا همون (jvm object) ممنون میشم راهنمایی کنید :تشویق:

شما باید با ذهنیت اینکه میخواید از serialization استفاده کنید کلاس ها تون رو طراحی می کردید. من نمی دونم فیلد های staticتون رو برای چه کاری و چه منظوری استفاده می کنید و چرا static شدن! اما یکی از راه هایی که می تونید اون ها رو Serialize کنید این هست:
اصولن متغیر های static وضعیت های سراسری و کلی رو نشون میدن و ازشون یکی هست! شما می تونید فیلد های استاتیک مربوط به هم رو در یک کلاس جدید که درست می کنید قرار بدید و همشون رو توش غیر استاتیک کنید. بعد با استفاده از الگوی Singleton همیشه یک شی از این کلاس جدید داشته باشید و اون شی رو Serialize کنید.
البته بسته به اینکه کاربرد و موضوع شما چیه راه های متنوع دیگه ای هم می تونه باشه...

ضمنن لغاتی مثل JVM Object و اینا رو هم از ذهنتون خارج کنید. جاوا رو ساده یاد بگیرید.

a.seieddokht
جمعه 12 مهر 1392, 22:04 عصر
شما باید با ذهنیت اینکه میخواید از serialization استفاده کنید کلاس ها تون رو طراحی می کردید. من نمی دونم فیلد های staticتون رو برای چه کاری و چه منظوری استفاده می کنید و چرا static شدن! اما یکی از راه هایی که می تونید اون ها رو Serialize کنید این هست:
اصولن متغیر های static وضعیت های سراسری و کلی رو نشون میدن و ازشون یکی هست! شما می تونید فیلد های استاتیک مربوط به هم رو در یک کلاس جدید که درست می کنید قرار بدید و همشون رو توش غیر استاتیک کنید. بعد با استفاده از الگوی Singleton همیشه یک شی از این کلاس جدید داشته باشید و اون شی رو Serialize کنید.
البته بسته به اینکه کاربرد و موضوع شما چیه راه های متنوع دیگه ای هم می تونه باشه...

ضمنن لغاتی مثل JVM Object و اینا رو هم از ذهنتون خارج کنید. جاوا رو ساده یاد بگیرید.

سلام اقا ممنون بله راه درستی مشکلی نداشتم و فقط کنجکاوی بود همین و این که استاده خودم گفت باید از c++ استفاده کنید خیلی ممنون ببخشید اگه گفتم jvm ... ممنون سپاس فراوان خدانگهدار:لبخندساده: