函数式编程思想概述和冗余的Runnable代码
函数式编程思想概述
在数学中,函数就是有输入量、输出量的一套计算方法
相对而言,面向对象过分强调必须通过对象的形式来做事情,而函数式的思想是尽量忽略复杂的面向对象的复杂语法--是强调做什么而不是以什么形式做。
面向对象:做一件事情找一个能解决这件事情的对象,调用对象的方法来完成事情(例如:Random Scanner 集合等创建了对象再使用功能调用方法)
函数式编程思想:只要能获取到结果就可以了 谁去做的怎么做的都不重要,重视的是结果不重视过程
冗余的Runnable代码
/*
使用实现Runnable接口的方式实现多线程程序
*/
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 tt = new Runnable() { //因为这是一个匿名内部类所以可以使用接口来接收他
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "新线程创建了");
}
};
new Thread(tt).start();
//继续简化
new Thread(new Runnable() { //因为这是一个匿名内部类所以可以使用接口来接收他
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "新线程创建了");
}
}).start();
}
}
public class RunnableImpl implements Runnable{
// 2.创建一个类,实现Runnable接口,重写run方法,设置线程任务
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"创建了一个新的线程执行");
}
}
函数式编程思想概述和冗余的Runnable代码的更多相关文章
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_1_函数式编程思想概述
函数式编程和面向对象的区别
- paip.函数式编程方法概述以及总结
paip.函数式编程方法概述以及总结 1 函数式编程:函数式风格..很多命令式语言里支持函数式编程风格 1.1 起源 (图灵机,Lisp机器, 神经网络计算机) 1.2 函 ...
- Scala 函数式编程思想
Spark 选择 Scala 作为开发语言 在 Spark 诞生之初,就有人诟病为什么 AMP 实验室选了一个如此小众的语言 - Scala,很多人还将原因归结为学院派的高冷,但后来事实证明,选择 S ...
- 优雅的函数式编程--Clojure概述
欢迎转载,转载请注明出处,徽沪一郎. 楔子 由于阅读storm源码的原因,头一次接触到Clojure.没有花特别的时间来研究clojure语法,只是在一些特殊的用法时,才查了一下clojure官网的文 ...
- JDK 7中的函数式编程思想[转载]
原文作者的观点是Lambda表达式一定会包含在JDK 7中,而全文也着重介绍了这方面的知识,作者认为函数式编程的概念也将出现在JDK 7中. Lambda表达式 Lambda表达式并不是什么新概念,自 ...
- iOS 开发之函数式编程思想(Functional Programming)
函数式编程(Functional Programming), 函数式编程强调的函数:1.不依赖外部状态:2.不改变外部状态. 函数式编程可解决线程安全问题,每一个函数都是线程安全的. 时间状态:变量一 ...
- 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
有时为了信息保密或是单纯阅读代码,我们常常需要删除注释. 之前考虑过正则表达式,但是感觉实现起来相当麻烦.而状态机可以把多种情况归为一类状态再行分解,大大简化问题.本文就是基于状态机实现的. 删除C/ ...
- JavaScript之函数式编程思想初探
//result = 3*x + 5; var Mul3 = function(x){ return 3*x; } var Add5 = function(x){ return x + 5; } va ...
- LY.JAVA面向对象编程思想概述
面向对象 2018年7月5日 逆袭之旅DAY09 2018年7月5日 逆袭之旅DAY09 2018-07-07
随机推荐
- MySql免安装版 Error 2003 Can connect to MySQL server on ...
现象描述:mysql只能本地登录,无法远程登录 解决方案: 1. 查看mysql端口(默认端口3306,命令端口根据需要修改),发现只有本地连接端口开放. netstat -an|findstr 33 ...
- 【第五课】VIM编辑器(学习笔记)
4月10日学习笔记打卡
- MeteoInfo-Java解析与绘图教程(八)_java解析卫星FY-4A一级产品文件(HDF举例)
MeteoInfo-Java解析与绘图教程(八)_java解析卫星一级产品文件(HDF举例) 最近解析卫星数据遇到了一级产品,它的解析方式与之前文章说的有些不同,特此补充一下 卫星的一级产品,里面是没 ...
- 【CSAPP】Data Lab实验笔记
前天讲到要刚CSAPP,这一刚就是两天半.CSAPP果然够爽,自带完整的说明文档,评判程序,辅助程序.样例直接百万组走起,管饱! datalab讲的是整数和浮点数怎么用二进制表示的,考验的是用基本只用 ...
- 【代理是什么?】nginx快速入门+反向代理hexo个人博客
@ 目录 前言 本文说明 请大家务必查看 工作原理 正向代理 反向代理 环境准备 详细版 入门:搭建步骤 配置阿里云epel源: yum安装nginx: 启动nginx: 配置default.conf ...
- pytorch入门--土堆深度学习快速入门教程
工具函数 dir函数,让我们直到工具箱,以及工具箱中的分隔区有什么东西 help函数,让我们直到每个工具是如何使用的,工具的使用方法 示例:在pycharm的console环境,输入 import t ...
- Redisson报错
org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured a ...
- VsCode[Git] | 配置Gitee和Github | 不使用全局用户名和邮箱
(VsCode[Git] | 配置Gitee和Github | 不使用全局用户名和邮箱 | 2021-04-11) 目录 一 .安装Git / VsCode配置Git / Win10系统 二.Git配 ...
- 使用 IDEA 构建聚合工程并引入 Spring Boot
简介 聚合工程里可以分为: Project 项目,也可称为顶级项目.顶级工程.父工程 Module 模块,也可称为子模块.子工程 总结一下: 这两者之间是父子继承的关系,即 模块继承顶级项目,模块之间 ...
- 嵌入:CAN
说下我的学习过程.刚到公司的时候我根本不知道什么是CAN,甚至连以太网和串口通讯都不懂.领导把USBCAN分析仪拿给我,把铜线短接上,用软件在CAN1窗口点下发送,CAN2窗口马上接收到了发送出来的数 ...