با استفاده از ()Math.random می توانید اعداد تصادفی در محدوده بزرگتر یا مساوی 0.1 و کمتر از 1.0 تولید کنید. بااستفاده از کلاس Random در پکیج java.util نیز می توان اعداد تصادفی تولید کرد.
break و continue دو کلیدواژه مهم مورد استفاده در Loops هستند. هنگامی که یک کلمه کلیدی break در یک حلقه استفاده می شود، حلقه فوراً شکسته می شود در حالی که وقتی از کلمه کلیدی continue استفاده می شود، تکرار فعلی شکسته می شود و حلقه با تکرار بعدی ادامه می یابد. در مثال اول، زمانی که شمارنده به عدد 4 برسد، حلقه شکسته می شود. در حالی که در مثال دوم وقتی شمارنده به عدد 4 می رسد، حلقه به تکرار بعدی می رود و هر عبارت پس از کلمه کلیدی ادامه برای تکرار فعلی نادیده گرفته می شود.
Example 1
for (counter = 0; counter & lt; 10; counter++)
{
system.out.println(counter);
if (counter == 4)
{
break;
}
}
Example 2
for (counter = 0; counter < 10; counter++)
{
system.out.println(counter);
if (counter == 4)
{
continue;
}
system.out.println("This will not get printed when counter is 4");
}
این سوال از من پرسیده شده است  + 
در جاوا، float چهار بایت در حافظه می گیرد در حالی که Double هشت بایت در حافظه می گیرد. نوع داده ای Double دقیق تر از float است. یک متغیر Double می تواند دقتی تا 15 تا 16 رقم اعشار را در مقایسه با دقت float که 6 تا 7 رقم اعشاری است ارائه دهد.
در جاوا یک ثابت با استفاده از کلمه کلیدی final اعلام می شود. مقدار فقط یک بار قابل تخصیص است و پس از تخصیص، مقدارش قابل تغییر نیست. هنگامی که یک متد به عنوان final اعلام می شود، نمی توان آن را توسط Subclass ها بازنویسی (Override) کرد. هنگامی که یک کلاس به عنوان final اعلام می شود، نمی توان آن را Subclass قرار داد. در مثال زیر، یک ثابت با نام const_val اعلان شده و به آن مقدار داده می شود:
Private Final int const_val=100
این سوال از من پرسیده شده است  + 
در مثال زیر دو شی از کلاس Java.Lang.String ایجاد می شود. s1 و s3 ارجاعاتی به یک شی واحد هستند.
String s1="I am Java Expert";
String s2="I am C Expert";
String s3="I am Java Expert";
این سوال از من پرسیده شده است  + 
در جاوا، هنگامی که یک شی در جاوا دیگر استفاده نشود، جمع آوری زباله(Garbage Collection) به صورت خودکار انجام میشود و شی از بین می رود. برای جمعآوری خودکار زباله، جاوا متد ()System.gc یا ()Runtime.gc را فراخوانی میکند.
اگر سلسله مراتبی از وراثت استفاده شود، یک کلاس می تواند همزمان برای کلاس دیگر یک سوپرکلاس(پدر) و برای کلاس دیگر یک زیرکلاس(فرزند) باشد. در مثال زیر، کلاس قاره زیرکلاس کلاس جهان و سوپرکلاس کلاس کشور است.
public class world {
..........
}
public class continenet extends world {
............
}
public class country extends continent {
......................
}
این سوال از من پرسیده شده است  + 
سازنده یک کلاس هر بار که یک شی با کلمه کلیدی جدید ایجاد می شود، فراخوانی می شود. به عنوان مثال، در کلاس زیر دو شی با استفاده از کلمه کلیدی جدید ایجاد می شود و از این رو سازنده دو بار فراخوانی می شود.
public static void main(String args[]) {
const_example c1 = new const_example();
const_example c2 = new const_example();
}
public class const_example {
const_example() {
system.out.println("Inside constructor");
}
}
این سوال از من پرسیده شده است  + 
در جاوا از متد ()equals برای مقایسه محتویات دو شی رشته ای استفاده می شود و اگر هر دو مقدار یکسانی داشته باشند مقدار true را برمی گرداند در حالی که عملگر == مراجع دو شی رشته ای را مقایسه می کند. در مثال زیر، ()equals مقدار true را برمی گرداند زیرا دو شی رشته ای دارای مقادیر یکسانی هستند. با این حال عملگر == مقدار false را برمی گرداند زیرا دو شی رشته ای به اشیاء مختلف ارجاع می دهند:
public class equalsTest {
public static void main(String args[]) {
String str1 = new String("Hello World");
String str2 = new String("Hello World");
if (str1.equals(str2))
{ // this condition is true
System.out.println("str1 and str2 are equal in terms of values");
}
if (str1 == str2) {
//This condition is true
System.out.println("Both strings are referencing same object");
} else
{
// This condition is NOT true
System.out.println("Both strings are referencing different objects");
}
}
}
این سوال از من پرسیده شده است  + 
حتی اگر جمعآوری خودکار زباله توسط جاوا ارائه شود، اطمینان نمیدهد که یک برنامه جاوا out of memory نشود، زیرا این احتمال وجود دارد که ایجاد اشیاء جاوا با سرعت بیشتری نسبت به جمعآوری زباله انجام شود و در نتیجه تمام منابع حافظه موجود پر شود. بنابراین، Garbage Collection به کاهش احتمال از بین رفتن حافظه یک برنامه کمک میکند، اما تضمین نمیکند.
خیر، متد اصلی کلاس جاوا فقط می تواند نوع بازگشتی void داشته باشد تا برنامه با موفقیت اجرا شود. با این وجود، اگر باید حتماً یک مقدار را در تکمیل متد main برگردانید، میتوانید از System.exit(int status) استفاده کنید.
خیر، در جاوا هیچ راهی برای راه اندازی مجدد یک Thread مرده وجود ندارد.
جاوا یک زبان برنامه نویسی سطح بالا، شی گرا، قوی، ایمن، مستقل از پلتفرم، با کارایی بالا، Multithreaded وپورتابل است که در ژوئن 1991 توسط جیمز گاسلینگ توسعه داده شد.
یک Inner Class کلاسی است که به صورت تودرتو در یک کلاس دیگر است. یک کلاس Inner می تواند به تمام متغیرها و متدهای تعریف شده در کلاس خارجی دسترسی داشته باشد. یک Sub-Class کلاسی است که از کلاس دیگری به نام Super class ارث می برد. Sub-class می تواند به تمام متدها و فیلدهای Public و Protected از Super class خود دسترسی داشته باشد.
Specifier ها کلیدواژه هایی هستند که قبل از نام کلاس ، متغیر یا متد استفاده می شوند و محدوده دسترسی را مشخص می کنند. انواع مشخص کننده های دسترسی برای کلاس ها عبارتند از: 1. Public : کلاس، متد و فیلد از هر کجا قابل دسترسی است. 2. Protected : سطح دسترسی در داخل Package و خارج از Package از طریق کلاس فرزند است. اگر کلاس فرزند را ایجاد نکنید، متدها و فیلدها از خارج از Package قابل دسترسی نیستد. 3. Default: متد، فیلد، کلاس فقط در همان package قابل دسترسی است. 4. Private: متدها و فیلدها فقط در همان کلاسی که به آن تعلق دارند قابل دسترسی هستند.
زمانی که نیاز به اشتراک گذاری یک متد یا یک متغیر بین چندین شی از یک کلاس وجود دارد به جای ایجاد کپی جداگانه برای هر شی، از کلمه کلیدی Static برای ایجاد یک متد یا متغیر به اشتراک گذاشته شده برای همه اشیا استفاده می کنیم.
Encapsulation مفهومی در برنامه نویسی شی گرا است که به برنامه نویسان کمک می کند تا از یک رویکرد مدولار برای توسعه نرم افزار پیروی کنند یعنی هر شی مجموعه ای از متدها و متغیرهای خاص خود را دارد و عملکردهای خود را مستقل از سایر اشیاء انجام می دهد. کپسوله سازی همچنین به منظور پنهان کردن داده ها مورد استفاده قرار می گیرد.
یک کلاس Singleton در جاوا فقط می تواند یک نمونه داشته باشد و از این رو تمام متدها و متغیرهای آن فقط به یک نمونه تعلق دارند. مفهوم کلاس Singleton برای شرایطی که نیاز به محدود کردن تعداد اشیاء برای یک کلاس وجود دارد مفید است. بهترین مثال از سناریوی استفاده از Singleton زمانی است که محدودیتی برای داشتن تنها یک اتصال به پایگاه داده به دلیل برخی محدودیتهای درایور یا به دلیل هر گونه مسائل مربوط به مجوز وجود دارد.
یک حلقه بی نهایت بدون هیچ شرطی اجرا می شود و بی نهایت باراجرا می شود. یک حلقه بی نهایت را می توان با قرار دادن break در بدنه بلوک های کد شکست. حلقه بی نهایت به صورت زیر اعلام می شود:
for (;;)
{
// Statements to execute
// Add any loop breaking logic
}
این سوال از من پرسیده شده است  + 
عملگر ternary که عملگر شرطی نیز نامیده میشود، برای تصمیمگیری در مورد اینکه کدام مقدار به یک متغیر بر اساس ارزیابی یک شرط داده شود، استفاده میشود. این عملگر با استفاده از علامت ؟ اعلان میشود. در مثال زیر، بر حسب اینکه رتبه ۱ باشد یا خیر، به status مقدار «Done» و «Pending» اختصاص داده میشود.
status = (rank == 1) ? "Done" : "Pending"
این سوال از من پرسیده شده است  + 
در دستور سوئیچ، Default زمانی اجرا می شود که هیچ شرط سوییچ دیگری مطابقت نداشته باشد. Default یک مورد اختیاری است. در مثال زیر، زمانی که امتیاز 1 یا 2 نباشد، از حالت Default استفاده می شود:
public class switchExample {
int score = 4;
public static void main(String args[]) {
switch (score) {
case 1:
system.out.println("Score is 1");
break;
case 2:
system.out.println("Score is 2");
break;
default:
system.out.println("Default Case");
}
}
}
این سوال از من پرسیده شده است  + 
در جاوا، متد ()main نمی تواند هیچ داده ای را برگرداند و از این رو، همیشه با یک نوع بازگشتی void اعلام می شود.
در جاوا، پکیج مجموعه ای از کلاس ها و اینترفیس های مرتبط به هم است که در کنار هم قرار می گیرند. استفاده از پکیج ها به توسعه دهندگان کمک می کند تا کد را مدولار کرده و را برای استفاده مجدد گروه بندی کنند. زمانی که کد در پکیج ها بسته بندی شد، می توان آن را در کلاس های دیگر وارد کرد و استفاده کرد.
- هر یک از آنها اشیا متفاوتی هستند که قابلیت های متفاوتی دارند و داده های خود را به روش های مختلف ذخیره می کنند. - یک آرایه (System.Array) پس از تخصیص، اندازه آن ثابت می شود. شما نمی توانید مواردی را به آن اضافه کنید یا مواردی را از آن حذف کنید. همچنین ، همه عناصر باید از یک نوع باشند. در نتیجه type-safe است و همچنین از نظر حافظه و عملکرد ، کارآمدترین این سه مورد است. همچنین ، System.Array از چندین بعد پشتیبانی می کند، در حالی که List و ArrayList این کار را نمی کنند (اگر بخواهید می توانید یکList از List ها یا یک ArrayList از ArrayListها ایجاد کنید). - ArrayList یک آرایه انعطاف پذیر است که شامل لیستی از اشیاء است. می توانید مواردی را به آن اضافه و از آن حذف کنید و به طور خودکار با تخصیص فضا سروکار دارد. اگر انواع مختلفی از داده ها را در آن ذخیره می کنید درگیر boxing و unboxing میشوید که ممکن است کمی ناکارآمد باشد. همچنین Type-safe نیست. - لیست یک کلاس Generic است که می توانید اشیائی از یک نوع را در آن ذخیره کنید. در اصل یک نسخه امن از نوع ArrayList است. این بدان معناست که هیچ نوع boxing و unboxing وجود ندارد (که عملکرد را بهبود می بخشد) و اگر بخواهید یک آیتم از نوع اشتباه را اضافه کنید ، خطای زمان کامپایل ایجاد می کند.
Thread به برنامه اجازه می دهد تا با انجام چندین کار همزمان ، کارآمدتر عمل کنند. از Thread ها می توان برای انجام کارهای پیچیده در پس زمینه و بدون وقفه استفاده کرد.
بله، میتوانیم با استفاده از کلمه کلیدی Abstract قبل از نام کلاس، یک کلاس انتزاعی ایجاد کنیم، حتی اگر متد انتزاعی نداشته باشد.وجه کنید که اگر یک کلاس حتی یک متد انتزاعی داشته باشد، باید به عنوان انتزاعی اعلام شود، در غیر این صورت خطا خواهد داد.
تفاوت اصلی بین یک کلاس انتزاعی و اینترفیس در این است که یک اینترفیس فقط میتواند دارای اعلان متدهای استاتیک عمومی بدون پیاده سازی مشخص باشد، در حالی که یک کلاس Abstract میتواند اعضایی با هر access specifier (public، private و غیره) با یا بدون پیاده سازی مشخص داشته باشد. تفاوت کلیدی دیگر در استفاده از اینترفیس و کلاسانتزاعی این است که کلاسی که یک رابط را پیادهسازی میکند باید تمام متدهای اینترفیس را پیادهسازی کند، در حالی که کلاسی که از یک کلاس انتزاعی به ارث میبرد، نیازی به پیادهسازی تمام متدهای کلاس پدر خود ندارد. یک کلاس می تواند چندین اینترفیس را پیاده سازی کند اما می تواند تنها یک کلاس انتزاعی را گسترش دهد.
در جاوا، هنگامی که یک پکیج import می شود، sub-package های آن import نمی شوند و توسعه دهنده باید در صورت نیاز آنها را جداگانه import کند.
در جاوا، متد main باید public static باشد تا برنامه به درستی اجرا شود. اگر متد main به صورت private اعلام شود، توسعهدهنده هیچ خطای کامپایلی دریافت نمیکند، اما متد main اجرا نمیشود و خطای زمان اجرا میدهد.
در جاوا، فقط میتوانیم آرگومان را با مقدار (نه با ارجاع) به یک تابع منتقل کنیم.
در جاوا، برای تبدیل یک شی به byte stream با سریال سازی، یک اینترفیس با نام Serializable توسط یک کلاس پیاده سازی می شود. تمام فیلدهای کلاسی که اینترفیس Serializable را پیادهسازی میکنند، سریالسازی میشوند و وضعیت آنها به صورت byte stream ذخیره میشود.
سریال سازی زمانی استفاده می شود که داده ها باید از طریق شبکه منتقل شوند. با استفاده از سریال سازی، یک شی به جریانی از بایت ها(byte stream) تبدیل می شود. جریان بایت از طریق شبکه منتقل می شود و شی در مقصد دوباره ایجاد می شود.
بلوک سعی try باید با بلوک catch یا بلوک finally یا هر دو دنبال شود. هر خطایی که در بلوک try رخ میدهد باید در بلوک catch گرفته شود (قبل از اینکه کد قرار داده شده در بلوک finally اجرا شود).
بلوک finally همواره اجرا خواهد شد، چه زمانی که یک خطا رخ دهد یا ندهد. تنها راه برای جلوگیری از اجرای هر دستوری در بلوک finally، لغو اجباری کد با نوشتن خط کد زیر در انتهای بلوک try است:
System.exit(0);
این سوال از من پرسیده شده است  + 
بله، یک کلاس می تواند چندین سازنده با پارامترهای مختلف داشته باشد. اینکه کدام سازنده برای ایجاد شیء مورد استفاده قرار می گیرد، بستگی به آرگومان هایی دارد که هنگام ایجاد اشیا ارسال می شود.
ما نمی توانیم متد های ایستا را override کنیم. زیرا متدهای استاتیک به یک کلاس تعلق دارند نه به اشیاء.
public static void main(String args[]) {
subclass obj = new subclass();
obj.displayResult();
}
public class superclass {
public void displayResult() {
system.out.println("Printing from superclass");
}
}
public class subclass extends superclass {
public void displayResult() {
system.out.println("Displaying from subClass");
super.displayResult();
}
}
Ans:
Displaying from subClass
Printing from superclass
این سوال از من پرسیده شده است  + 
String یک نوع داده اولیه(primitive) در جاوا نیست. هنگامی که یک رشته در جاوا ایجاد می شود، در واقع یک شی از کلاس Java.Lang.String است که ایجاد می شود. پس از ایجاد این شی رشته ای، تمام متدهای داخلی کلاس String را می توان روی شی رشته استفاده کرد.
در جاوا، اشیاء رشته ای Immutable نامیده می شوند، زیرا زمانی که مقدار به یک رشته اختصاص داده شد، قابل تغییر نیست و در صورت تغییر، یک شی جدید ایجاد می شود. در مثال زیر str به یک شی رشته با مقدار Value One اشاره دارد. هنگامی که یک مقدار جدید به آن اختصاص داده می شود، یک شی String جدید ایجاد می شود.
String str="Value One";
str="New Value";
این سوال از من پرسیده شده است  + 
یک آرایه داده هایی از نوع اولیه(primitive) را گروه بندی می کند و ماهیت ایستا دارد در حالی که بردارها ماهیت پویا دارند و می توانند داده هایی از انواع مختلف را در خود نگه دارند.
Multi Threading یک مفهوم برنامه نویسی برای اجرای چندین کار به صورت همزمان در یک برنامه واحد است. Thread ها به صورت موازی اجرا می شوند و این کار به بهبود عملکرد هر برنامه کمک می کند.
رابط Runnable در جاوا برای پیاده سازی برنامه های Multi-Thread استفاده می شود. رابط Java.Lang.Runnable توسط یک کلاس برای پشتیبانی از Multi-Threading پیاده سازی می شود.
برنامه های Multi-Thread را می توان با استفاده از یکی از دو متدولوژی زیر در جاوا توسعه داد: 1. با استفاده از اینترفیسJava.Lang.Runnable : کلاس ها این رابط را برای فعال کردن Multi-Threading پیاده سازی می کنند. یک متد Run() در این رابط وجود دارد که باید پیاده سازی شود. 2. با نوشتن کلاسی که کلاس Java.Lang.Thread را گسترش دهد.
از آنجایی که StringBuffer ماهیتی پویا دارد و میتوانیم مقادیر اشیاء StringBuffer را برخلاف String که تغییر ناپذیر(Immutable) است تغییر دهیم، استفاده از StringBuffer زمانی که دادهها بیش از حد تغییر میکنند همیشه انتخاب خوبی است. اگر در چنین حالتی از String استفاده کنیم، برای هر تغییر داده یک شی String جدید ایجاد می شود که یک سربار اضافی خواهد بود.
Break بعد از هر Case (به جز مورد آخر) استفاده میشود تا کد بعد از Case معتبر شکسته شود و Case های بعدی اجرا نشوند در غیر اینصورت منجر به نتایج اشتباه میشود.
حتی اگر سازنده صریح در یک کلاس جاوا تعریف نشده باشد، اشیاء با موفقیت ایجاد می شوند چون یک سازنده پیش فرض وجود دارد که به طور ضمنی برای ایجاد شی استفاده می شود. این سازنده هیچ پارامتری ندارد.
در Multi-threading، دسترسی به منابعی که در بین Thread های متعدد به اشتراک گذاشته شده اند را می توان با استفاده از مفهوم همگام سازی (Synchronization) کنترل کرد. با استفاده از کلمه کلیدی synchronized ، میتوانیم اطمینان حاصل کنیم که تنها یک Therad میتواند در یک زمان از منبع مشترک استفاده کند و دیگران میتوانند تنها زمانی کنترل منبع را در اختیار بگیرند که آن منبع توسط Threadدیگری که از آن استفاده میکند آزاد شود.
هنگامی که یک شی را با استفاده از کلمه کلیدی new ایجاد می کنیم، سازنده به طور خودکار فراخوانی می شود. سازنده فقط یک بار برای یک شی در زمان ایجاد شیء فراخوانی می شود، از این رو نمی توانیم پس از ایجاد یک شی دوباره سازنده را فراخوانی کنیم.
اعضای خصوصی یک کلاس خارج از محدوده آن کلاس قابل دسترسی نیستند و هر کلاس دیگری حتی در همان Package نمی تواند به آنها دسترسی داشته باشد.
ما می توانیم در یک کلاس دو متد را با نام یکسان اما با تعداد / نوع پارامترهای مختلف تعریف کنیم. اینکه کدام متد باید فراخوانی شود به پارامترهای ارسال شده بستگی دارد. به عنوان مثال در کلاس زیر دو متد print با نام مشابه اما پارامترهای متفاوت داریم. بسته به پارامترها، متد مناسب فراخوانی می شود:
public static void main(String args[]) {
methodExample obj1 = new methodExample();
obj1.print();
obj1.print("xx");
}
public class methodExample {
public void print() {
system.out.println("Print method without parameters.");
}
public void print(String name) {
system.out.println("Print method with parameter");
}
}
این سوال از من پرسیده شده است  + 
می توانیم از مفهوم Cloning برای ایجاد کپی از یک شی استفاده کنیم. ()Clone یک متد از رابط(Interface) Cloneable است از این رو، رابط Cloneable باید برای ایجاد کپی از اشیاء پیاده سازی شود.
مزیت اصلی استفاده از وراثت، قابلیت استفاده مجدد از کد است، زیرا وراثت به کلاسهای فرعی امکان میدهد تا از کد کلاس پدر خود استفاده مجدد کنند.
Access Modifier پیشفرض برای متغیرها و متدهاِی یک پکیج(Package) protected است، یعنی متدها و متغیرهای یک کلاس برای هر کلاس دیگری در همان پکیج در دسترس است نه خارج از پکیج.
هیچ اشاره گری در جاوا وجود ندارد. بنابراین ما نمی توانیم از مفهوم اشاره گر در جاوا استفاده کنیم.
اگر بخواهیم کلاسی توسط هیچ کلاسی گسترش نیابد، می توانیم از کلمه کلیدی final با نام کلاس استفاده کنیم. در مثال زیر کلاس Stone نهایی است و قابل وراثت نیست:
public Final Class Stone {
// Class methods and Variables
}
این سوال از من پرسیده شده است  + 
هنگامی که یک متد یا یک متغیر با کلمه protected اعلان می شود، در همان کلاس، هر کلاس دیگر از همان پکیج(Package) و همچنین یک زیر کلاس قابل دسترسی می شود.
پشته و صف هر دو مکانی برای نگهداری مجموعه ای از داده ها هستند. تفاوت اصلی بین یک پشته و یک صف این است که پشته بر اساس اصل Last in First out (LIFO) است در حالی که یک صف بر اساس اصل FIFO (First In First Out) است.
اگر بخواهیم متغیرهای خاصی از یک کلاس سریال سازی نشوند، میتوانیم در حین اعلان از کلمه کلیدی transient استفاده کنیم. به عنوان مثال، متغیر trans_var را نمی توان سریال کرد:
public class transientExample {
private transient trans_var;
// rest of the code
}
این سوال از من پرسیده شده است  + 
انواع دادهای اولیه مانند int را میتوان با استفاده از کلاسهای wrapper مربوطه بهعنوان آبجکت در نظر گرفت. برای مثال، Integer یک کلاس wrapper برای نوع داده اولیه int است. (نکته: در صورتی که نیاز دارید نوع داده ای شما مقدار null را بپذیرد، از کلاس wrapper آن استفاده کنید. به عنوان مثال به جای int از Integer استفاده کنید!)
یک Thread در جاوا می تواند در یکی از حالت های زیر باشد: - Ready: یک Thread پس از ایجاد - Running: یک Thread در حال اجرا - Waiting: یک Thread در حال انتظار برای Thread دیگر - Dead: یک Thread پس از اجرا
در صورتی که یک سازنده صریح در کلاس جاوا تعریف نشده باشد، جاوا یک سازنده پیشفرض بدون آرگومان ارائه میکند. اما اگر یک سازنده صریح تعریف شده باشد، سازنده پیشفرض نمیتواند فراخوانی شود و توسعهدهنده فقط میتواند از سازنده هایی استفاده کند که در کلاس تعریف شدهاند.
شرط اصلی override کردن یک متد این است که نام متد، آرگومانها و همچنین نوع بازگشتی باید دقیقاً مشابه متد بازنویسی شده باشد. از این رو استفاده از نوع بازگشتی متفاوت، یک متد را override نمی کند.
در این قطعه کد از عملگر postfix "++" استفاده شده است که ابتدا مقدار را برمی گرداند و سپس افزایش می دهد. بنابراین خروجی آن 4 خواهد بود.
public class operatorExample {
public static void main(String args[]) {
int x = 4;
system.out.println(x++);
}
}
این سوال از من پرسیده شده است  + 
برای فراخوانی متدهای غیراستاتیک از یک بلوک کد استاتیک ، ابتدا باید یک شی از کلاس ایجاد شود. سپس با استفاده از آن شی، می توان متد های غیر استاتیک را فراخوانی کرد.
در جاوا، اگر متغیری در کد بدون مقداردهی اولیه استفاده شود، برنامه کامپایل نمیشود و خطا میدهد زیرا هیچ مقدار پیشفرضی به متغیرهای جاوا اختصاص داده نمیشود.
در جاوا، یک کلاس را می توان تنها از یک کلاس و نه از چندین کلاس مشتق کرد. وراثت های چندگانه توسط جاوا پشتیبانی نمی شود.
خیر، چون کلاس Abstract را نمی توان به عنوان final اعلان کرد.
public abstract final class testClass {
// Class methods and variables
}
این سوال از من پرسیده شده است  + 
JDK کیت توسعه جاوا است و فقط برای توسعه مورد نیاز است و برای اجرای یک برنامه جاوا بر روی ماشین، JDK مورد نیاز نیست. فقط JRE مورد نیاز است.
در جاوا، هیچ Destructor ای در کلاس تعریف نشده است، زیرا نیازی به انجام آن نیست. جاوا مکانیزم Garbage Collection خود را دارد که کار از بین بردن اشیاء، در زمانی که دیگر به آنها ارجاع داده نمیشود، را بهطور خودکار انجام میدهد.
خیر،زیر تعریف یک متغیر محلی به عنوان استاتیک خطای کامپایل می دهد.
متدهای استاتیک را نمیتوان در هیچ کلاسی بازنویسی(Override) کرد. از طرفی هر متد در یک رابط به طور پیشفرض انتزاعی(Abstract) است و قرار است در کلاسهایی که رابط را پیادهسازی میکنند، پیادهسازی شوند. بنابراین منطقی نیست که متدهای static را در یک رابط داشته باشیم.
خیر، نمیتوانیم مقدار هیچ متغیری از یک رابط را در کلاس فرزند تغییر دهیم، زیرا همه متغیرهای تعریف شده در رابط بهطور پیشفرض public، static و final هستند و متغیرهای final نیز مانند ثابتهایی هستند که بعداً قابل تغییر نیستند.
می توان با استفاده از مفهوم همگام سازی(Synchronization) آن را پیاده سازی کرد. کدهای مرتبط با پایگاه داده را می توان در متدی قرار داد که دارای کلمه کلیدی synchronized است به طوری که تنها یک Thread می تواند در یک زمان به آن دسترسی داشته باشد.
برای ایجاد یک Exception در یک بلوک کد به صورت دستی، از کلمه کلیدی throw استفاده می شود. سپس این Exception گرفته می شود و در بلوک catch رسیدگی می شود.
public void topMethod() {
try {
excMethod();
} catch (ManualException e) {}
}
public void excMethod {
String name = null;
if (name == null) {
throw (new ManualException("Exception thrown manually ");
}
}
این سوال از من پرسیده شده است  + 
اگر سازنده (Constructor) یک کلاس را private اعلام کنیم، هیچ کلاس دیگری به آن دسترسی نخواهد داشت و از این رو، هیچ کلاس دیگری قادر به نمونه سازی آن نخواهد بود و ایجاد شی آن فقط به خودش محدود می شود.
در جاوا، هر شی در هنگام ایجاد یک فضای حافظه از یک پشته دریافت می کند. هنگامی که یک شی توسط یک Garbage Collector از بین می رود، فضای اختصاص داده شده به آن مجدداً به پشته اختصاص داده می شود و برای هر شی جدید در دسترس می شود.
حافظه قبل از ایجاد اشیا تخصیص داده نمی شود. از آنجایی که برای هر دو کلاس، هیچ شیئی ایجاد نشده است، بنابراین هیچ حافظه ای روی پشته برای هیچ کلاسی تخصیص داده نمی شود.
اگر یک Exception در برنامه ای با استفاده از بلوک های try catch مدیریت نشود، اجرای برنامه قطع می شود و هیچ دستوری بعد از دستوری که باعث ایجاد Exception شده است اجرا نمی شود.
اگر یک کلاس چند سازنده داشته باشد، می توان با استفاده از ()this یک سازنده را از بدنه سازنده دیگر فراخوانی کرد.
آرایه ها ثابت هستند و وقتی اندازه آن را مشخص کردیم، نمی توانیم آن را تغییر دهیم. اگر بخواهیم از چنین مجموعه هایی استفاده کنیم که ممکن است نیاز به تغییر اندازه داشته باشیم، باید بردار را به آرایه ترجیح دهیم.
اگرچه String و StringBuffer هر دو نشان دهنده اشیاء رشته ای هستند، نمیتوانیم آنها را با یکدیگر مقایسه کنیم و اگر سعی کنیم آنها را مقایسه کنیم، با خطا مواجه میشویم.
جاوا یک Collection API ارائه می دهد که متدهای مفید زیادی را ارائه می دهد که می توانند روی مجموعه ای از اشیاء اعمال شوند. برخی از کلاس های مهم ارائه شده توسط مجموعه Collection API عبارتند از ArrayList، HashMap، TreeSet و TreeMap.
در جاوا Java.lang.Throwable پدر تمام کلاس های Exception است و تمام کلاس های Exception از این کلاس پایه مشتق شده اند.
در صورت ارث بردن، زمانی که یک شی جدید از یک کلاس فرزند ایجاد می شود، ابتدا سازنده کلاس پدر و سپس سازنده کلاس فرزند فراخوانی می شود.
سوالی هست که اینجا نمیبینیش و از نظر تو مهمه؟ خودت سوالی داری که دنبال جوابشی؟ جواب بهتری واسه یکی از سوالای بالا داری؟ پس واسمون بفرست.
React چیست؟
ویژگی های React چیست؟
JSX چیست؟
چرا مرورگرها نمی توانند JSX را...
برو به همه سوالات