首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Java——多线程:Lamda表达式
返回列表
发新帖
Java——多线程:Lamda表达式
[复制链接]
发表于 2022-11-24 19:25:46
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
多线程理解
继承Thread类
子类继承Thread类具备多线程能力
启动线程:子类对象.start()
不建议使用:避免oop单继承局限性
实现Runnable接口
实现接口Runnable具有多线程能力
启动线程:传入目标对象+Thread对象.start()
推荐使用:避免单继承局限性,可能一个对象被多个线程使用
多个线程同时操作同一个对象
问题:多个线程操作同一个资源,可能会出现资源冲突问题
实现Callable接口
实现Callable接口,需要返回值类型
重写call方法,需要抛出异常
创建目标对象
创建执行服务
提交执行
获取结果
关闭服务
静态代理
抽象角色
:声明真实对象和代理对象的共同接口。
代理角色
:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真实对象。
同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
真实角色
:代理角色所代表的真实对象,是我们最终要引用的对象。
Lamda表达式
学习前提:
为什么使用
避免匿名内部类定义过多
可以使
代码
更简洁
去掉无意义
代码
,留下核心逻辑
理解函数式接口
定义
:只包含唯一一个抽象方法的接口,如:
public interface Runnable{
public abstract void run();
}
复制
代码
对于函数式接口,我们可以通过lamda表达式来创建该接口的对象。
推导逻辑:
package JavaText.Text;
public class LamdaTest {
//3.静态内部类
static class like2 implements ILike{
public void lamda(){
System.out.println("I like lamda2");
}
}
public static void main(String[] args) {
ILike like = new like();
like.lamda();
like2 like2=new like2();
like2.lamda();
//4.局部内部类
class like3 implements ILike{
public void lamda(){
System.out.println("I like lamda3");
}
}
like = new like3();
like.lamda();
//5.匿名内部类,没有类的名称,必须借助接口或父类
like =new ILike(){
@Override
public void lamda(){
System.out.println("I like lamda4");
}
};
like.lamda();
//6.lamda表达式
like=()->{
System.out.println("I like lamda5");
};
like.lamda();
}
}
//1.定义一个函数式接口
interface ILike{
void lamda();
}
//2.常用类
class like implements ILike{
public void lamda(){
System.out.println("I like lamda1");
}
}
复制代码
Lamda表达式其实就是省略掉那些唯一不可变的东西,如在这一段代码当中:
//5.匿名内部类,没有类的名称,必须借助接口或父类
like =new ILike(){
@Override
public void lamda(){
System.out.println("I like lamda4");
}
};
like.lamda();
//6.lamda表达式
like=()->{
System.out.println("I like lamda5");
};
like.lamda();
----
new ILike(){
@Override
public void lamda(),括号之前的代码都是唯一不可变的,因此可以省略,而括号之后的代码是自己定义的因此保留括号以后的代码在加上->即可。
复制代码
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
数据安全
物联网
Oracle
SQL-Server
数据仓库与分析
开源技术
分布式数据库
SAAS
丝
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表