تقویت کننده
تقویتکننده
آمپلی فایر یا تقویت کننده های الکترونیکی در موسیقی برای تقویت صدای سازهای پیکاپ داری مانند گیتار الکتریک، گیتار باس، ویولون و ... استفاده می شود.
عملکرد دستگاه
امپلی فایرها در به طور عمده دارای دو مدار الکتریکی به نام دریافت سیگنال صدا (Pre Amp) و تقویت کنندهٔ صدا (Power Amp) هستند. از مهمترین قطعاتی که در کیفیت صدای یک امپ بسیار مهم است وجود یک لامپ خلا میباشد. در گذشته در تمامی آمپلی فایرها از لامپ خلا استفاده می شد اما با گذشت زمان و روی کار آمدن ترانزیستورها، جایگزین مناسبی برای لامپهای خلأ به میدان آمد که از لحاظ هزینه بسیار کمتر از لامپهای خلأ بود. اما صدای تولید شده از خازنها هیچگاه کیفیت صدای تولید شده توسط لامپهای خلأ را نداشت و به همین دلیل در بسیاری از موارد حرفهای از همان لامپهای خلأ قدیمی استفاده میشود.
بلندگوی لسلی
بلندگوی لسلی ( بلندگوی گردان ) (به انگلیسی: Leslie Speaker) ساختاریست تشکیل شده از تقویت کننده/بلندگو که برای ایجاد تغییر در صدا با استفاده از اثر داپلر توسط دانلد لسلی اختراع شده.
تقویتکننده الکترونیکی
تقویت کننده الکترونیکی وسیلهای برای افزایش توان سیگنال میباشد. تقویت کننده شکل سیگنال ورودی را حفظ کرده اما دامنه بزرگتر آن را بزرگتر میکند.
از تقویت کننده ها برای تقویت صدای سازهای مانند گیتار الکتریک، گیتار باس، ویولن برای تقویت انواع خروجی های صدا مانند دستگاه های پخش خانگی، دستگاه های پخش خودرو و برای تقویت صداهای ضبط شده در مسیر دستگاه های ضبط صدا در استودیو های صوتی استفاده می شود.
بلندگو
بلندگو به گونهای دستگاه مبدل انرژی گفته میشود که انرژی الکتریکی را به صدا تبدیل میکند. واژه بلندگو ممکن است تنها به یک ترانسدیوسر (که به آن درایور گویند) و یا به سیستمی شامل چندین درایور و همچنین دیگر قطعات الکترونیکی اطلاق شود. بلندگو بخشی از هر سیستم صوتی است و معمولاً تفاوت کیفیت در سیستمهای صوتی ناشی از این بخش است و بیشترین اعوجاج در صدا در این بخش صورت میگیرد.
تاریخچه
فیلیپ رئیس یک بلندگوی الکتریکی را در سال ۱۸۶۳ در تلفن خود نصب کرد که قادر بود صدایی واضح را مجددا تولید کند.
بلندگوی رایانه
بلندگوی رایانه (به انگلیسی: Computer speaker) دستگاهی از دسته سختافزار رایانه است که وظیفهی انتقال صوت به بیرون از رایانه را دارا میباشد؛ این دستگاهها بیشتر دارای یک آمپلیفایر (تقویتکننده الکترونیکی) داخلی با قدرت کم هستند.ارتباط صوتی استاندارد این دستگاهها با رایانه از طریق کابل ۳٫۵ میلی متری (حدود یک هشتم اینچ) که رابط تیآراس نام دارد و اغلب به رنگ سبز مغزپستهای است برقرار میشود.
مانیتور استودیو
مانیتور استودیو نوعی از بلندگوها است که برای تولید برنامههای کاربردی مخصوص استودیو ضبط کاربرد دارد. فرق این بلندگوها با بلندگوهای معمولی در این است که صدای خارجشونده از این دستگاهها فاقد هرگونه تغییر و بیس بوده و صرفاً هرآنچه که درآن وارد میشود را خارج میکند. در اغلب موارد برای تفکیک بهتر صداهای ورودی این قطعه نیازمند تقویتکننده الکترونیکی است.
صدا
صدا یا صوت از انواع انرژی است که از تحرک ذرات ماده بوجود میآیند به این گونه که یک ذره با حرکت (برخورد) خود به ذرهای دیگر ذرهٔ دیگر را به حرکت در میآورد و به همین ترتیب است که صوت نشر مییابد. صدا ارتعاشیست که توسط حس شنوایی انسان درک میشود. ما معمولاً اصواتی که در هوا حرکت میکنند را میشنویم ولی صدا میتواند در گاز، مایع و حتی جامدات نیز حرکت کند.صدا ص َ (ع اِ) ۞ معرب «سدا» است ۞ و آن آوازی باشد که در کوه و گنبد وامثال آن پیچد و باز همان شنیده شود و در عربی نیز همین معنی را دارد .
سرعت صوت در جامدات بدلیل تراکم زیاد مولکولها، بیشتر از مایعات و در مایعات نیز بیشتر از گازها است. صوت بر خلاف امواج دیگر مانند نور و گرما فقط در محیطی نشر مییابد که ماده وجود داشته باشد و این بدین معناست که اگر بر سطح ماه (که هوایی وجود ندارد) انفجاری روی دهد شما هیچ وقت صدای آنرا نمیشنوید. از واحد دسیبل نیز برای اندازه گیری شدت صوت استفاده میکنند. محدودهٔ شنوایی انسان بین ۲۰ تا ۲۰۰۰۰ هرتز میباشد.
خصوصیات صدا
ویژگیهای صدا عبارتند از بسامد، طول موج، دامنه و سرعت
بسامد و طول موج
بسامد تعداد تغییرات فشار هوا در هر ثانیه در یک نقطه ی ثابت است که موج صدا در حال گذر از آن میباشد. یک چرخه ی نوسانی ساده در یک ثانیه برابر با یک هرتز است. طول موج برابر فاصله ی بین دو قله ی متوالی بوده که موج در مدت زمان یک چرخه ی نوسانی آنرا طی میکند.
سرعت صوت
سرعت انتشار صوت بستگی به نوع، دما و فشار محیطی که صوت در آن منتشر میشود دارد. در شرایط طبیعی از آنجایی که هوا تقریباً بصورت یک گاز کامل رفتار میکند سرعت صوت وابسته به فشار هوا نخواهد بود. در هوای خشک در دمای 20 درجه ی سانتیگراد سرعت صوت حدوداً 343 متر در ثانیه یعنی حدوداً یک متر در هر 3 هزارم ثانیه است. سرعت صوت همچنین وابسته به بسامد و طول موج است. بنابراین یک صوت 343 هرتزی طول موج یک متر خواهد داشت.
واژهٔ «صدا»، معرب (عربیشدهٔ) «سدا»ی پارسی است.
سرعت صوت
سرعت صوت (به انگلیسی: Speed of sound)، فاصلهایست که یک موج صوتی در مدت زمان یک ثانیه در یک سیال میپیماید. سرعت صوت مشخص میکند که این موج در بازهٔ مشخصی از زمان چه مسافتی را طی میکند. در هوای خشک و در دمای ۲۰ درجه سانتیگراد (۶۸ درجه فارنهایت)، سرعت صوت ۳۴۳٫۲ متر بر ثانیه (۱۱۲۶ فوت بر ثانیه)، ۱۲۳۶ کیلومتر بر ساعت (۷۶۸ مایل بر ساعت) یا به طور تقریبی، یک کیلومتر در سه ثانیه و یا تقریباً یک مایل در پنج ثانیه است. در دینامیک سیالات، سرعت صوت در یک سیال (گاز یا مایع)، به عنوان یک ابزار حسابگری نسبی خود سرعت استفاده میشود. سرعت یک شیئ (فاصله بر زمان) تقسیم بر سرعت صوت در سیال به عنوان عدد ماخ شناخته میشود. اشیایئ که با سرعت بیشتر از یک ماخ حرکت میکنند، در سرعتهای سوپرسونیک حرکت میکنند.
سرعت صوت در یک گاز ایدهآل، مستقل از فرکانس است وتابعی از ریشهٔ دوم دمای مطلق است ولی به فشار یا چگالی آن گاز وابسته نیست. برای گازهای مختلف، سرعت صوت به طور معکوس به ریشه دوم میانگین جرم مولکولی گاز بستگی دارد.
در گفتگوهای مرسوم روزمره، منظور از سرعت صوت، سرعت موج صوتی در سیالِ هوا است. با این حال، سرعت صوت از یک ماده به مادهٔ دیگر متفاوت است. صوت در مایعات و جامدات نامتخلخل سریعتر از هوا، حرکت میکند. میتوان گفت سرعت صوت در آب حدود ۴٫۳ برابر (۱۴۸۴ متر بر ثانیه)، و در آهن تقریباً ۱۵ برابر (۵۱۲۰ متر بر ثانیه) سرعت آن در هوای ۲۰ درجه سانتیگراد است.
سرعت صوت در فلزات و جامدات، مایعات، درون محیطهایی که فشردگی هوای آنها نسبت به محیط آزاد بیشتر است، مناطق سرد و مرطوب و پست تر از دریا، مناطق سرد و مرطوب در کنار دریا، مناطق سرد و مرطوب بالاتر از دریا، مناطق مرطوب بالاتر از دریا نسبت به هوای آزاد در حالت عادی به ترتیب ذکر شده بیشتر است. صوت از محیطهایی که مادی نیستند (در آنجا ماده وجود ندارد) نمیتواند عبور کند.
صدای انسان
صدای انسان متشکل از صوتی است که با استفاده از تارهای صوتی توسط انسان ساخته شده و برای صحبت کردن ، آواز خواندن ، خندیدن ، گریه کردن ، فریاد زدن و ... مورد استفاده قرار می گیرد.
تارهای صوتی فقط بخشی از صدای اولیه ی انسان را می سازند و به طور کلی مکانیزم تولید صدای انسان را می توان به سه بخش ریه ، تارهای صوتی موجود در حنجره و مفاصل تقسیم بندی کرد.
ریه ( پمپ ) باید جریان هوا و فشار هوای کافی را برای ارتعاش تارهای صوتی تولید کند تارهای صوتی یک دریچه ی ارتعاشی هستند که جریان هوا را از ریه صادر می کند تا پالس های قابل شنیدنی را به صورت یک منبع صدا در حنجره تولید نمایند.عضلات حنجره ، طول و تنش تارهای صوتی را برای ایجاد تن صدایی بسیار خوب تنظیم می کنند .
مفاصل ( بخش هایی از دستگاه صوتی در قسمت فوقانی حنجره شامل زبان ، کام ، گونه ، لب ها و غیره ) ، صدای نشأت گرفته از حنجره را واضح و شفاف و به نوعی فیلتر می کنند و تا حدی می توانند جریان هوای حنجره را به عنوان یک منبع صدا تقویت یا تضعیف نمایند .
تارهای صوتی در ترکیب با مفاصل قادر به تولید آرایه های بسیار پیچیده ای از صدا هستند . تن یا لحن صدا می تواند بیانگر احساسات مختلف انسان باشد : مانند خشم ، تعجب یا شادی .
خواننده ها از صدای انسان به عنوان ابزاری برای ایجاد موسیقی استفاده می کنند .
مهندسی صوت
مهندسی صوت (به انگلیسی: Acoustical engineering) قسمتی از علم صوت است که با ضبط و تکثیر صوت توسط وسایل الکتریکی و مکانیکی سروکار دارد. مهندسی صوت از رشتههای مختلفی بهره میبرد از جمله: مهندسی برق، صوتشناسی (acoustics)، روانشناسی صوتی (psychoacoustics) و موسیقی.
نوروصوتشناسی
نوروصوتشناسی یا آکوستو-اپتیک (Acousto-optics) شاخهای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیلهٔ امواج صوتی میپردازد.
اپتیک تاریخچهای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچهای طولانی دارد که به زمان یونانیان باستان باز میگردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچهای کوتاهاست. این زمینه از علم با پیش بینی بریلوئن در مورد پراش نور بوسیلهٔ امواج صوتی منتشر شده در ماده در سال ۱۹۲۲ میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.
مورد خاص پراش مرتبهٔ اول تحت یک زاویهٔ فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال ۱۹۳۷ یک مدل عمومی تر را طراحی کردند که پراشهای مرتبهٔ بالاتر را آشکار کند. این مدل بعدها در سال ۱۹۵۶ توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبهٔ پراشی مشخص بود.
اساس نوروصوتشناسی، تغییر ضریب شکست به خاطر حضور موج صوتی در مادهاست. موج صوتی یک شبکهٔ ضریب شکست در ماده به وجود میآورد و این شبکه توسط موج نوری "دیده" میشود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.
آکوستو اپتیک
آکوستو اپتیک شاخه ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیله ی امواج صوتی می پردازد.
مقدمه
اپتیک تاریخچه ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه ای طولانی دارد که به زمان یونانیان باستان باز می گردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچه ای کوتاه است. این زمینه از علم با پیش بینیبریلوئندر مورد پراش نور بوسیله ی امواج صوتی منتشر شده در ماده در سال 1922 میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.
مورد خاص پراش مرتبه ی اول تحت یک زاویه ی فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال 1937 یک مدل عمومی تر را طراحی کردند که پراش های مرتبه ی بالاتر را آشکار کند. این مدل بعد ها در سال 1956 توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبه ی پراشی مشخص بود.
اساس آکوستو اپتیک، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده است. موج صوتی یک شبکه ی ضریب شکست در ماده به وجود می آورد و این شبکه توسط موج نوری "دیده" می شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.
ابزارهای الکترو اپتیکی
ابزار های آکوستو اپتیکی شامل سه گروه زیر هستند:
1- مدولاتور الکترو اپتیکی
با تغییر پارامترهای موج صوتی مانند دامنه، فاز، فرکانس، و قطبش می توان خواص موج نوری را مدوله کرد. برهمکنش نور و صوت همچنین امکان مدوله کردن زمانی و فضایی موج نوری را فراهم می آورد.
یک راه ساده برای مدوله کردن پرتوی اپتیکی عبور نور از محیطی است که در آن موج صوتی به طور متناوب روشن و خاموش شود. وقتی صوت خاموش باشد زاویه ی پراش صفر و نور بی تغییر است. با روشن شدن صوت پراش رخ می دهد و شدت صوت در زوایای پراش افزایش ی یابد. با ثابت نگاه داشتن فرکانس صوتی و تغییر در توان مولد صوت می توان این ابزار را به یک مدولاتور آکوستواپتیکی تبدیل نمود. در طراحی مدولاتور باید به نحوی عمل کرد که ماکزیمم شدت نور در پرتوی پراشیده رخ بدهد. مدت زمانی که طول می کشد صوت از ماده عبور کند نیز محدودیتی بر سرعت سوییچ کردن تحمیل می کند. برای همین پرتوی نوری را تا حد ممکن باریک می کنند. باریک ترین پرتوی نوری ممکن را حد پهنای باند می نامند.
2- فیلتر های الکترو اپتیکی
رابطه ی 4 ارتباطی را میان طول موج صوتی و طول موج نوری نشان می دهد. در واقع پرتوی نوری تابیده شده، اگر دارای تعداد زیادی طول موج باشد فقط در طول موج های خاصی پراکنده می شود. مابقی طول موج ها فیلتر خواهند شد.
3- منحرف کننده های الکترو اپتیکی
با ایجاد یک تغییر در فرکانس صوت می توان تغییر زاویه ای در پرتوی نوری ایجاد کرد.
پژواک
پژواک (اکو)، بازگشت صدا از دیوار یا سایر اشیاست. صدا با سرعتی مشخّص و ثابت (نزدیک به ۳۴۴ متر بر ثانیه) حرکت میکند؛ بنابراین میتوانیم با استفاده از پژواک، فاصلهٔ برخی از اشیا را محاسبه کنیم. دستگاه عمقسنج کشتی، برای محاسبهٔ عمق دریا از پژواک بهره میگیرد.
پژواک، خفّاش را قادر میسازد تا در تاریکی پرواز کند. رادار نیز از خاصیّت پژواک (وبا استفاده از امواج رادیویی) در کشف هدف بهره میگیرد.
فرامواد
متامتریال یا فرامواد به ماده مرکبی گفته میشود که دارای خواص نامتعارف الکترومغناطیس در ساختار وجودی خود است. آنچه این مواد را غیر معمول کرده است، خاصیت ضریب شکست منفی نور در آنها است، به این معنا که این مواد نور را در جهت مخالف مواد عادی منکسر میکنند. مواد الکترومغناطیس تشکیل دهنده آنها میتواند با دستکاری مختصر و دقیق ساختارشان «تنظیم» نیزبشود.
این مواد از ترکیب میلههای ریز و مجموعهای از حلقههای فلزی و مانند آنان ساخته شده است که برای اولین بار توسط دیوید اسمیت (David Smith استاد دانشگاه کالیفرنیا) ساخته شد. خواص نامتعارف این مواد سبب شده است از آنها در زمینههای مختلف استفاده شود از جمله آنها در مهندسی مایکروویو است که میتوان به کاربرد در موجبرها، جبران پاشندگی، آنتنهای هوشمند، لنزها و نمونههای فراوان دیگر استفاده کرد.
آمپلی فایر یا تقویت کننده های الکترونیکی در موسیقی برای تقویت صدای سازهای پیکاپ داری مانند گیتار الکتریک، گیتار باس، ویولون و ... استفاده می شود.
عملکرد دستگاه
امپلی فایرها در به طور عمده دارای دو مدار الکتریکی به نام دریافت سیگنال صدا (Pre Amp) و تقویت کنندهٔ صدا (Power Amp) هستند. از مهمترین قطعاتی که در کیفیت صدای یک امپ بسیار مهم است وجود یک لامپ خلا میباشد. در گذشته در تمامی آمپلی فایرها از لامپ خلا استفاده می شد اما با گذشت زمان و روی کار آمدن ترانزیستورها، جایگزین مناسبی برای لامپهای خلأ به میدان آمد که از لحاظ هزینه بسیار کمتر از لامپهای خلأ بود. اما صدای تولید شده از خازنها هیچگاه کیفیت صدای تولید شده توسط لامپهای خلأ را نداشت و به همین دلیل در بسیاری از موارد حرفهای از همان لامپهای خلأ قدیمی استفاده میشود.
بلندگوی لسلی
بلندگوی لسلی ( بلندگوی گردان ) (به انگلیسی: Leslie Speaker) ساختاریست تشکیل شده از تقویت کننده/بلندگو که برای ایجاد تغییر در صدا با استفاده از اثر داپلر توسط دانلد لسلی اختراع شده.
تقویتکننده الکترونیکی
تقویت کننده الکترونیکی وسیلهای برای افزایش توان سیگنال میباشد. تقویت کننده شکل سیگنال ورودی را حفظ کرده اما دامنه بزرگتر آن را بزرگتر میکند.
از تقویت کننده ها برای تقویت صدای سازهای مانند گیتار الکتریک، گیتار باس، ویولن برای تقویت انواع خروجی های صدا مانند دستگاه های پخش خانگی، دستگاه های پخش خودرو و برای تقویت صداهای ضبط شده در مسیر دستگاه های ضبط صدا در استودیو های صوتی استفاده می شود.
بلندگو
بلندگو به گونهای دستگاه مبدل انرژی گفته میشود که انرژی الکتریکی را به صدا تبدیل میکند. واژه بلندگو ممکن است تنها به یک ترانسدیوسر (که به آن درایور گویند) و یا به سیستمی شامل چندین درایور و همچنین دیگر قطعات الکترونیکی اطلاق شود. بلندگو بخشی از هر سیستم صوتی است و معمولاً تفاوت کیفیت در سیستمهای صوتی ناشی از این بخش است و بیشترین اعوجاج در صدا در این بخش صورت میگیرد.
تاریخچه
فیلیپ رئیس یک بلندگوی الکتریکی را در سال ۱۸۶۳ در تلفن خود نصب کرد که قادر بود صدایی واضح را مجددا تولید کند.
بلندگوی رایانه
بلندگوی رایانه (به انگلیسی: Computer speaker) دستگاهی از دسته سختافزار رایانه است که وظیفهی انتقال صوت به بیرون از رایانه را دارا میباشد؛ این دستگاهها بیشتر دارای یک آمپلیفایر (تقویتکننده الکترونیکی) داخلی با قدرت کم هستند.ارتباط صوتی استاندارد این دستگاهها با رایانه از طریق کابل ۳٫۵ میلی متری (حدود یک هشتم اینچ) که رابط تیآراس نام دارد و اغلب به رنگ سبز مغزپستهای است برقرار میشود.
مانیتور استودیو
مانیتور استودیو نوعی از بلندگوها است که برای تولید برنامههای کاربردی مخصوص استودیو ضبط کاربرد دارد. فرق این بلندگوها با بلندگوهای معمولی در این است که صدای خارجشونده از این دستگاهها فاقد هرگونه تغییر و بیس بوده و صرفاً هرآنچه که درآن وارد میشود را خارج میکند. در اغلب موارد برای تفکیک بهتر صداهای ورودی این قطعه نیازمند تقویتکننده الکترونیکی است.
صدا
صدا یا صوت از انواع انرژی است که از تحرک ذرات ماده بوجود میآیند به این گونه که یک ذره با حرکت (برخورد) خود به ذرهای دیگر ذرهٔ دیگر را به حرکت در میآورد و به همین ترتیب است که صوت نشر مییابد. صدا ارتعاشیست که توسط حس شنوایی انسان درک میشود. ما معمولاً اصواتی که در هوا حرکت میکنند را میشنویم ولی صدا میتواند در گاز، مایع و حتی جامدات نیز حرکت کند.صدا ص َ (ع اِ) ۞ معرب «سدا» است ۞ و آن آوازی باشد که در کوه و گنبد وامثال آن پیچد و باز همان شنیده شود و در عربی نیز همین معنی را دارد .
سرعت صوت در جامدات بدلیل تراکم زیاد مولکولها، بیشتر از مایعات و در مایعات نیز بیشتر از گازها است. صوت بر خلاف امواج دیگر مانند نور و گرما فقط در محیطی نشر مییابد که ماده وجود داشته باشد و این بدین معناست که اگر بر سطح ماه (که هوایی وجود ندارد) انفجاری روی دهد شما هیچ وقت صدای آنرا نمیشنوید. از واحد دسیبل نیز برای اندازه گیری شدت صوت استفاده میکنند. محدودهٔ شنوایی انسان بین ۲۰ تا ۲۰۰۰۰ هرتز میباشد.
خصوصیات صدا
ویژگیهای صدا عبارتند از بسامد، طول موج، دامنه و سرعت
بسامد و طول موج
بسامد تعداد تغییرات فشار هوا در هر ثانیه در یک نقطه ی ثابت است که موج صدا در حال گذر از آن میباشد. یک چرخه ی نوسانی ساده در یک ثانیه برابر با یک هرتز است. طول موج برابر فاصله ی بین دو قله ی متوالی بوده که موج در مدت زمان یک چرخه ی نوسانی آنرا طی میکند.
سرعت صوت
سرعت انتشار صوت بستگی به نوع، دما و فشار محیطی که صوت در آن منتشر میشود دارد. در شرایط طبیعی از آنجایی که هوا تقریباً بصورت یک گاز کامل رفتار میکند سرعت صوت وابسته به فشار هوا نخواهد بود. در هوای خشک در دمای 20 درجه ی سانتیگراد سرعت صوت حدوداً 343 متر در ثانیه یعنی حدوداً یک متر در هر 3 هزارم ثانیه است. سرعت صوت همچنین وابسته به بسامد و طول موج است. بنابراین یک صوت 343 هرتزی طول موج یک متر خواهد داشت.
واژهٔ «صدا»، معرب (عربیشدهٔ) «سدا»ی پارسی است.
سرعت صوت
سرعت صوت (به انگلیسی: Speed of sound)، فاصلهایست که یک موج صوتی در مدت زمان یک ثانیه در یک سیال میپیماید. سرعت صوت مشخص میکند که این موج در بازهٔ مشخصی از زمان چه مسافتی را طی میکند. در هوای خشک و در دمای ۲۰ درجه سانتیگراد (۶۸ درجه فارنهایت)، سرعت صوت ۳۴۳٫۲ متر بر ثانیه (۱۱۲۶ فوت بر ثانیه)، ۱۲۳۶ کیلومتر بر ساعت (۷۶۸ مایل بر ساعت) یا به طور تقریبی، یک کیلومتر در سه ثانیه و یا تقریباً یک مایل در پنج ثانیه است. در دینامیک سیالات، سرعت صوت در یک سیال (گاز یا مایع)، به عنوان یک ابزار حسابگری نسبی خود سرعت استفاده میشود. سرعت یک شیئ (فاصله بر زمان) تقسیم بر سرعت صوت در سیال به عنوان عدد ماخ شناخته میشود. اشیایئ که با سرعت بیشتر از یک ماخ حرکت میکنند، در سرعتهای سوپرسونیک حرکت میکنند.
سرعت صوت در یک گاز ایدهآل، مستقل از فرکانس است وتابعی از ریشهٔ دوم دمای مطلق است ولی به فشار یا چگالی آن گاز وابسته نیست. برای گازهای مختلف، سرعت صوت به طور معکوس به ریشه دوم میانگین جرم مولکولی گاز بستگی دارد.
در گفتگوهای مرسوم روزمره، منظور از سرعت صوت، سرعت موج صوتی در سیالِ هوا است. با این حال، سرعت صوت از یک ماده به مادهٔ دیگر متفاوت است. صوت در مایعات و جامدات نامتخلخل سریعتر از هوا، حرکت میکند. میتوان گفت سرعت صوت در آب حدود ۴٫۳ برابر (۱۴۸۴ متر بر ثانیه)، و در آهن تقریباً ۱۵ برابر (۵۱۲۰ متر بر ثانیه) سرعت آن در هوای ۲۰ درجه سانتیگراد است.
سرعت صوت در فلزات و جامدات، مایعات، درون محیطهایی که فشردگی هوای آنها نسبت به محیط آزاد بیشتر است، مناطق سرد و مرطوب و پست تر از دریا، مناطق سرد و مرطوب در کنار دریا، مناطق سرد و مرطوب بالاتر از دریا، مناطق مرطوب بالاتر از دریا نسبت به هوای آزاد در حالت عادی به ترتیب ذکر شده بیشتر است. صوت از محیطهایی که مادی نیستند (در آنجا ماده وجود ندارد) نمیتواند عبور کند.
صدای انسان
صدای انسان متشکل از صوتی است که با استفاده از تارهای صوتی توسط انسان ساخته شده و برای صحبت کردن ، آواز خواندن ، خندیدن ، گریه کردن ، فریاد زدن و ... مورد استفاده قرار می گیرد.
تارهای صوتی فقط بخشی از صدای اولیه ی انسان را می سازند و به طور کلی مکانیزم تولید صدای انسان را می توان به سه بخش ریه ، تارهای صوتی موجود در حنجره و مفاصل تقسیم بندی کرد.
ریه ( پمپ ) باید جریان هوا و فشار هوای کافی را برای ارتعاش تارهای صوتی تولید کند تارهای صوتی یک دریچه ی ارتعاشی هستند که جریان هوا را از ریه صادر می کند تا پالس های قابل شنیدنی را به صورت یک منبع صدا در حنجره تولید نمایند.عضلات حنجره ، طول و تنش تارهای صوتی را برای ایجاد تن صدایی بسیار خوب تنظیم می کنند .
مفاصل ( بخش هایی از دستگاه صوتی در قسمت فوقانی حنجره شامل زبان ، کام ، گونه ، لب ها و غیره ) ، صدای نشأت گرفته از حنجره را واضح و شفاف و به نوعی فیلتر می کنند و تا حدی می توانند جریان هوای حنجره را به عنوان یک منبع صدا تقویت یا تضعیف نمایند .
تارهای صوتی در ترکیب با مفاصل قادر به تولید آرایه های بسیار پیچیده ای از صدا هستند . تن یا لحن صدا می تواند بیانگر احساسات مختلف انسان باشد : مانند خشم ، تعجب یا شادی .
خواننده ها از صدای انسان به عنوان ابزاری برای ایجاد موسیقی استفاده می کنند .
مهندسی صوت
مهندسی صوت (به انگلیسی: Acoustical engineering) قسمتی از علم صوت است که با ضبط و تکثیر صوت توسط وسایل الکتریکی و مکانیکی سروکار دارد. مهندسی صوت از رشتههای مختلفی بهره میبرد از جمله: مهندسی برق، صوتشناسی (acoustics)، روانشناسی صوتی (psychoacoustics) و موسیقی.
نوروصوتشناسی
نوروصوتشناسی یا آکوستو-اپتیک (Acousto-optics) شاخهای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیلهٔ امواج صوتی میپردازد.
اپتیک تاریخچهای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچهای طولانی دارد که به زمان یونانیان باستان باز میگردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچهای کوتاهاست. این زمینه از علم با پیش بینی بریلوئن در مورد پراش نور بوسیلهٔ امواج صوتی منتشر شده در ماده در سال ۱۹۲۲ میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.
مورد خاص پراش مرتبهٔ اول تحت یک زاویهٔ فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال ۱۹۳۷ یک مدل عمومی تر را طراحی کردند که پراشهای مرتبهٔ بالاتر را آشکار کند. این مدل بعدها در سال ۱۹۵۶ توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبهٔ پراشی مشخص بود.
اساس نوروصوتشناسی، تغییر ضریب شکست به خاطر حضور موج صوتی در مادهاست. موج صوتی یک شبکهٔ ضریب شکست در ماده به وجود میآورد و این شبکه توسط موج نوری "دیده" میشود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.
آکوستو اپتیک
آکوستو اپتیک شاخه ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیله ی امواج صوتی می پردازد.
مقدمه
اپتیک تاریخچه ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه ای طولانی دارد که به زمان یونانیان باستان باز می گردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچه ای کوتاه است. این زمینه از علم با پیش بینیبریلوئندر مورد پراش نور بوسیله ی امواج صوتی منتشر شده در ماده در سال 1922 میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.
مورد خاص پراش مرتبه ی اول تحت یک زاویه ی فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال 1937 یک مدل عمومی تر را طراحی کردند که پراش های مرتبه ی بالاتر را آشکار کند. این مدل بعد ها در سال 1956 توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبه ی پراشی مشخص بود.
اساس آکوستو اپتیک، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده است. موج صوتی یک شبکه ی ضریب شکست در ماده به وجود می آورد و این شبکه توسط موج نوری "دیده" می شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.
ابزارهای الکترو اپتیکی
ابزار های آکوستو اپتیکی شامل سه گروه زیر هستند:
1- مدولاتور الکترو اپتیکی
با تغییر پارامترهای موج صوتی مانند دامنه، فاز، فرکانس، و قطبش می توان خواص موج نوری را مدوله کرد. برهمکنش نور و صوت همچنین امکان مدوله کردن زمانی و فضایی موج نوری را فراهم می آورد.
یک راه ساده برای مدوله کردن پرتوی اپتیکی عبور نور از محیطی است که در آن موج صوتی به طور متناوب روشن و خاموش شود. وقتی صوت خاموش باشد زاویه ی پراش صفر و نور بی تغییر است. با روشن شدن صوت پراش رخ می دهد و شدت صوت در زوایای پراش افزایش ی یابد. با ثابت نگاه داشتن فرکانس صوتی و تغییر در توان مولد صوت می توان این ابزار را به یک مدولاتور آکوستواپتیکی تبدیل نمود. در طراحی مدولاتور باید به نحوی عمل کرد که ماکزیمم شدت نور در پرتوی پراشیده رخ بدهد. مدت زمانی که طول می کشد صوت از ماده عبور کند نیز محدودیتی بر سرعت سوییچ کردن تحمیل می کند. برای همین پرتوی نوری را تا حد ممکن باریک می کنند. باریک ترین پرتوی نوری ممکن را حد پهنای باند می نامند.
2- فیلتر های الکترو اپتیکی
رابطه ی 4 ارتباطی را میان طول موج صوتی و طول موج نوری نشان می دهد. در واقع پرتوی نوری تابیده شده، اگر دارای تعداد زیادی طول موج باشد فقط در طول موج های خاصی پراکنده می شود. مابقی طول موج ها فیلتر خواهند شد.
3- منحرف کننده های الکترو اپتیکی
با ایجاد یک تغییر در فرکانس صوت می توان تغییر زاویه ای در پرتوی نوری ایجاد کرد.
پژواک
پژواک (اکو)، بازگشت صدا از دیوار یا سایر اشیاست. صدا با سرعتی مشخّص و ثابت (نزدیک به ۳۴۴ متر بر ثانیه) حرکت میکند؛ بنابراین میتوانیم با استفاده از پژواک، فاصلهٔ برخی از اشیا را محاسبه کنیم. دستگاه عمقسنج کشتی، برای محاسبهٔ عمق دریا از پژواک بهره میگیرد.
پژواک، خفّاش را قادر میسازد تا در تاریکی پرواز کند. رادار نیز از خاصیّت پژواک (وبا استفاده از امواج رادیویی) در کشف هدف بهره میگیرد.
فرامواد
متامتریال یا فرامواد به ماده مرکبی گفته میشود که دارای خواص نامتعارف الکترومغناطیس در ساختار وجودی خود است. آنچه این مواد را غیر معمول کرده است، خاصیت ضریب شکست منفی نور در آنها است، به این معنا که این مواد نور را در جهت مخالف مواد عادی منکسر میکنند. مواد الکترومغناطیس تشکیل دهنده آنها میتواند با دستکاری مختصر و دقیق ساختارشان «تنظیم» نیزبشود.
این مواد از ترکیب میلههای ریز و مجموعهای از حلقههای فلزی و مانند آنان ساخته شده است که برای اولین بار توسط دیوید اسمیت (David Smith استاد دانشگاه کالیفرنیا) ساخته شد. خواص نامتعارف این مواد سبب شده است از آنها در زمینههای مختلف استفاده شود از جمله آنها در مهندسی مایکروویو است که میتوان به کاربرد در موجبرها، جبران پاشندگی، آنتنهای هوشمند، لنزها و نمونههای فراوان دیگر استفاده کرد.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای 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 نمایش داده میشود.
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای 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 نمایش داده میشود.