函数式编程思想概述-冗余的Runnable代码
2024-10-12 10:53:43
函数式编程思想概述
在数学中,函数就是有输入量、输出星的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调"必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法―—强调做什么,而不是以什么形式做。
冗余的Runnable代码
传统写法
当需要启动一个线程去完成任务时,通常会通过`java.lang .Runnable`接口来定义任务内容,并使用java.lang.Thread类来启动该线程。代码如下:
package Demo01.Lambda; public class Demo01Runnable {
public static void main(String[] args) {
//创建runnable接口的实现类对象
RunnableImpl run = new RunnableImpl();
//创建Thread类对象,构造方法中传递Runnable接口的实现类
Thread t = new Thread(run);
//调用start方法开启新线程,执行run方法
t.start(); //简化代码,使用匿名内部类,实现多线程程序
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
}
};
new Thread(r).start();
//简化代码 new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
}
}).start();
}
}
代码分析
对于Runnable的匿名内部类用法,可以分析出几点内容︰
Thread类需要Runnable接口作为参数,其中的抽象run方法是用来指定线程任务内容的核心;·
为了指定run的方法体,不得不需要Runnable接口的实现类;
为了省去定义一个RunnableImpl实现类的麻烦,不得不使用匿名内部类﹔
必须覆盖重写抽象run方法,所以方法名称、方法参数、方法返回值不得不再写一遍,且不能写错
而实际上,似乎只有方法体才是关键所在。
最新文章
- JAVA-android 更改APP名称与图标
- php之thinkphp部署Linux
- BZOJ2448 : 挖油
- [转载]强烈推荐学习的blog
- 连续自然数和(codevs 1312)
- php session 跨页失效问题
- iOS苹果开发者客服电话地址
- [转]内嵌页面iframe以及和其兄弟iframe的相互传值
- 关于$_SERVER 常量 HTTP_X_FORWARDED_HOST与 HTTP_HOST的问题
- Javascript中String、Array常用方法介绍
- JS中call、apply的用法说明
- Python数据处理——numpy_3
- 2014/08/23——OJ及相关站点打开速度非常慢,训练计划login直接error!
- 伺服电机&;旋转变压器&;光电编码器
- HTTP协议学习(一)
- HBuilder使用夜神模拟器调试Android应用
- B-number 数位dp
- Android recovery支持adb shell
- Javaweb学习笔记——(八)——————常见系统体系结构,Tomcat,以及web的内部外部应用,http协议概述
- 并发 --- 2 进程的方法,进程锁 守护进程 数据共享 进程队列, joinablequeue模型
热门文章
- Transformer 结构分析
- 前后端分离项目(十):实现";改";功能(前后端)
- ES6 学习笔记(九)Set的基本用法
- Docker基础和常用命令
- uniapp之uni-starter小程序多端研发框架搭建与项目实践
- 【Java并发004】原理层面:synchronized关键字全解析
- Dubbo-Activate实现原理
- ubuntu 18.04安装tensorflow (CPU)
- Velocity模板引擎的的使用示例(入门级)
- 腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务