چند تغییر مهم:
1) عملگرهای diamond (<>):
در نسخ قبل تر از جاوا 7 مجبور بودید که در موقع کار با Generic، در دو طرف نوع ها را مشخص کنید:
Map<String,Set<Object>> map = new HashMap<String,Set<Object>>();
ولی در نسخه 7، برای کامپایلر، تعریف نوع در سمت چپ کافی است (تعریف در سمت راست اضافه است):
Map<String,Set<Object>> map = new HashMap<>();
2) استفاده از String در switch-case:
در نسخ قبل از جاوا 7 مجبور بودید با استفاده از if-else و تابع string.equals چنین کاری را انجام دهید، ولی در نسخه 7 می توانید از string در swith-case استفاده کنید (از تابع string.equals استفاده می شود).
3) مدیریت خودکار منابع:
در نسخ قبل از جاوا 7، برنامه نویس می بایست منابعی مانند File و input/output stream را به صورت دستی در بلاک finllay میبست. در نسخه 7 می توان تمام منابعی که قرار است در بلاک try استفاده شوند را به ترتیب داخل پردانتز نوشت (با ; جدا می شوند). البته دقت شود که منابع مورد نظر باید واسط java.lang.AutoCloseable را پیاده سازی کرده باشند.
try(FileOutputStream fos = new FileOutputStream("test.txt");
DataOutputStream dos = new DataOutputStream(fos)){
dos.writeUTF("Hello world");
}
catch(IOException e){
// log and handle the exception
}
4) پیشرفت در hanle کردن exceptionها
در جاوا 7 در بلاکِ catch می توان چند نوع exception را catch کرد، امکانی که در نسخ قبلی به طور صریح وجود نداشت. در جاوا 7:
try{
process(); // throws three exceptions
}
catch(JmsException | PrcoessException | IOException e){
// log and handle all Exceptions
}
5) API جدید برای File System
در جاوا 7 API جدیدی تحت عنوان NIO 2.0 برای File System ارایه شد که بسیاری از مشکلات Java IO را حل کرده و بهبودهای زیادی بخشیده و کار با آن راحت تر است.