سونوگرافی فراصوتی
سونوگرافی فراصوتی
سونوگرافی فراصوتی یکی از روش‌های تشخیص بیماری در پزشکی است. به این روش اکوگرافی، پژواک‌نگاری و صوت‌نگاری نیز گفته می‌شود. این روش بر مبنای امواج فراصوت و برای بررسی بافت‌های زیرجلدی مانند عضلات، مفاصل، تاندون‌ها و اندام‌های داخلی بدن و ضایعات آنها پی ریزی شده‌است. سونوگرافی در حاملگی نیز کاربردهای وسیعی دارد. همچنین امروزه سونوگرافی کاربردهای درمانی نیز دارد.






ریشه لغوی

کلمه سونوگرافی از لفظ لاتین sono به معنی صوت و نیز graphic به معنی شکل و ترسیم گرفته شده و ultrasound از ultra به معنی ماورا و نیز sound به معنی صوت یا صدا گرفته شده‌است.






تاریخچه

در سال ۱۸۷۶ میلادی، فرانسیس گالتون برای اولین بار پی به وجود امواج فراصوت برد. در زمان جنگ جهانی اول کشور انگلستان برای کمک به جلوگیری از غرق شدن کشتی‌هایش توسط زیردریاییهای کشور آلمان در اقیانوس آتلانتیک شمالی دستگاه کشف کننده زیردریایی‌ها به کمک امواج صوتی به نام صوت‌یاب (Sonar) ابداع کرد. این دستگاه امواج فراصوت تولید می‌کرد که در پیدا کردن مسیر کشتیها استفاده می‌شد. این تکنیک در زمان جنگ جهانی دوم تکمیل گردید و بعدها بطور گسترده‌ای در صنعت این کشور برای آشکار سازی شکافها در فلزات و سایر موارد مورد استفاده قرار می‌گرفت. از کاربرد بخصوصی که انعکاس صوت در جنگ و صنعت داشت صوت‌یاب به علم پزشکی وارد شد و تبدیل به یک وسیله تشخیصی بزرگ در علم پزشکی گردید.






سیر تحولی در رشد

نخستین دستگاه تولید کننده امواج فراصوت در پزشکی، در سال ۱۹۳۷ میلادی توسط دوسیک اختراع شد و روی مغز انسان آزمایش شد. اگر چه فراصوت در ابتدا فقط برای مشخص کردن خط وسط مغز بود، اکنون بصورت یک روش تشخیصی و درمانی مهم درآمده و پیشرفت روز به روز انواع نسلهای دستگاه‌های تولید فراصوت، تحولات عظیمی در تشخیص و درمان در علم پزشکی بوجود آورده‌است. اگرچه بر اساس آماری که در سال ۲۰۰۰ گرفته شده اولتراسوند بعلت هزینه پایین‌تر، ایمنی بیشتر، حمل و نقل آسان وامکان ارائه تصاویر زنده بیش‌ترین کاربرد را در مقایسه با سایر روشهای تصویربرداری دارد ولی بر اساس آمار به ترتیب سی. تی‌. اسکن (CT) و ام. آر. آی (MRI) و پس از آن تصویربرداری هسته‌ای به‌ویژه مقطع‌نگاری پوزیترون (PET) بیشترین کاربرد را دارند چراکه سامانه فراصوتی دارای محدودیت‌هایی نیز هست از جمله:

امواج فراصوت قابلیت عبور از استخوان را ندارند. همچنین از گاز و هوا نیز نمی‌توانند عبور کنند و بازتاب پیدا می‌کنند. بنابراین روش ایده‌آلی برای تصویربرداری از سینه، روده و معده نمی‌باشند. گازهای روده‌ای جلوی تصویربرداری از ساختمان‌های داخلی‌تر مثل پانکراس و آئورت را می‌گیرند. دیگراین‌که امواج در بافت‌ها افت کرده و به‌عنوان مثال، این مساله تصویر برداری از قلب افراد چاق را با مشکل مواجه می‌کند.






تعریف امواج فراصوت

امواج فراصوت به شکلی از انرژی از امواج مکانیکی گفته می‌شود که فرکانس آنها بالاتر از حد شنوایی انسان باشد. گوش انسان قادر است امواج بین ۲۰ هرتز تا ۲۰۰۰۰ هرتز را بشنود. هر موج (شنوایی یا فراصوت) یک آشفتگی مکانیکی در یک محیط گاز، مایع و یا جامد است که به بیرون از چشمه صوتی و با سرعتی یکنواخت و معین حرکت می‌کند. در حرکت یا گسیل موج مکانیکی، ماده منتقل نمی‌شود. اگر ارتعاش ذرات در جهت عمود بر انتشار صوت باشد، موج عرضی است که بیشتر در جامدات رخ می‌دهد و در صورتی که ارتعاش در راستای انتشار امواج باشد، موج طولی است. انتشار در بافتهای بدن به صورت امواج طولی است. از این رو در پزشکی با اینگونه امواج (بالای ۲۰٬۰۰۰ hertz) سر و کار داریم. در کاربردهای تصویر برداری پزشکی، امواج فراصوت در رنج فرکانسی ۲ تا ۲۰ مگاهرتز به کار گرفته می‌شوند. فرکانس‌های بالاتر از این میزان کاربردهای تحقیقاتی و آزمایشگاهی دارند.






روشهای تولید امواج فراصوت

روش پیزوالکتریسیته تأثیر متقابل فشار مکانیکی و نیروی الکتریکی را در یک محیط اثر پیزو الکتریسیته می‌گویند. بطور مثال بلورهایی وجود دارند که در اثر فشار مکانیکی، نیروی الکتریکی تولید می‌کنند و برعکس ایجاد اختلاف پتانسیل در دو سوی همین بلور و در همین راستا باعث فشردگی و انبساط آنها می‌شود که ادامه دادن به این فشردگی و انبساط باعث نوسان و تولید امواج می‌شود. مواد (بلورهای) دارای این ویژگی را مواد پیزو الکتریک می‌گویند. اثر پیزو الکتریسیته فقط در بلورهایی که دارای تقارن مرکزی نیستند، وجود دارد. بلور کوارتز از این دسته مواد است و اولین ماده‌ای بود که برای ایجاد امواج فراصوت از آن استفاده می‌شد که اکنون هم استفاده می‌شود.

اگر چه مواد متبلور طبیعی که دارای خاصیت پیزو الکتریسیته باشند، فراوان هستند. ولی در کاربرد امواج فراصوت در پزشکی از کریستالهایی استفاده می‌شود که سرامیکی بوده و بطور مصنوعی تهیه می‌شوند. از نمونه این نوع کریستالها، مخلوطی از زیرکونیت و تیتانیت سرب (Lead zirconat & Lead titanat) است که به شدت دارای خاصیت پیزوالکتریسیته هستند. به این مواد که واسطه‌ای برای تبدیل انرژی الکتریکی به انرژی مکانیکی و بالعکس هستند، مبدل یا ترانسدیوسر (transuscer) می‌گویند. یک ترانسدیوسر فراصوتی بکار می‌رود که علامت الکتریکی را به انرژی فراصوت تبدیل کند که به داخل بافت بدن نفوذ و انرژی فراصوت انعکاس یافته را به علامت الکتریکی تبدیل کند.







روش مگنتو استریکسیون

این خاصیت در مواد فرومغناطیس (مواد دارای دو قطبی‌های مغناطیسی کوچک بطور خود به خود با دو قطبی‌های مجاور خود همخط شوند) تحت تأثیر میدان مغناطیسی بوجود می‌آید. مواد مزبور در این میدانها تغییر طول می‌دهند و بسته به فرکانس (شمارش زنشهای کامل موج در یک ثانیه) جریان متناوب به نوسان در می‌آیند و می‌توانند امواج فراصوت تولید کنند. این مواد در پزشکی کاربرد ندارند و شدت امواج تولید شده به این روش کم است و بیشتر کاربرد آزمایشگاهی دارد.
عملکرد دستگاه‌های تصویربرداری و تشخیص با امواج فراصوت

در سیستم‌های فراصوت، پالس‌های مکانیکی با فرکانسی در محدودهٔ فراصوت، توسط پراب مخصوص منتشر می‌گردد. این پراب‌ها دارای آرایه‌ای از فرستنده‌های فرا صوت می‌باشد. بخشی از امواج منتشر شده در محیط (در اینجا بافت‌های زیستی)، با برخورد به مرزهای دو بافت با چگالی متفاوت، دچار بازتابش (اکو) می‌گردند. میزان این بازتابش وابسته به امپدانس انتشار امواج فراصوت در دو محیط می‌باشد. اساس سیستم‌های تصویربرداری آلتراسوند، تشخیص تاخیرهای سیگنال‌های دریافتی و پالس‌های ارسال شده می‌باشد.

در کاربردهای پزشکی، امواج فراصوت با فرکانس‌هایی در رنج ۱ مگاهرتز الی ۱۸ مگاهرتز، به کار گرفته می‌شود. فرکانس‌های بالا نیاز به فرستنده‌هایی با ابعاد کوچک‌تر داشته و با توجه به کوتاه تر شدن طول موج، امکان دستیابی به رزولوشن بالاتر را فراهم می‌آورد، اما با این وجود، میزان تضعیف سیگنال در محیط انتشار، با افزایش فرکانس، افزایش می‌یابد. به همین دلیل رنج فرکانس معمول ۳ الی ۵ مگاهرتز می‌باشد.

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

با افزایش فرکانس، الگوی تابش فرستنده به حالت ایزوتروپیک نزدیک می‌گردد. برای متمرکز نمودن پالس‌های ارسالی در یک راستا و حتی یک نقطه خاص می‌بایست از پراب‌های آرایه فازی، استفاده نمود. این پراب‌ها شامل چندین فرستنده/گیرنده پیزوالکتریک بر روی خود می‌باشند که می‌توان به صورت یک ردیف (یک بعدی) و یا چندین ردیف (دو بعدی) کنار هم چیده شده باشند. در حالت پسیو، می‌توان چیدمان این المان‌ها را به نحوی طراحی نمود که لوب اصلی الگوی تابش آنتن در یک راستای خاص متمرکز گردد.
در حالت اکتیو فاز، با ایجاد تاخیرهای کنترل شده، در پالس‌های ارسالی توسط هر المنت، می‌توان جهت لوب اصلی را نیز بدون تغییر موقعیت مکانیکی فرستنده، تغییر داد. در فرستنده‌های آرایه فازی دو بعدی اکتیو، امکان فوکوس کردن در یک نقطه خاص نیز فراهم می‌آید. این خصوصیت امکان ایجاد تصاویر دو بعدی و سه بعدی را بدون تغییر دادن مکان پراب، فراهم می‌آورد.






کاربرد امواج فراصوت

۱. کاربرد تشخیصی (سونوگرافی)

2. بیماریهای زنان و زایمان (Gynecology) مانند بررسی قلب جنین، اندازه‌گیری قطر سر (سن جنین)، بررسی جایگاه اتصال جفت و محل ناف، تومورهای پستان. 3. بیماریهای مغز و اعصاب(Neurology) مانند بررسی تومور مغزی، خونریزی مغزی به صورت اکوگرام مغزی یا اکوانسفالوگرافی.

4. بیماریهای چشم (ophthalmology) مانند تشخیص اجسام خارجی در درون چشم، تومور عصبی، خونریزی شبکیه، اندازه‌گیری قطر چشم، فاصله عدسی از شبکیه.

5. بیماریهای کبدی (Hepatic) مانند بررسی کیست و آبسه کبدی.

6. بیماری‌های قلبی (cardiology) مانند بررسی اکوکاردیوگرافی.

۷. دندانپزشکی مانند اندازه‌گیری ضخامت بافت نرم در حفره‌های دهانی. و نیز کاربردهای درمانی آن مانند جرم گیری لثه

۸. این امواج به علت اینکه مانند تشعشعات یونیزان عمل نمی‌کنند. بنابراین برای زنان و کودکان بی‌خطر هستند. ۹. همچنین برای تصویربرداری از سینه هااستفاده می‌شود. ۱۰. رزولوشن بالایی از این روش، برای تصویربرداری از بافتهای سطحی و سلولهای نزدیک سطح پوست استفاده می‌شود. کاربرد درمانی (سونوتراپی): ۱. در فیزیوتراپی جهت کاهش درد و التهاب و همچنین انعطاف‌پذیری بافت‌ها از اولترا سوند استفاده می‌گردد.

۲. کاربرد گرمایی 11. تزریق بدون جراحت با جذب امواج فراصوت به‌وسیله بدن بخشی از انرژی آن به گرما تبدیل می‌شود. گرمای موضعی حاصل از جذب امواج فراصوت بهبودی را تسریع می‌کند. قابلیت کشسانی کلاژن (پروتئینی ارتجاعی) را افزایش می‌دهد. کشش در جوشگاه‌های زخم (scars) افزایش می‌دهد و باعث بهبود آنها می‌شود. اگر اسکار به بافتهای زیرین خود چسبیده باشد، باعث آزاد شدن آنها می‌شود. گرمای حاصل از امواج فراصوت با گرمای حاصل از گرمایش متفاوت است.







میکروماساژ مکانیکی

به هنگام فشردگی و انبساط محیط، امواج طولی فراصوتی روی بافت اثر می‌گذارند و باعث جابجایی آب میان بافتی و در نتیجه باعث کاهش ورم (تجمع آب میان بافتی در اثر ضربه به یک محل) می‌شوند.

درمان آسیب تازه و ورم:آسیب تازه معمولاً با ورم همراه است. فراصوت در بسیاری از موارد برای از بین بردن مواد دفعی در اثر ضربه و کاهش خطر چسبندگی بافتها بهم بکار می‌رود.

درمان ورم کهنه یا مزمن: فراصوت چسبندگیهایی که میان ساختمانهای مجاور ممکن است ایجاد شود را می‌شکند.






خطرات فراصوت
جستجو در ویکی‌انبار در ویکی‌انبار پرونده‌هایی دربارهٔ سونوگرافی فراصوتی موجود است.






سوختگی

اگر امواج پیوسته و در یک مکان بدون چرخش بکار روند، در بافت باعث سوختگی می‌شود و باید امواج حرکت داده شوند.






پارگی کروموزومی

استفاده دراز مدت از امواج اولتراسوند با شدت خیلی بالا پارگی در رشته دی ان ای (DNA) را نشان می‌دهد.






ایجاد حفره

یکی از عوامل کاهش انرژی امواج اولتراسوند هنگام گذشتن از بافتهای بدن ایجاد حفره یا کاویتاسیون است. همه محلولها شامل مقدار قابل ملاحظه‌ای حبابهای گاز غیر قابل دیدن هستند و دامنه بزرگ نوسانهای امواج اولتراسوند در داخل محلولها می‌تواند بر روی بافتها تغییرات بیولوژیکی ایجاد کند (پارگی در دیواره یاخته‌ها و از هم گسستن مولکولهای بزرگ).






عایق صوتی

هر وسیله‌ای برای کاهش فشار صوتی با توجه به صدای منبع و گیرنده را عایق صوتی (به انگلیسی: Soundproofing) می‌گویند.

چندین روش اساسی برای کاهش صدا وجود دارد: افزایش فاصله بین منبع و گیرنده، با استفاده از موانع سر و صدا برای منعکس یا جذب انرژی از امواج صوتی است، با استفاده از سازه‌های میرایی مانند تیغه‌های صوتی، و یا با استفاده از عایق‌های صوتی.







فواید استفاده از عایق صوتی

بهبود صدا در یک اتاق (اتاق بدون پژواک)
کاهش نشت صدا به / از اتاق مجاور و یا خارج از منزل
آکوستیک آرام بخش
کاهش سر و صدا
کنترل سر و صدا
محدود کردن سر و صدای ناخواسته


عایق صوتی می‌تواند از امواج صوتی ناخواسته غیر مستقیم مانند سرکوب بازتاب که باعث پژواک جلوگیری کند عایق صوتی می‌تواند انتقال امواج ناخواسته صدای مستقیم از منبع به شنونده غیر ارادی از طریق کاهش استفاده از فاصله و دخالت اشیاء در مسیر صدا مسیر سازد




روشهای ساده عایقکاری صوتی


1. بستن منافذ ورود و خروج هوا. هر منفذی که هوا بتواند از آن عبور کند،صدا را هم می تواندانتقال دهد. کلیه منافذ موجود در سقفها و دیوارهانظیر اطراف جعبه تقسیم های برق، کانالها و داکتها ،سیم ها و هرجایی راکه شیئی از داخل دیوار یا سقف عبور می کند با بتونه یا فوم پلی اورتان درزگیری نمایید.

2. جلوگیری از ایجاد "کانالهای عبور صدا " در دیوارها. هنگام ساخت بناهای جدید ، کلیدهای برق و دریچه های هوا را در داخل دیوارمشترک دو فضا ، پشت به پشت هم قرار ندهید.

3. اجتناب از استفاده از مصالح سخت. زیرا اینگونه مصالح ,صوت را به آسانی ازیک مکان به مکان دیگر انتقال می دهند.

4. استفاده از یک لایه انعطاف پذیرنظیر فوم منبسط شونده ، جهت جدا نمودن لوله ها از غلافها یا سوراخهایی که از آن عبور می کنند.

5. استفاده از عایق صوتی در دیوارهای ساختمانهای جدید جهت جلوگیری ازانتقال صدا بین اتاقهای مجاور. به منظور جلوگیری از انتقال صدای نامطلوب جریان سریع آب به هنگام تخلیه فلاش تانک توالت، لوله های پلاستیکی تخلیه آب را عایق بندی کنید.

6. استفاده از وسایل خانگی آرامتر، حتی اگر گرانتر از موارد مشابه پرصداتر باشند.

7. جدا نمودن تجهیزات صدادار از محلهای استراحت. استفاده از اطاقهای مجزای مجهز به عایق های صوتی می تواند ایده خوبی درطراحی منزل باشد. بکارگیری درهای مجهز به عایق بین کلیه فضاها ، به مقدار قابل ملاحظه ای از انتقال صدا در خانه جلوگیری می کند.

8. استفاده از مصالح جاذب صدا در کفها، دیوارها و سقفها. عایقهای صوتی به مانند موکت می توانند از عبور صدا جلوگیری نمایند. حتی الامکان ازبکارگیری کفپوشهای سخت، مانند سرامیک، بتن و چوب خودداری نمایید.









صوت‌شناسی

صوت‌شناسی یا آکوستیک یکی از شاخه‌های علم فیزیک است و موضوع آن بررسی موج های مکانیکی در گازها ، مایع ها و جامدها ،از جمله نوسان ها ، صدا ، فراصوت و فروصوت است.کاربردهای آکوستیک در بسیاری از جنبه های زندگی امروز دیده می شوند و ساده ترین نمونه آن صنایع صوتی و نیز کنترل نویز (مکانیکی)است.

واژه ی آکوستیک برگرفته از ریشه ی یونانی ακουστικός ، به معنای "برای و از شنوایی" و نیز از ἀκουστός به معنای قابل شنیدن است.






تاریخچه

از نظر اهمیتی که آکوستیک یا علم صدا دارا می‌باشد می‌توان انتظار داشت که این موضوع در تاریخ علوم فیزیک جزو مطالب اساسی به شمار رفته باشد، در صورتی که چنین چیزی نیست، زیرا در قبال تاریخ سایر علوم، تاریخ آکوستیک قسمت از قلم افتاده و مهجوری بیش نیست. یکی از دلایل این مهجوریت تاریخی این است که نظریه اساسی اصلی راجع به انتشار و اخذ صوت از زمانهای بسیار قدیم در تحولات فکر بشری پیدا شده و اسلوب این فکر همان است که امروزه مورد قبول ماست.






تولید صوت

وقتی که به یک جسم جامد ضربه وارد می‌سازیم، تولید صدا می‌کند. تحت بعضی از شرایط صدای حاصل، بگوش انسان خوش آیند و مطبوع است و این در واقع اساس پیدایش علم موسیقی است که سالیان دراز قبل از تاریخ ضبط صوت، موجود بوده است، اما موسیقی، قرنها قبل از نظر علمی مورد تحقیق قرار گیرد، جزو صنایع ظریفه محسوب می‌گردید. این مطلب مورد قبول عموم است که اولین فیلسوف یونانی که مبنای موسیقی را برسی نموده است. فیثاغورث می‌باشد که ۶ قرن قبل از میلاد زندگی می‌کرده است.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 3:36 am
خط مشی جاوا

یکی از ویژگی‌های جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سخت‌افزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره می‌کند، اما نه به‌صورت کد ماشین بلکه به‌صورت بایت‌کد جاوا. دستورالعمل‌ها شبیه کد ماشین هستند، اما با ماشین‌های مجازی که به طور خاص برای سخت‌افزارهای مختلف نوشته شده‌اند، اجرا می‌شوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده می‌کند. کتابخانه‌های استاندارد یک راه عمومی برای دسترسی به ویژگی‌های خاص فراهم می‌کنند. مانند گرافیک، نخ‌کشی و شبکه. در بعضی از نسخه‌های ماشین مجازی جاوا، بایت‌کدها می‌توانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایت‌کد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامه‌های ترجمه شده تقریباً همیشه کندتر از برنامه‌های کامپایل شدهٔ محلی اجرا می‌شوند. این شکاف می‌تواند با چند تکنیک خوش‌بینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیک‌ها JIT است که بایت‌کد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان می‌کند. در نتیجه برنامه خیلی سریع‌تر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا می‌شود. بیشتر VMهای پیشرفته، به‌صورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینه‌سازی قسمت‌های برنامه، استفاده می‌شوند. کامپایل مجدد پویا می‌تواند کامپایل ایستا را بهینه‌سازی کند. زیرا می‌تواند قسمت hot spot برنامه و گاهی حلقه‌های داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامه‌های جاوا اجازه می‌دهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.





تکنیک بعدی به عنوان کامپایل ایستا شناخته شده‌است. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایت‌کدها را به کدهای شی محلی ترجمه می‌کند.

کارایی جاوا نسبت به نسخه‌های اولیه بیشتر شد. در تعدادی از تست‌ها نشان داده شد که کارایی کامپایلرJIT کاملاًَ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماً کارایی کدهای کامپایل شده را نشان نمی‌دهند. یکی از پیشرفت‌های بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمی‌کردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ می‌دهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت می‌کنند.


پیاده‌سازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستم‌عامل). داده‌است. همچنین محیط‌های دیگری برای دیگر پلت فرم‌ها فراهم آورده‌است. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیاده‌سازی‌ها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیاده‌سازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگی‌های خاصی را برای خودش اضافه کرده‌است. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمی‌تواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخه‌های دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه

جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده می‌کند. برنامه‌نویس زمانی که اشیا به وجود می‌آیند، این حافظه را تعیین می‌کند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظه‌است. زمانی که مرجعی برای شی‌های باقی‌مانده نیست، شی‌های غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب می‌شوند. اگر برنامه‌نویس مقداری از حافظه را برای شی‌هایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق می‌افتند.

یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامه‌نویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده می‌گیرد. در بعضی از زبان‌ها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده می‌شود. و یا به‌طور صریح اختصاص داده شده و از heap بازگردانده می‌شود. در هر کدام از این راه‌ها، مسئولیت ادارهٔ اقامت حافظه با برنامه‌نویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق می‌افتد. اگر برنامه تلاش کند به حافظه‌ای را که هم‌اکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بی‌ثبات شده و یا تخریب شود. این ممکن است با استفاده از اشاره‌گر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد می‌شود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. به‌طوری که این زمانی اتفاق می‌افتد که برنامه بی‌کار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده می‌شوند.

جاوا از نوع اشاره‌گر ریاضی C و ++C پشتیبانی نمی‌کند. در جایی که آدرس اشیا و اعداد صحیح می‌توانند به جای هم استفاده شوند. همانند ++C و بعضی زبان‌های شی‌گرای دیگر، متغیرهای نوع‌های اولیهٔ جاوا شی‌گرا نبودند. مقدار نوع‌های اولیه، مستقیماً در فیلدها ذخیره می‌شوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از هیپ استفاده می‌شود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شی‌گرای خالص به حساب نمی‌آید.

گرامر
گرامر جاوا وسیع‌تر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شی‌گرایی، زبان جاوا یک زبان شی‌گرای خالص می‌باشد. فقط نوع دادة اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگی‌ها را پشتیبانی می‌کند و از کلاس‌ها برای ساده‌تر کردن برنامه‌نویسی و کاهش خطا استفاده می‌کند.



بر طبق قرارداد فایل هل بعد از کلاس‌های عمومی نام گذاری می‌شوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد می‌شود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما می‌تواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.

کلاسی که به صورت خصوصی تعریف می‌شود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف می‌شود یک کلاس فایل تولید می‌کند. که نام این کلاس فایل همنام کلاس است با پسوند.class

کلمه کلیدی public (عمومی) برای قسمت‌هایی که می‌توانند از کدهای کلاس‌های دیگر صدا زده بشوند، به کار برده می‌شود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونه‌هایی از کلاس، نشان می‌دهد. فقط تابع‌های ایستا می‌توانند توسط اشیا بدون مرجع صدا زده شوند. داده‌های ایستا به متغیرهایی که ایستا نیستند، نمی‌توانند دسترسی داشته باشند.

کلمهٔ کلیدی void (تهی) نشان می‌دهد که تابع main هیچ مقداری را بر نمی‌گرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا می‌زند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.

تابع main باید آرایه‌ای از اشیا رشته‌ای را بپذیرد. تابع main می‌تواند از آرگومان‌های متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه می‌دهد اعدادی دلخواه از اشیا رشته‌ای را فراخوانی کند. پارامترstring[]args آرایه‌ای از اشیا رشته ایست که شامل تمام آرگومان‌هایی که به کلاس فرستاده می‌شود، است.

چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کرده‌است. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه می‌کند.
توزیع‌های جاوا

منظور از توزیع جاوا پیاده‌سازی‌های مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانه‌های استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیع‌کنندهٔ عمده جاوا وجود دارند:

سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن می‌باشد. در اکثر موارد هنگامی که گفته می‌شود جاوا منظور توزیع سان می‌باشد.
GNU Classpath: این توزیع از سوی موسسه نرم‌افزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهره‌گیری از توزیع شرکت سان از اول پیاده‌سازی شده‌است. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شده‌است. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیط‌های احرایی برنامه‌های جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا می‌کند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرم‌افزارهای آزاد به صورت متن باز منتشر کرده‌است و قول انتشار قسمت بسیار کوچکی از این مجموعه را که به‌دلیل استفاده از کدهای شرکت‌های ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها داده‌است.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می‌باشد که توسط مایکروسافت و در چارچوب.net ارائه شده‌است. انتظار اینکه در سیستم‌عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می‌باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می‌افزاید. این برنامه توسط بنیاد برنامه‌نویسی جلوه‌گرا و به صورت کدباز ارائه شده‌است.



کلاس‌های خاص

برنامک (برنامه‌های کاربردی کوچک)

اپلت جاواها برنامه‌هایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شده‌اند. واژهٔ import باعث می‌شود کامپایلر جاوا کلاس‌های javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه می‌دهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست می‌کند. کلاس اپلت یک تابع پنجره‌ای مجرد است که برنامه‌های کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم می‌کند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل می‌کند، برای اینکه کدی که اپلت را نمایش می‌دهد، فراهم کند. تابع paint شی‌های گرافیکی را که شامل زمینه‌های گرافیکی هستند را می‌فرستد تا برای نمایش اپلت‌ها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا می‌زند.

جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم می‌کند. و شامل مکانیزم‌هایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستم‌های تجاری موجود است.servlet قسمتی از javaEE است که به درخواست‌های مشتری پاسخ می‌دهد.

واژهٔ import کامپایلر جاوا را هدایت می‌کند که تمام کلاس‌های عمومی و واسط‌ها را از بسته‌های java.io وjava.servlet را در کامپایل وارد کند.

کلاس Hello کلاس Genericservlet را توسعه می‌دهد. کلاس Genericservlet واسطی برای سرور فراهم می‌کند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید می‌کند. نوعاً صفحات HTML به درخواست‌های HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه می‌کنند.JSP به javaservlet کامپایل می‌شود.

سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شده‌اند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد می‌کند.

اولین جملهٔ import کامپایلر جاوا را هدایت می‌کندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاس‌های عمومی و واسط آن‌ها را از بستهٔ javax.swing اضافه می‌کند. کلاس Hello کلاس Jframe را توسعه می‌دهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.

زمانی که برنامه آغاز می‌شود، تابع main با JVM صدا زده می‌شود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده می‌شود.
 
ساعت : 3:36 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
جاوا | next page | next page