java基礎(多線程---lambda)


• λ希臘字母表中排序第十一位的字Lambda,
• 避免匿名內部類定義過多
• 其實質屬於函數式編程的概念
 
(params) -> expression
(params) -> statement
(params) -> { statements}
 
例:
package com.sxt.thread;
/**
 * lambda推導 +參數+返回值
 * @author:裴新
 *
 */
public class LambdaTest03 {
    
    public static void main(String[] args) {
        IInterest interest = (int a,int c)-> {
            System.out.println("i like lambda -->"+(a+c));
            return a+c;
        };
        interest.lambda(100,200);
        
        interest = (a,c)-> {
            System.out.println("i like lambda -->"+(a+c));
            return a+c;
        };
        
        interest.lambda(200,200);
        
        interest = (a,c)-> {
            return a+c;
        };
        
        interest = (a,c)-> a+c;
        
        interest = (a,c)-> 100;
        
        System.out.println(interest.lambda(10, 20));
    }
}
interface IInterest{
    int lambda(int a,int b);
}
//外部類
class Interest implements IInterest{

    @Override
    public int lambda(int a,int c) {
        System.out.println("i like lambda -->"+(a+c));
        return a+c;
    }
    
}


package com.sxt.thread;
/**
 * Lambda表達式 簡化線程(用一次)的使用
 * @author 裴新
 *
 */
public class LambdaThread {
    //靜態內部類
    static class Test implements Runnable{        
        public void run() {
            for(int i=0;i<20;i++) {
                System.out.println("一邊聽歌");
            }
        }
    }
    public static void main(String[] args) {            
        //new Thread(new Test()).start();        
        
        //局部內部類
        class Test2 implements Runnable{        
            public void run() {
                for(int i=0;i<20;i++) {
                    System.out.println("一邊聽歌");
                }
            }
        }        
        new Thread(new Test2()).start();
        
        //匿名內部類 必須借助接口或者父類
        new Thread(new Runnable() {
            public void run() {
                for(int i=0;i<20;i++) {
                    System.out.println("一邊聽歌");
                }
            }
        }).start();
        
        //jdk8 簡化  lambda表達式
        new Thread(()-> {
                for(int i=0;i<20;i++) {
                    System.out.println("一邊聽歌");
                }
            }
        ).start();
        
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM