javaedge_社区达人页

关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!

暂无精选文章
暂无更多信息

2019年11月

  • 11.16 01:23:01
    发表了文章 2019-11-16 01:23:01

    RPC服务治理框架实战(一) - 手写RPC

    1 从使用者考虑用,户使用RPC框架开发过程时需要做什么? 定义过程接口服务端实现过程客户端使用生成的stub代理对象2 设计客户端客户端生成过程接口的代理对象 设计客户端代理工厂,用JDK动态代理即可生成接口的代理对象。
  • 11.10 22:10:19
    发表了文章 2019-11-10 22:10:19

    基于RabbitMQ消息队列的分布式事务解决方案 - MQ分布式消息中间件实战

    1 极速了解MQ 介绍Rabbitmg用于解决分布式事务必须掌握的5个核心概念 一款分布式消息中间件,基于erlang语言开发, 具备语言级别的高并发处理能力。和Spring框架是同一家公司。支持持久化、高可用 核心5个概念: Queue: 真正存储数据的地方 Exchange: 接收请求,转存数据 Bind: 收到请求后存储到哪里 消息生产者:发送数据的应用 消息消费者: 取出数据处理的应用 2、分布式事务问题 分布式事务是一个业务问题,不能脱离具体的场景。
  • 11.03 22:21:08
    发表了文章 2019-11-03 22:21:08

    深入理解Java虚拟机(JVM) --- 垃圾收集算法(中)

    2 回收无效对象的过程 当经可达性算法筛选出失效的对象之后,并不是立即清除,而是再给对象一次重生的机会 判断是否覆盖finalize() 未覆盖该或已调用过该方法,直接释放对象内存 已覆盖该方法且还未被执行,则将finalize()扔到F-Queue队列中 执行F-Queue中的finali...

2019年10月

  • 10.27 18:00:17
    发表了文章 2019-10-27 18:00:17

    Spring Cloud Alibaba 实战(六) - 声明式HTTP客户端-Feign

    本章学习Feign,包括Feign的自定义配置,实现文件上传,进一步实现代码的重用,Feign性能优化,Feign与RestTemplate的对比与选择. 1 使用Feign实现远程HTTP调用 Feign是Netflix开源的声明式HTTP客户端 添加依赖 新建包及接口 服务实现类...
  • 10.25 00:14:04
    发表了文章 2019-10-25 00:14:04

    RocketMQ实战(一) - 简介

    1 RocketMQ是什么 RocketMQ是由阿里捐赠给Apache的一款分布式、队列模型的开源消息中间件,经历了淘宝双十一的洗礼。 官网 2 RocketMQ的发展史 2017开始发布即最新4.
  • 10.21 23:41:56
    发表了文章 2019-10-21 23:41:56

    重学计算机组成原理(十二) - 异常和中断

    1 概览 完好的程序都满足以下特征 自动运行我们的程序和指令都是一条条顺序执行,不需要通过键盘或者网络给这个程序任何输入 正常运行没有遇到计算溢出之类的程序错误。 不过,现实的软件世界可没有这么简单 程序不仅是简单的执行指令,更多的还需要和外部的输入输出打交道 程序在执行过程中,还会遇到各种异常情况,比如除以0、 溢出,甚至我们自己也可以让程序抛出异常。
  • 10.18 03:27:15
    发表了文章 2019-10-18 03:27:15

    Docker容器实战(八) - 漫谈 Kubernetes 的本质

    在前面以Docker项目为例,一步步剖析了Linux容器的具体实现方式。通过这些应该明白:一个“容器”,实际上是一个由Linux Namespace、Linux Cgroups和rootfs三种技术构建出来的进程的隔离环境。
  • 10.16 00:33:16
    发表了文章 2019-10-16 00:33:16

    Docker容器实战(七) - 容器中进程视野下的文件系统

    前两文中,讲了Linux容器最基础的两种技术 Namespace作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一搞,进程就真的被“装”在了一个与世隔绝的房间里,而这些房间就是PaaS项目赖以生存的应用“沙盒”。
  • 10.08 01:29:20
    发表了文章 2019-10-08 01:29:20

    Docker容器实战(六) - 容器的隔离与限制

    Linux容器中用来实现“隔离”的技术手段:Namespace。Namespace实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容。对于宿主机来说,这些被“隔离”了的进程跟其他进程并没有区别。

2019年09月

  • 09.18 00:53:10
    发表了文章 2019-09-18 00:53:10

    Spring Cloud Alibaba 实战(二) - 关于Spring Boot你不可不知道的实情

    0 相关源码 1 什么是Spring Boot 一个快速开发的脚手架 作用 快速创建独立的、生产级的基于Spring的应用程序 特性 无需部署WAR文件 提供starter简化配置 尽可能自动配置Spring以及第三方库 提供“生产就绪”功能,例如指标、健康检查、外部配置等 无代码生成&无XML 2 编写一个Spring Boot应用 2.
  • 09.17 00:23:55
    发表了文章 2019-09-17 00:23:55

    深入理解Java线程状态

    赞助平台 首页 / 文章管理 / 文章编辑 Java线程状态友情提示:文章每30秒自动保存一次,编辑器支持图片拖动上传或者复制粘贴上传~ 0 线程状态概述 分类 6个状态定义: java.lang.Thread.State New: 尚未启动的线程的线程状态。
  • 09.15 22:14:02
    发表了文章 2019-09-15 22:14:02

    Spring Cloud Alibaba实战(一) - 概述

    1 什么是Spring Cloud Alibaba ◆ 阿里巴巴结合自身微服务实践,开源的微服务全家桶◆ 在Spring Cloud项目中孵化,很可能成为Spring Cloud第二代的标准实现◆ 在业界广泛使用,已有很多成功案例 Github issue :使用的公司及场景 2 应用场景 ...
  • 09.08 00:30:15
    发表了文章 2019-09-08 00:30:15

    Docker容器实战(五) - 特殊的进程!

    容器起于PaaS Docker项目具有里程碑意义 Docker项目通过“容器镜像”,解决应用打包这个根本难题 容器本身没有价值,有价值的是“容器编排” 正因为如此,容器技术生态才爆发了一场关于“容器编排”的“战争”而这次战争,最终以Kubernetes项目和CNCF社区的胜利而告终。
  • 09.04 01:27:57
    发表了文章 2019-09-04 01:27:57

    Docker容器实战(四) - 纷纷扰扰,终归尘土

    Docker公司为什么在Docker项目已经取得巨大成功之后,执意走回已经让无数先驱折戟的PaaS路呢? 实际上,Docker项目一直伴随着公司管理层和股东们的阵阵担忧。他们心里明白,虽然Docker项目备受追捧,但用户们最终要部署的,还是他们的网站、服务、数据库,甚至是云计算业务。
  • 09.04 01:12:07
    发表了文章 2019-09-04 01:12:07

    Docker容器实战(三) - Docker的自我重新定位

    Docker公司为什么在Docker项目已经取得巨大成功之后,执意走回已经让无数先驱折戟的PaaS路呢? 实际上,Docker项目一直伴随着公司管理层和股东们的阵阵担忧。他们心里明白,虽然Docker项目备受追捧,但用户们最终要部署的,还是他们的网站、服务、数据库,甚至是云计算业务。

2019年08月

  • 08.30 02:57:05
    发表了文章 2019-08-30 02:57:05

    Docker容器实战(二) -"鲸鱼"公司粉墨登场

    一天天的,PaaS深入人心,Cloud Foundry为首的传统PaaS,开始蓄力基础设施领域的 平台化和PaaS化,于是发现了PaaS中的问题 1 如何给应用打包 Cloud Foundry/OpenShift/Clodify都没给出答案,走向碎片化歪路 此时,名不见经传的PaaS创业公司do...
  • 08.29 00:39:31
    发表了文章 2019-08-29 00:39:31

    Docker容器实战(一) - 封神Server端技术

    回溯历史源头相比于盛极一时的AWSOpenStack以Cloud Foundry为代表的PaaS项目,却成了当时云计算技术中的一股清流Cloud Foundry项目已经基本度过了最艰难的概念普及和用户教育阶段,开启了以开源PaaS为核心构建平台层服务能力的变革只...
  • 08.26 02:28:23
    发表了文章 2019-08-26 02:28:23

    Kafka实战(四) -Kafka门派知多少

    Kafka不是一个单纯的消息引擎系统,而是能够实现精确一次(Exactly-once)处理语义的实时流处理平台 Storm/Spark Streaming/Flink,在大规模流处理领域主流 Kafka经过这么长时间不断的迭代,现在已经能够稍稍比肩这些框架 Kafka社区对于这些框架心存敬意 目前国内鲜有大厂将Kafka用于流处理的尴尬境地,毕竟Kafka是从消息引擎“半路出家”转型成流处理平台的,它在流处理方面的表现还需要经过时间的检验。
  • 08.25 03:16:42
    发表了文章 2019-08-25 03:16:42

    Kafka实战(三) -Kafka的自我修养

    Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。
  • 08.24 01:26:54
    发表了文章 2019-08-24 01:26:54

    JVM实战(六) - 通过案例深入学习class文件结构原理

    1 什么是JVM的“无关性”? Java具有平台无关性,也就是任何操作系统都能运行Java代码.之所以能实现这一点,是因为Java运行在虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,因此Java能实现"一次编写,处处运行".
  • 08.22 01:46:23
    发表了文章 2019-08-22 01:46:23

    Dubbo实战(一) - 入门

    1 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 1.1 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
  • 08.21 00:33:53
    发表了文章 2019-08-21 00:33:53

    重学计算机网络(三) - DHCP & IP的"孽缘"

    和其他机器通讯,就需要一个通讯地址,要给网卡配置这么一个地址。 1 配置IP地址 可以使用ifconfig,也可以使用ip addr。设置好了以后,用这两个命令,将网卡up一下,就可以开始工作了。 1.
  • 08.20 00:47:36
    发表了文章 2019-08-20 00:47:36

    重学计算机网络(二) - 曾记否,查IP地址

    先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务更保护用户隐私。 IP地址255.255.255.255,代表有限广播,它的目标是网络中的所有主机。
  • 08.18 22:41:57
    发表了文章 2019-08-18 22:41:57

    重学计算机组成原理(十一)- 门电路的"千里传音"

    人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么? 为什么计算机里我们最终要选择二进制呢? 来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制。
  • 08.18 18:08:09
    发表了文章 2019-08-18 18:08:09

    重学计算机组成原理(十)- "烫烫烫"乱码的由来

    程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二进制表示的 存储在内存里面的字符串、整数、浮点数也都是用二进制表示的 万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课。
  • 08.18 02:31:58
    发表了文章 2019-08-18 02:31:58

    重学计算机组成原理(九)- 动态链接

    把对应的不同文件内的代码段,合并到一起,成为最后的可执行文件 链接的方式,让我们在写代码的时候做到了“复用”。 同样的功能代码只要写一次,然后提供给很多不同的程序进行链接就行了。 “链接”其实有点儿像我们日常生活中的标准化、模块化生产。
  • 08.17 22:22:29
    发表了文章 2019-08-17 22:22:29

    重学计算机组成原理(八)- 程序的装载

    比尔·盖茨在上世纪80年代说的“640K ought to be enough for anyone” 也就是“640K内存对哪个人来说都够用了” 那个年代,微软开发的还是DOS操作系统,程序员们还在绞尽脑汁,想要用好这极为有限的640K内存 而现在,我手头的Mac Book Pro已经是16G内存了,上升了一万倍还不止。
  • 08.17 22:21:02
    发表了文章 2019-08-17 22:21:02

    重学计算机组成原理(七)- 程序无法同时在Linux和Windows下运行

    既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢? 反过来,Windows上的程序在Linux上也是一样不能执行的 可是我们的CPU并没有换掉,它应该可以识别同样的指令呀!!! 如果你和我有同样的疑问,那这一节,我们就一起来解开。
  • 08.15 22:51:58
    发表了文章 2019-08-15 22:51:58

    重学计算机组成原理(六)- 函数调用怎么突然Stack Overflow了!

    用Google搜异常信息,肯定都访问过Stack Overflow网站 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面函数间的相互调用是怎么实现的,以及什么情况下会发生栈溢出 1 栈的意义 先看一个简单的C程序 function.
  • 08.15 22:43:37
    发表了文章 2019-08-15 22:43:37

    重学计算机组成原理(五)- "旋转跳跃"的指令实现

    CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if…else、for这样的条件和循环存在,这些指令也不会一路平直执行下去。 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CPU如何执行指令 CPU里差不多几百亿个晶体管 实际上,一条条计算机指令执行起来非常复杂 好在CP...
  • 08.13 00:21:37
    发表了文章 2019-08-13 00:21:37

    重学计算机组成原理(四)- 玩玩纸带编程

    你在学写程序的时候,有没有想过,古老年代的计算机程序是怎么写出来的? 当年写程序,不像现在这样,都是用一种古老的物理设备,叫作“打孔卡(Punched Card)” 用这种设备写程序,没法像今天,掏出键盘就能打字,而是要先在脑海/纸写出程序,然后在纸带/卡片上打洞 这样,要写的程序、要处理的数据,就变成一条条纸带或者一张张卡片,之后再交给当时的计算机去处理 上世纪60年代晚期或70年代初期,Arnold Reinold拍摄的FORTRAN计算程序的穿孔卡照片 人们在特定的位置上打洞或者不打洞,来代表“0”或者“1”。
  • 08.11 21:21:07
    发表了文章 2019-08-11 21:21:07

    重学计算机组成原理(三)- 进击,更强的性能!

    要提升计算机的性能,可以从上面这三方面着手。 通过指令数/CPI,好像都太难了。 因此工程师们,就在CPU上多放晶体管,不断提升CPU的时钟频率,让CPU更快,程序的执行时间就会缩短。
  • 08.10 19:46:05
    发表了文章 2019-08-10 19:46:05

    重学计算机组成原理(二)- 制定学习路线,攀登“性能”之巅

    0 学习路线的知识点概括 学习计算机组成原理,就是学习计算机是如何协调运行的 计算机组成原理的英文叫Computer Organization Organization 意"组织机构"。 该组织机构能够进行各种计算、控制、读取输入,进行输出,达成各种强大的功能。
  • 08.09 01:48:08
    发表了文章 2019-08-09 01:48:08

    重学计算机组成原理(一)- 冯·诺依曼体系结构

    1 计算机的基本硬件组成 早期,DIY一台计算机,要先有三大件 CPU 内存 主板 1.1 CPU 计算机最重要的核心配件,中央处理器(Central Processing Unit)。 计算机的所有“计算”都是由CPU来进行的。
  • 08.05 12:34:25
    发表了文章 2019-08-05 12:34:25

    Linux内核实战(二)- 操作系统概览

    不知道你有没有产生过这些疑问: 桌面上的图标到底是啥?凭啥我在鼠标上一双击,就会出来一些不可描述的画面?都是从哪里跑出来的?凭什么我在键盘上噼里啪啦地敲,某个位置就会显示我想要的那些字符? 电脑怎么知道我鼠标点击的是这个地方,又是怎么知道我要输入的是这个地方? 我在键盘上点“a”,是谁在显示器上画出“a”这个图像呢? 为什么我一回车,这些字符就发到遥远的另外一台机器上去了? 别小看“双击鼠标打开聊天软件”这样一个简单的操作,它几乎涵盖了操作系统的所有功能。
  • 08.04 01:19:25
    发表了文章 2019-08-04 01:19:25

    Linux再学习(一)-学习路线规划

    1 抛弃旧文化,迎接Linux命令新文化 Linux第一步,从Windows思维,切换到Linux的“命令行+文件”模式 在Linux中,做什么都有相应命令。一般就在bin或者sbin目录下,数量繁多。

2019年07月

  • 07.26 03:45:35
    发表了文章 2019-07-26 03:45:35

    Flink实战(八) - Streaming Connectors 编程

    1 概览 1.1 预定义的源和接收器 Flink内置了一些基本数据源和接收器,并且始终可用。该预定义的数据源包括文件,目录和插socket,并从集合和迭代器摄取数据。该预定义的数据接收器支持写入文件和标准输入输出及socket。
  • 07.23 13:21:02
    发表了文章 2019-07-23 13:21:02

    Flink实战(七) - Time & Windows编程

    掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark。 Flink 在流处理工程中支持不同的时间概念。
  • 07.21 22:49:39
    发表了文章 2019-07-21 22:49:39

    Flink实战(六) - Table API & SQL编程

    Apache Flink具有两个关系型API Table API SQL 用于统一流和批处理 Table API是Scala和Java语言集成查询API,可以非常直观的方式组合来自关系算子的查询(e.g. 选择,过滤和连接).
  • 07.21 00:02:59
    发表了文章 2019-07-21 00:02:59

    Flink实战(五) - DataStream API编程

    1 概述 Flink中的DataStream程序是实现数据流转换的常规程序(例如,过滤,更新状态,定义窗口,聚合)。 最初从各种源(例如,消息队列,套接字流,文件)创建数据流。 结果通过接收器返回,接收器可以例如将数据写入文件或标准输出(例如命令行终端)。
  • 07.15 01:01:32
    发表了文章 2019-07-15 01:01:32

    高可用服务架构设计(12) - 基于request cache请求缓存技术优化批量商品数据查询接口

    0 Github 回顾执行流程 1、创建command,2种command类型 2、执行command,4种执行方式 3、查找是否开启了request cache,是否有请求缓存,如果有缓存,直接取用缓存,返回结果 首先,reqeust context(请求上下文) 一般在一个web应用中,Hy...
  • 07.14 20:52:16
    发表了文章 2019-07-14 20:52:16

    高可用服务架构设计(10)-Hystrix隔离策略细粒度控制

    对于资源隔离,做更加深入一些的讲解,除了可以选择隔离策略,对选择的隔离策略,可以做一定的细粒度的控制
  • 07.13 21:03:42
    发表了文章 2019-07-13 21:03:42

    突破Java面试(50)-MySQL读写分离及主从同步延时解决方案

    有没有做过MySQL读写分离 如何实现MySQL的读写分离 主从复制原理 如何解决MySQL主从同步的延时问题
  • 07.13 15:35:48
    发表了文章 2019-07-13 15:35:48

    突破Java面试(49)-分库分表之后全局id的生成

    0 Github 1 面试题 分库分表之后,id主键如何处理? 2 考点分析 其实这是分库分表之后你必然要面对的一个问题,就是id咋生成? 要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持! 下面来看看有哪些可行方案~ 3 数据库自增id 分库分表的id主键...
  • 07.13 00:14:06
    发表了文章 2019-07-13 00:14:06
  • 07.12 22:23:49
    发表了文章 2019-07-12 22:23:49

    大厂原来都这么对MySQL分库分表!

    为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
  • 07.12 15:15:33
    发表了文章 2019-07-12 15:15:33

    突破Java面试(45)-高并发系统的架构设计

    0 Github 1 面试题 如何设计一个高并发系统? 2 考点分析 问你这个题目,就必须要使出全身吃奶劲了。为啥? 因为你没看到现在很多公司招聘的jd里都是说啥,有高并发经验者优先! 所以如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿offer基本如探囊取物,没啥问题。
  • 07.12 14:48:44
    发表了文章 2019-07-12 14:48:44

    突破Java面试(44)-分布式事务解决方案

    0 Github 1 面试题 分布式事务了解吗?你们如何解决分布式事务问题的? 2 考点分析 只要聊到做了分布式系统,必问分布式事务,若你对分布式事务一无所知的话,确实很坑,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。
  • 07.11 11:41:54
    发表了文章 2019-07-11 11:41:54

    突破Java面试(43)-分布式Session方案的实现

    集群部署时的分布式session如何实现?
  • 07.10 22:05:49
    发表了文章 2019-07-10 22:05:49

    突破Java面试(42) - Redis & ZooKeeper两种分布式锁实现的优劣

    一般实现分布式锁都有哪些方式?使用redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?
  • 发表了文章 2025-04-18

    释放数据潜力:利用 MCP 资源让大模型读懂你的服务器

  • 发表了文章 2025-02-11

    免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!

  • 发表了文章 2025-02-11

    DeepSeek-R1论文细节时间线梳理

  • 发表了文章 2025-02-11

    三分钟让Dify接入Ollama部署的本地大模型!

  • 发表了文章 2025-02-11

    Java工程师如何理解张量?

  • 发表了文章 2025-01-02

    【阿里云云服务诊断】调研报告

  • 发表了文章 2024-11-01

    ES常见Index API操作最佳实践!

  • 发表了文章 2024-10-31

    Elasticsearch 复制模型揭秘:如何保持数据一致性?

  • 发表了文章 2024-10-30

    set 方法是坏味道?

  • 发表了文章 2024-10-29

    Java8函数式接口Function<T, R> 的意义和应用场景

  • 发表了文章 2024-10-28

    为什么“低代码”是未来趋势?

  • 发表了文章 2024-10-27

    全面理解Maven Compiler Plugin-Maven编译插件

  • 发表了文章 2024-10-26

    不懂数据分析思维?怪不得你一直被淘汰!

  • 发表了文章 2024-10-25

    Java 中线程和纤程Fiber的区别是什么?

  • 发表了文章 2024-10-24

    真没想到!虚拟线程竟然这样提高程序效率!

  • 发表了文章 2024-10-23

    颠覆编程!通义灵码、包阅AI、CodeGeeX三大AI助手解锁无限潜力!

  • 发表了文章 2024-10-22

    Redis Quicklist 竟让内存占用狂降50%?

  • 发表了文章 2024-10-21

    别再用老旧架构了!单元化构建超强弹性和容错系统!

  • 发表了文章 2024-10-20

    单元化架构,分布式系统的新王!

  • 发表了文章 2024-10-19

    Java21虚拟线程:我的锁去哪儿了?

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2020-05-12

    Java 为什么不支持多继承? #Java

    因为 c++里类的多继承问题太多,前面两个也都说了,但为了持有这个特性,更简单的接口来了
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息