我是大魔王哈哈

2020-12-24   阅读量: 728

大数据

用java实现匿名内部类启动线程

扫码加入数据分析学习群
public class ThreadNoNameTest {

    public static void main(String[] args) {

        // 匿名内部类的语法格式:父类/接口类型 引用变量名 = new 父类/接口类型() { 方法的重写 };
        // 1.使用继承加匿名内部类的方式创建并启动线程
        /*Thread t1 = new Thread() {
            @Override
            public void run() {
                System.out.println("张三说:在吗?");
            }
        };
        t1.start();*/

        // 优化1
        new Thread() {
            @Override
            public void run() {
                System.out.println("张三说:在吗?");
            }
        }.start();

        // 优化2(错误)->Target type of a lambda conversion must be an interface
        // lambda转换的目标类型必须是接口
        // Java8开始支持lambda表达式: (形参列表)->{方法体;}
        //Thread t1 = () -> System.out.println();

        System.out.println("-------------------------------------------");

        // 2.使用实现接口加匿名内部类的方式创建并启动线程
        /*Runnable ra = new Runnable() {
            @Override
            public void run() {
                System.out.println("李四说:不在。");
            }
        };
        Thread t2 = new Thread(ra);
        t2.start();*/

        // 优化1
        /*new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("李四说:不在。");
            }
        }).start();*/

        // 优化2
        // Java8开始支持lambda表达式: (形参列表)->{方法体;}
        /*Runnable ra = ()-> System.out.println("李四说:不在。");
        new Thread(ra).start();*/

        // 优化3
        new Thread(()-> System.out.println("李四说:不在。")).start();
    }

}


50.6346 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子