جاوا ۸ در تاریخ ۱۸ مارچ ۲۰۱۴ به صورت رسمی منتشر شد ، با امکانات و پیشرفت هایی که به قول بعضی ها انقلابی در جاوا محسوب می شه.
از آنجایی که توضیح در رابطه با تمام امکانات جاوا ۸ زمان زیادی می بره به چند تا از مهمترین امکانات اشاره می کنم :
- Lambda expressions
- Java fx and new feature
- Streams
- Nashorn
Lambda Expressions
Lambda یکی از مهمترین ویژگی های جاوا ۸ محسوب می شه ، که اگه بخوام خلاصه توضیح بدم Lambda Expressions باعث سادگی و جمع و جور شدن کد می شه همین .
وقتی از Lambda استفاده می کنیم در زمان ترجمه به بایت کد ، قطعه کد lambda به یک تابع interface تبدیل می شه ، از این رو می تونیم تو نسخه های قدیمی تر جاوا هم برنامه مون را اجرا کنیم .
مثال زیر نمونه ای است از هنگامی که از Lambda Expressions استفاده می کنیم و زمانی که استفاده نمی کنیم:
وقتی از Lambda استفاده می کنیم در زمان ترجمه به بایت کد ، قطعه کد lambda به یک تابع interface تبدیل می شه ، از این رو می تونیم تو نسخه های قدیمی تر جاوا هم برنامه مون را اجرا کنیم .
مثال زیر نمونه ای است از هنگامی که از Lambda Expressions استفاده می کنیم و زمانی که استفاده نمی کنیم:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println(“Action Detected”);}});
public void actionPerformed(ActionEvent ae) {
System.out.println(“Action Detected”);}});
با استفاده از Lambda
button.addActionListener(e ->{
System.out.println(“Action Detected”);});
System.out.println(“Action Detected”);});
یک نمونه از استفاده از نخ ها (Thread خودمون)
Runnable runnable1 = new Runnable() {
@Override
public void run() {
System.out.println("Running without Lambda");
@Override
public void run() {
System.out.println("Running without Lambda");
با استفاده از Lambda
Runnable runnable2 = () -> { System.out.println("Running from Lambda"); };
همانطور که نگاه می کنید قطعه کدهای Lambda ساده تر و از خطوط کمتری استفاده می کنند.
سعی می کنم در آینده ای نزدیک درباره Lambda بیشتر توضیح بدم ;)
سعی می کنم در آینده ای نزدیک درباره Lambda بیشتر توضیح بدم ;)
Java fx and new feature
- اضافه شدن تم جدید Madena به java fx ، برای اطلاعات بیشتر به این لینک سر بزنید http://fxexperience.com/2013/03/modena-theme-update/
- کلاس SwingNode برای استفاده از کامپوننت های swing در java fx
- پیاده سازی بسته javafx.print برای گرفتن پرینت ، برای اطلاعات بیشتر http://docs.oracle.com/javase/8/javafx/api/javafx/print/package-summary.html
- کلاس WebView با ویژگی های جدید پیاده سازی شده و پشتیبانی از Html5 برای اطلاعات بیشتر http://docs.oracle.com/javase/8/javafx/embedded-browser-tutorial/index.html
- Java fx بر روی چیپ های Arm
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);
از لینک زیر می توانید امکانات جدید جاوا ۸ رو در سایت اوراکل ببینید:
برای دانلود جاوا و اطلاعات بیشتر هم به لینک زیر برید:
No comments:
Post a Comment