崇之他和她

导航

day012Lambda,thread

线程

Thread 类被继承 重写run()方法 start()启动线程

public class TestThread extends Thread {
   @Override
   public void run() {
       super.run();
       for(int i = 0;i<1000;i++){
           System.out.println("i am is a thread 0000++"+i);
      }
  }
   public static void main(String[] args) {
       new TestThread().start();//启动线程
       for(int i = 0;i<1000;i++){//CPU调度安排执行哪条线程所以输出为夹杂在一起的
           System.out.println("i am main *******+"+i);
      }
new Thread(()-> System.out.println("我爱你,这里用的事lamda")).start();
  }
}
public class TestRunable implements Runnable {

   private static String winer;//胜利者

   @Override
   public void run() {
       for(int i=0;i<=101;i++){
           if(Thread.currentThread().getName().equals("tuzi")&& i%10 == 0){
               try {
                   Thread.sleep(1);
                   System.out.println("tuzi is sleep");
              } catch (InterruptedException e) {
                   e.printStackTrace();
              }
          }
           if(winer != null){
               System.out.println("game over winner:"+winer); break;

          }
           if(i>=100){
               winer = Thread.currentThread().getName();break;
          }
           System.out.println(Thread.currentThread().getName()+"跑了"+i+"步!");
      }
 
  }
   public static void main(String[] args) {
       new Thread(new TestRunable(),"tuzi").start();
       new Thread(new TestRunable(),"wugui").start();
  }
}

静态代理

package proxy;

/**
* @ Author     :wwwzhqwww
* @ Date       :Created in 16:43 2021/1/13
* @ Description:代理模式,代理对象和真实对象实现同一个接口,代理对象增加自己要做的事,真实对象做自己的事
* @ Modified By:
* @Version: $version$
*/
public class day012proxy {
   public static void main(String[] args) {
       WeddingCompany weddingCompany = new WeddingCompany(new You());//把You交给代理对象WeddingCompany处理marry
       weddingCompany.happyMarry();
  }
}
interface Marry{//接口
   void happyMarry();
}
class You implements Marry{//真实对象 只负责高兴
   @Override
   public void happyMarry() {
       System.out.println("i am very happy my wife is so beautiful");
  }
}
class WeddingCompany implements Marry{//代理对象 负责真实对象的事并且负责自己的事
   private Marry person;

   public WeddingCompany(Marry person) {
       this.person = person;
  }

   @Override
   public void happyMarry() {
       before();
       person.happyMarry();
       after();
  }

   private void after() {
       System.out.println("after marry i call my money");
  }

   private void before() {
       System.out.println("before marry i must make all thing");
  }
}

lamda表达式

  • 简化代码 希腊字母Lambda

  • 避免匿名内部类定义过多

  • 去掉无意义代码

  • 函数式接口 (任何一个接口只包含一个抽象方法时,此接口为函数式接口)

  • 简化过程

    package lambda;

    /**
    * @ Author     :wwwzhqwww
    * @ Date       :Created in 17:02 2021/1/13
    * @ Description:
    * @ Modified By:
    * @Version: $version$
    */
    public class Day012testLambda {
       //静态内部类
       static class Like2 implements ILike{
           @Override
           public void lambda() {
               System.out.println("i like lambda2");
          }
      }
       public static void main(String[] args) {
           new Like().lambda();//平常写法

           new Like2().lambda();//静态内部类

           class Like3 implements ILike{//局部内部类
               @Override
               public void lambda() {
                   System.out.println("i like lambda3");
              }
          }
           new Like3().lambda();//静态内部类

           new ILike() { //匿名内部类4
               @Override
               public void lambda() {
                   System.out.println("i like lambda4");
              }
          }.lambda();

           //5简化为lambda表达式
           ILike like =() -> {//不用再new 实现接口的对象或者new匿名内部类,接口只有一个方法简化即可
               System.out.println("i like lambda5");
          };
           like.lambda();
           IGood iGood = (i,k) -> {System.out.println("i good lambda"+i+"woshi:"+k);};
           iGood.lambdaGood(3333,520);
      }
    }
    interface IGood{
       void lambdaGood(int i,int k);
    }
    interface ILike{
       void lambda();
    }
    class Like implements ILike{
       @Override
       public void lambda() {
           System.out.println("i like lambda");
      }
    }
  •  

posted on 2021-01-13 17:52  崇之他和她  阅读(156)  评论(0编辑  收藏  举报