پیش فرض اعداد اعشاری در جاوا بصورت double است و نمیتوانید float num=12.5 را ارسال کنید و حتما باید بصورت 12.5f ارسال شود
تقسیم بر صفر : در تمامی حالت تولید Exception میکند تنها دو دیتا تایپ Float و Double هستند که در صورت تقسیم عدد بر صفر بی نهایت را نشان میدهند
Float.NEGATIVE_INFINITY
Float.POSITIVE_INFINITY
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
حالت مبهم اعداد : دو دیتا تایپ Float و Double حالت NaN یا مبهم میتوانند برای مقادیر تقسیم صفر بر صفر بگیرند
String Pool : زمانی که چندمتغیر String مقدار یکسانی داشته باشند جاوا یک مقدار را در نظر میگیرد و بقیه متغییر ها فقط به آن اشاره میکنند این برای صرفه جویی در حافظه است و فقط هم خاص String است
String ها Immutable هستند و با دادن مقدار جدید ، مقدار قبلی روی حافظه رم قابل استفاده نیست و مقدار جدیدی در رم ایجاد میشود
قبل از اینکه GC ابجکت garbage شده را بردارد متد .finilize را صدا خواهد زد
وقتی از داده های Generic استفاده میکنیم مجاز نیستیم داده هایی از جنس پدر به فرزند assign کنیم Down Casting مجاز نیست ولی میتوانیم Up Casting داشته باشیم
List<Integer> list = new ArrayList<>();
Number num = 21;
list.add(num);
کد بالا خطای compile time خواهد داشت
در یک کلاس میتوانیم کلاس های دیگری هم داشته باشیم ولی فقط یک کلاس میتواند public باشد و اسم فایل هم به نام آن تولید خواهد شد
Fast Fail : هرگاه یک ابجکت از نوع Collection داشته باشیم و مقادیر آن در حال دریافت باشد و توسط عامل دیگری تغییر کند یک شکست سریع اتفاق افتاده است
Collection c = new ArrayList();
Iterator itr = c.iterator();
c.add("An object");
String s = itr.next();
در این حالت Iterator نا معتبر میشود و خطای ConcurrentModificationException پرتاب میشود