Tuesday, April 8, 2014

جاوا ۸ وارد می شود


جاوا ۸ در تاریخ ۱۸ مارچ ۲۰۱۴ به صورت رسمی منتشر شد ، با امکانات و پیشرفت هایی که به قول بعضی ها انقلابی در جاوا محسوب می شه.

از آنجایی که توضیح در رابطه با تمام امکانات جاوا ۸ زمان زیادی می بره به چند تا از مهمترین امکانات  اشاره می کنم :
  • Lambda expressions
  • Java fx and new feature
  • Streams
  • Nashorn

Lambda Expressions

Lambda یکی از مهمترین ویژگی های جاوا ۸ محسوب می شه ، که اگه بخوام خلاصه توضیح بدم Lambda Expressions باعث سادگی و جمع و جور شدن کد می شه همین .
وقتی از Lambda استفاده می کنیم در زمان ترجمه به بایت کد ، قطعه کد lambda به یک تابع interface تبدیل می شه ، از این رو می تونیم تو نسخه های قدیمی تر جاوا هم برنامه مون را اجرا کنیم .

مثال زیر نمونه ای است از هنگامی که از Lambda Expressions‌ استفاده می کنیم و زمانی که استفاده نمی کنیم:

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println(“Action Detected”);}});‍
با استفاده از Lambda
button.addActionListener(e ->{
System.out.println(“Action Detected”);});
یک نمونه از استفاده از نخ ها (Thread خودمون)
Runnable runnable1 = new Runnable() {
@Override
public void run() {
System.out.println("Running without Lambda");
با استفاده از Lambda
Runnable runnable2 = () -> { System.out.println("Running from Lambda"); };
همانطور که نگاه می کنید قطعه کدهای Lambda ساده تر و از خطوط کمتری استفاده می کنند.
سعی می کنم در آینده ای نزدیک درباره Lambda بیشتر توضیح بدم ;)

Java fx and new feature

Stream

stream یک ویژگی جدیده که قبلا تو زبان scala بوده و حالا به جاوا ۸ اومده ، استریم یک عملی را روی تک تک یک مجموعه اجرا می کنه ! که به دو صورت قابل استفاده است : ترتیبی و موازی مثال زیر نمونه کدی است که تمام فروشنده های تویوتا رو پیدا می کنه :

List toyotaSales;
toyotaSales = sales.filter(s -> s.getCar().getBrand().equals("Toyota"))
.collect(toList());
toyotaSales.forEach(System.out::println);

Nashorn

جاوا  ۸ به ما این امکان رو داده تا بتوانیم کد های جاوا اسکریپت رو در JVM اجرا کنیم ، این یعنی اینکه شما می توانید در سمت سرور هم کد جاوا اسکریپت اجرا کنید و حالشو ببرید چیزی شبیه Node.js . که البته این امکان کاربرد های زیادی داره مثلا شما می تونید کد اعتبارسنج سمت کلاینت رو سمت سرور نیز اجرا کنید و امنیتتون رو بالا ببرید . خیلی جالبه هنوز جاوا ۸ نیومده Intellij  یه دیباگر باسه کدهای جاوا اسکریپت تو جاواتون داده !!
 یه مثال کوچولو از اجرای جاوا اسکریپت در جاوا :

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");

String js="";
js += "print('Salam Java 8 !!');";
engine.eval(js);


از لینک زیر می توانید امکانات جدید جاوا ۸ رو در سایت اوراکل ببینید:

برای دانلود جاوا و اطلاعات بیشتر هم به لینک زیر برید: