自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 给定一个正整数,找到由相同数字组成的下一个更大的数字

给定一个正整数,找到由相同数字组成的下一个更大的数字。如1234输入1243,1243输入1342参考代码:public class Test { public static void main(String[] args) { System.out.println(big(63543)); System.out.println(big(78234569)); System.out.println(big(12543)); Syst

2022-01-08 22:11:14 941

原创 MyBatis关闭日志输出

通常来说,即使在日志配置文件里设置:<logger name="org.apache.ibatis" level="warn"/><logger name="org.mybatis" level="warn"/><logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="warn" />控制台依旧会输出MyBatis日志。这是可以在SpringBoot的yaml文件中配置:mybat

2021-11-06 14:32:25 4208 1

原创 剑指 Offer 30. 包含min函数的栈

题目力扣链接——剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。class MinStack { /** initialize your data structure here. */ public MinStack() { } public void push(int x) { }

2021-09-14 13:17:33 238

原创 23种设计模式一句话概括及思维导图

序号模式 & 描述包括1创建型模式 :对象怎么来这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。简单工厂模式 (Simple Factory Pattern) 工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(...

2021-07-30 15:32:56 575

原创 设计模式之责任链模式

责任链模式菜鸟教程 - 责任链模式五分钟设计模式 - 12责任链模式尚硅谷介绍责任链模式(Chain of Responsibility Pattern)是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功为止。责任链模式把多个处理器串成链,然后让请求在链上传递。属于行为型设计模式优点:将请求与处理分开,请求者不需要知道谁去处理,处理者也不需要知道请求的全貌灵活,方便新增或删除结点缺点:效率低。比如某个请求需要最高级别的处理器来处理,但你仍然需要一级一级

2021-07-30 15:19:45 172

原创 设计模式之策略模式

策略模式菜鸟教程 - 策略模式五分钟设计模式 - 10策略模式尚硅谷介绍定义一组算法,将每个算法都封装起来,并且使它们之间可以相互转换。策略模式让算法独立于使用它的客户而变化。优点和体现的设计原则:把变化的代码从不变的代码中分离出来,使算法可以自由切换针对接口编程而不是具体类,体现了开闭原则多用组合、聚合,少用继承封装隐藏了复杂的算法代码缺点:容易产生过多的类,不容易维护所有策略类都需要对外暴露注意事项:如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的

2021-07-30 15:17:42 127

原创 设计模式之状态模式

状态模式菜鸟教程 - 状态模式五分钟设计模式 - 09状态模式尚硅谷介绍主要用来解决对象在多种状态之间切换时,需要对外输出不同行为的问题。状态与行为是一一对应的,状态之间可以互转当一个对象的内在状态发生改变时,允许改变对象输出的功能是一种行为型模式**何时使用:**代码中包含大量与对象状态有关的条件语句;行为随状态改变而改变的场景优点:封装了转换规则枚举可能的状态,在枚举状态之前需要确定状态种类将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态

2021-07-30 15:15:06 123

原创 设计模式之解释器模式

解释器模式菜鸟教程 - 解释器模式尚硅谷介绍在编译原理中,一个算术表达式通过词法器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern)是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得

2021-07-30 15:13:07 112

原创 设计模式之备忘录模式

备忘录模式菜鸟教程 - 备忘录模式五分钟设计模式 - 18备忘录模式尚硅谷介绍备忘录模式(Memento Pattern)是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,且在需要时可以将该对象恢复到原先保存的状态。用户不需关心对象的内部状态或者保存和恢复的细节。可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录己经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某

2021-07-29 14:40:00 167

原创 设计模式之中介者模式

中介者模式菜鸟教程 - 中介者模式五分钟设计模式 - 22中介者模式尚硅谷介绍中介者模式是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系,降低多个对象和类之间的通信复杂性该模式限制对象之间的直接依赖和交互,而是让他们与一个中介者对象进行合作。它将一个对象从决策者转变为参与者,将决策权交予中介者统一管理它会将一个网状依赖结构变为星型结构飞机降落时,各个飞机之间不直接相互沟通确定降落顺序,而是通过塔台安排降落顺序使用场景:系统中对象之间存在比较复杂的引用关系,导致它们之间的

2021-07-29 13:40:20 148

原创 设计模式之观察者模式

观察者模式菜鸟教程 - 观察者模式五分钟设计模式 - 19迭代器模式尚硅谷介绍观察者模式:对象之间一对多依赖的一种设计方案,一通知多发生变化订购羊奶,羊奶提供商是一,顾客是多,把羊奶送达到的投放箱中就是通知优点:观察者以集合的方式管理用户(Observer)定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。缺点:如果一个被观察者对象有很多的观察者的话,将所有的观察者都通知到会花费很多时间如果在观察者和观察目标之间有循环

2021-07-29 13:27:35 123

原创 设计模式之迭代器模式

迭代器模式菜鸟教程 - 迭代器模式五分钟设计模式 - 19迭代器模式尚硅谷介绍功能迭代器模式(Iterator Pattern)属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,链表、栈、之类的集合, 或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素, 不需要知道集合对象的底层表示,即:不暴露其内部的结构。优点提供了统一的方式遍

2021-07-29 13:23:38 114

原创 设计模式之访问者模式

访问者模式菜鸟教程 - 访问者模式五分钟设计模式 - 23访问者模式尚硅谷介绍作用和使用场景**主要解决:**稳定的数据结构和易变的操作耦合问题。访问者模式(Visitor Pattern)封装一些作用于某种数据结构的各元素的操作, 它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。(符合开闭原则、单一职责原则)主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题使用场景:适用于系统拥有比较稳定的数据结构、又有经常变化的功能需求。访问者可以对功能进行统一,可以做报表、

2021-07-29 13:17:59 145

原创 设计模式之命令模式

命令模式菜鸟教程 - 命令模式五分钟设计模式 - 15命令模式尚硅谷介绍问题引入我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就 可以控制对这些家电工作。 这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App,分别控制,我们希只要一个app就可以控制全部智能家电。要实现一个app控制所有智能家电的需要,则每个智能家电厂家都要提供一个统一的接口给app调用,这时就可以考虑使用命令模式功能在我们的例子中,动作的请求者是手机app,动作的执行者是每

2021-07-29 13:16:08 140

原创 设计模式之享元模式

享元模式1. 介绍尚硅谷Java设计模式(图解+框架源码剖析)五分钟设计模式 - 享元模式菜鸟教程 - 享元模式1.1 描述和作用享元漠式(Flyweight Pattern)用共享技术有效地支持大量细粒度的对象“享”表示共享,“元”表示对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题, 当系统中有大量相似对象,需要缓冲池时。

2021-07-29 13:14:50 161

原创 设计模式之外观模式

外观模式五分钟设计模式 - 模式菜鸟教程 - 外观模式尚硅谷介绍原理和作用外观模式(Facade),也叫过程模式外观模式为子系统中的多个接囗提供一个一致的界面(也是接囗),用以屏蔽内部子系统的细节,使得调用端只需跟这个界面发生调用,而无需关心这个子系统的内部细节;实现了客户端与子系统解耦,便于子系统的维护和扩展;更好地划分了系统层次。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。相当于一个“接待员”,可以被视为系统的入口来定义。当系统需要进行分层

2021-07-29 13:10:46 255

原创 设计模式之组合模式

组合模式介绍菜鸟教程 - 组合模式五分钟设计模式 - 20组合模式组合模式介绍属于结构型模式组合模式(CompositePattern),又叫部分-整体模式,它创建了对象组的树形结构,用来表示部分以及整体层次。 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户不必判断当前对象是个体对象还是组合对象,直接以一致的方式进行处理根据上面两点,我们知道,当我们要处理的对象可以生成一棵树形结构,而我们要对树上的结点和叶子结点进行操作时,可以使用组合模式进行一致性操作,而不用考虑

2021-07-29 13:07:16 153

原创 设计模式之桥接模式

桥接模式五分钟设计模式 - 21桥接模式菜鸟教程 - 桥接模式尚硅谷1. 介绍1.1 问题引入抽象手机类、手机样式(翻盖、直立、滑盖)、手机品牌的类图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwA9UJly-1627441664542)(img\桥接模式-问题引入.png)]扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品 牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。违反了单一职责原则,当我们增加

2021-07-29 13:05:39 143

原创 设计模式之适配器模式

适配器模式五分钟设计模式 - 06适配器模式菜鸟教程 - 桥接模式尚硅谷1. 介绍1.1 功能适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容,让原本因接口不匹配不能一起工作的两个类可以协同工作。电源插头和插座其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式类适配器:src作为类继承对象适配器:src作为对象持有接口适配器:src作为接口实现

2021-07-28 11:06:51 124

原创 设计模式之装饰器模式

装饰器模式五分钟设计模式 - 05装饰器模式菜鸟教程 - 装饰器模式尚硅谷介绍装饰器模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰器模式也体现了开闭原则(ocp)。属于结构型模式。装饰器模式就好像打包一个快递。被装饰器(主体)是快递的物品,它需要装饰器(包装)来包装原有的类,并在保持原有类结构不变的前提下,提供额外的功能。**何时使用:**在不想增加很多子类的情况下扩展类。拓展类的功能有两种,一种是继承。继承就是用来拓展类的功能的,但它是对类的层级进行扩展。另

2021-07-28 11:04:25 155

原创 设计模式之代理模式

代理模式菜鸟教程 - 建造者模式五分钟设计模式 - 11代理模式尚硅谷1. 介绍1.1 功能为其他对象提供一种代理以控制对这个对象的访问代理模式也叫做委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式1.2 角色Subject抽象主题角色定义代理要做的工作RealSubject具体主题角色是业务逻辑的具体执行者,活都让他来干。Proxy代理主题角色它负责对真实角色的应用,把所有抽象主题类定义的方法委托

2021-07-28 10:32:18 140

原创 设计模式之模板方法模式

模板方法模式参考:《设计模式之禅》尚硅谷Java设计模式(图解+框架源码剖析)1. 介绍1.1 功能是一个行为型模式。定义一个操作中的算法的框架(操作流程,也就是模板),而将一些步骤延迟到子类中实现。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。1.2 优点封装不变部分,扩展可变部分提取公共部分代码,便于维护(出事的时候不用一个个找类似的代码进行修改,而是一改全改)行为由父类控制,子类实现算法只存在一个地方(父类),容易修改。统一了算法,又能很方便地实现算法的功

2021-07-28 10:26:37 126

原创 设计模式之建造者模式/生成器模式

建造者模式/生成器模式菜鸟教程 - 建造者模式五分钟设计模式 - 16生成器模式尚硅谷1. 介绍1.1 功能将一个复杂的对象的构建与它的表示分离、解耦是一种创建型模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。可以使得相同的创建过程可以创建不同的产品对象建造者模式是一步创建一个复杂的对象 ,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节 。增加新的具体建造者无需修改原有代码

2021-07-28 10:24:01 205

原创 设计模式之原型模式

原型模型菜鸟教程 - 原型模式五分钟设计模式 - 17原型模式尚硅谷1. 原型模式介绍1.1 出现原因——克隆羊问题构建新对象时,需要重复获取原始对象的属性总是需要重新初始化一个新的对象,而不是动态地获取对象运行时的状态解决思路是利用Object的clone()方法以及Cloneable接口来实现类的克隆功能1.2 原型模式原型模式 (Prototype模式)是指:通过已有的原型实例,克隆出新的同一对象主要解决问题:在运行期建立和删除原型。原型模式是一种创建设计模式,允许一个对象

2021-07-28 10:19:54 171

原创 设计模式之3种工厂模式

工厂模式1. 三种工厂模式说明1.1 三种工厂模式区分菜鸟教程-评论区有对三种工厂模式的总结一句话概括工厂模式简单工厂:一个工厂类,一个产品抽象类(用固定原理产生同理对象)工厂方法:多个工厂类,一个产品抽象类(用不同原理产生同类对象)抽象工厂:多个工厂类,多个产品抽象类(产生不同对象)生活中的工厂模式简单工厂类:一个麦当劳店,可以生产多种汉堡。工厂方法类:一个麦当劳店,可以生产多种汉堡。一个肯德基店,也可以生产多种汉堡。抽象工厂类:百胜餐饮集团下有肯德基和百事公司,肯德基生产汉

2021-07-28 10:14:45 219

原创 设计模式之单例模式

单例模式1. 介绍单例模式,就是保证在整个软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个能够取得其对象实例的方法(静态方法)。单例模式可以节省系统资源,保证线程同步。常用于经常创建和销毁的对象、创建和销毁耗时过多的对象、经常被使用的对象、工具类对象、频繁访问数据库或文件的对象。2. 单例模式的多种方式饿汉式静态常量实现静态代码块实现懒汉式(线程不安全)懒汉式(线程安全)双重检查静态内部类枚举2.1 饿汉式静态常量的饿汉式中,直接通过new成员

2021-07-28 10:10:07 110

原创 设计模式——UML类图六种关系

UML类图类之间的关系:依赖(使用)Dependency关联Association泛化(继承)Generalization实现Realization关联Association聚合Aggregation组合Composite各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖参考:一文带你掌握 14 种 UML 图!依赖类之间什么时候存在依赖关系:类中用到了对方类的成员变量方法的返回类型方法接收的参数方法中使用到的变量

2021-07-28 10:07:34 1747

原创 设计模式——七大原则

设计模式七大原则单一职责原则对类来说的,一个类应该只负责一项职责单一职责原 则注意事项和细节:降低类的复杂度,一个只负责一项职责。提高类的可读性,可维护性降低变更引起的风险只有逻辑足够简单才可以在代码级违反单一职责原则只有类中方法数量足够少,可以在方法级别上保持单一职责原则接口隔离原则概念:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上不合适的设计方案:处理方式:将复杂的接口拆分为几个独立的接口改进后:依赖倒转原则概念高层模块不应

2021-07-28 10:06:36 142

原创 SpringBoot自动配置和注入的使用和原理

学习资源:尚硅谷-雷神-SpringBoot2 老师讲得贼棒!SpringBoot自动配置和注入SpringBoot自动配置和注入1. 自动配置原理1.1 依赖管理1.1.1 版本仲裁1.1.2 starter场景启动器1.1.3 变更版本1.2 自动配置2. Bean组件装配2.1 @Configuration配置类2.2 @Bean注解2.3 单例、组建依赖2.4 @Import导入组件2.5 @Conditional条件注入组件2.6 Spring原生配置文件导入3. 自动配置绑定3.1 配置绑.

2021-07-27 23:28:51 494

原创 最优二叉搜索树算法 java实现

最优二叉搜索树定义数据集:S=[x1, x2, … , xn]S=[x_1, ~x_2,~\dots~, ~x_n]S=[x1​, x2​, … , xn​]截图来自:北大公开课 算法设计与分析 最优二叉搜索树算法 ,下同存取概率分布:P=[a0, b1, a1, b2, … , ai, bi+1, … , bn,&

2021-06-29 12:01:03 1880 1

原创 阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙

服务器购买

2021-05-02 16:41:17 1788

原创 云服务器tomcat设置不输入项目名称访问项目

修改tomcat的配置文件server.xml,将host节点添加appBase属性,并在标签内添加Context标签:<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context path="/" docBase="/www/server/tomcat/webapps/proje

2021-04-13 17:44:02 261

原创 宝塔面板tomcat启动:“失败!主域名不能为IP地址”

在启动tomcat时,会出现以下错误:百度了很多资料,说是要修改tomcat的server.xml文件,但是尝试后没有解决。之后在站点设置那里,为站点添加了一个新域名,也没有解决。后来经一位师兄指点,发现所谓“主域名”应该指的是“网站名”,即下图中的网站名。将站点删除后用域名新建一个站点,测试了一下,tomcat可以正常启动了!后续发现站点创建完毕后不能正常访问,就将tomcat的server.xml修改为默认(Engine标签的defaultHost属性修改为默认的localhost),并重启t

2021-04-13 17:07:10 1572

原创 宝塔面PhpMyAdmin板导入数据库错误

在宝塔面板进入PhpMyAdmin后导入数据库,出现以下错误:根据“MuSQL返回”中的错误提示Access denied for user xxx … 可以知道,用户的操作被拒绝,应该是用户的问题。看了网上很多资料,都说要去修改PhpMyAdmin的根目录的config.sample.inc.php文件。但是我修改后无果。最后发现,我在宝塔面板已经创建了一个空的数据库,而我一直是以这个数据库账户而不是root账户导入数据库的,所以会尝试权限问题。因此只需要在登录PhpMyAdmin时使用root账户登

2021-04-13 16:56:34 1881

原创 八大排序算法 详细注释

1. 排序算法的介绍和基本知识1.1 内排序和外排序内排序是指待排序序列完全存放在内部寄存器中(如内存)进行排序的过程外排序是指待排序的数据元素过多,必须把他们放在外部寄存器上(如文件)。排序过程中需要借助外寄存器。 1.2 稳定排序和不稳定排序若对于任意一组序列,相同关键字之间前后的位置关系在排序前后保持一致,则为稳定排序。如(1,5,3,2,3’),排序后如果是(1,2,3,3’,5),则为稳定排序,如果是(1,2,3’,3,5),则为不稳定排序。我们在实际运用中,可能会针对一个对象的

2021-03-18 19:54:09 189

原创 方法引用介绍以及与lambda比较

写在最前:本笔记全程参考《Java核心技术卷I》,添加了一些个人的思考和整理。如有错误欢迎指出!目录方法引用1、方法引用的引入2、方法引用的用法2.1 解释说明2.2 方法引用的形式2.3 使用示例2.4 其他特点3、方法引用的使用示例4、方法引用和lambda的选择5、构造方法引用5.1 简介5.2 泛型数组与数组构造函数引用方法引用1、方法引用的引入假设你希望只要出现一个定时器时间,就打印这个对象,可以这么写:var timer = new Timer(1000, event -> .

2021-03-17 16:05:29 154

原创 异常与断言

写在最前:本笔记全程参考《Java核心技术卷I》,添加了一些个人的思考和整理。如有错误欢迎指出!目录异常和断言1、处理错误1.1 异常分类1.2 声明检查型异常声明异常的场景声明异常与throws关键字创建异常类2、捕获异常2.1 try-catch语句块2.2 捕获多个异常2.3 再次抛出异常和异常链2.4 finally子句2.5 try-with-Resource语句2.6 分析堆栈轨迹元素StackWalker与栈帧3、异常的使用技巧4、断言4.1 断言的概念4.2 启动和禁用断言4.3 什么.

2021-03-17 15:41:26 239

原创 Java泛型笔记(目录)

《Java核心技术卷I》泛型篇笔记目录(一) 泛型的基本使用(二) 泛型底层原理——泛型擦除(三) 泛型的特性和局限(四) 泛型通配符(五) 泛型与反射 其他可参考的资料:菜鸟教程——Java 泛型java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一JAVA泛型知识: <? extends T>和<? super T>...

2021-03-07 15:30:31 155

原创 《Java核心技术卷I》泛型篇笔记(五) 泛型与反射

写在最前:本笔记全程参考《Java核心技术卷I》,添加了一些个人的思考和整理反射与泛型1. 泛型Class类Class类是泛型的,例如,String.class是一个Class<String>的对象(且是唯一的对象)这个类型参数分词有用,它允许Class<T>的方法返回特定的数据类型。newInstance方法返回一个这个类的实例对象,由无参数构造器获取。它的返回值类型被声明为T,与CLass中声明的参数类型相同,这样就避免了类型转换。 2. 使用Class&lt.

2021-03-07 15:22:10 218 2

原创 《Java核心技术卷I》泛型篇笔记(四) 泛型通配符

写在最前:本笔记全程参考《Java核心技术卷I》,添加了一些个人的思考和整理泛型与继承1. 泛型与继承和多态Employee是Manager的父类,但是Pair<Manager>与Pair<Employee>没有(也不允许有)继承关系原因:假设现在允许Pair<Manager>转换为Pair<Employee>,那么下面的代码就会成立:Pair<Manager> managerPair = new Pair<>(ceo,.

2021-03-07 15:16:48 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除