E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
dubbo源码分析
Dubbo源码分析
(十)同步调用与异步调用
一、同步调用默认情况下,我们通过Dubbo调用一个服务,需得等服务端执行完全部逻辑,方法才得以返回。这个就是同步调用。但大家是否考虑过另外一个问题,Dubbo底层网络通信采用Netty,而Netty是异步的;那么它是怎么将请求转换成同步的呢?首先我们来看请求方,在DubboInvoker类中,它有三种不同的调用方式。protectedResultdoInvoke(finalInvocationin
清幽之地
·
2019-01-14 17:11
Dubbo源码分析
(九)负载均衡算法
前言当我们的Dubbo应用出现多个服务提供者时,服务消费者如何选择哪一个来调用呢?这就涉及到负载均衡算法。LoadBalance中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。Dubbo
清幽之地
·
2019-01-10 20:58
Dubbo源码分析
(一)Dubbo与Spring集成实例
前言ApacheDubbo(incubating)|ˈdʌbəʊ|是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1、特性面向接口代理的高性能RPC调用提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。智能负载均衡内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟
清幽之地
·
2019-01-01 13:48
Dubbo源码分析
:RPC协议实现-服务端限流与Semaphore信号量
概述Dubbo支持在服务端通过在service或者method,通过executes参数设置每个方法,允许并发调用的最大线程数,即在任何时刻,只允许executes个线程同时调用该方法,超过的则抛异常返回,从而对提供者服务进行并发控制,保护资源。用法服务级别限制com.foo.BarService的每个方法,服务器端并发执行(或占用线程池线程数)不能超过10个:方法级别限制com.foo.BarS
服务端开发
·
2018-12-02 14:14
Dubbo
Dubbo源码剖析
Dubbo源码分析
:Register注册中心
Registry每个注册中心对应一个Registry实例,包括dubbo,zookeeper,redis,multicast。(1)Set类型的registed:记录provider注册过的serviceurl。(2)ConcurrentMapsubscribed:consumer订阅URL,URL有变化时的监听器NotifyListener;其中多个NotifyListener是因为consum
服务端开发
·
2018-12-01 14:10
Dubbo
Dubbo源码剖析
dubbo 源码分析 一 - 扩展点机制(SPI)
dubbo源码分析
一-扩展点机制问题由来实现相同的功能通常可以使用不同的方案:dubbo代理生成的方案:有人喜欢用JDK动态代理,有人喜欢用javassist生成字节码的方式来生成代理RPC协议:可以使用
琰珺
·
2018-09-10 14:30
dubbo源码
dubbo源码分析
之服务暴露和注册
一、dubbo的三大核心接口一、dubbo的核心领域对象是Invoker,dubbo通过Protocol来管理Invoker的生命周期,包括服务的暴露和引用都是通过它来完成,而在进行服务调用的过程是退过Invocation来保存调用过程中的变量:包括方法名,参数等。所有在整个dubbo调用过程当中:Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体
在云端123
·
2018-09-08 17:01
Dubbo
Dubbo构造ServiceBean过程
Dubbo源码分析
1注册Provider1.1构造ServiceBeanServiceBean继承与ServiceConfig,构造完成,并注册后。
HanJuly9569
·
2018-08-31 17:32
Dubbo
4-
dubbo源码分析
之集群设计
先看官网一张图image.png这就是dubbo的集群设计了,本章主要解析的就是图中的主要几个蓝色点,简单堆土做个说明:Cluster对于dubbo集群整个管控,会有各种方案,比如快速失败、安全失败等Directory在consumer章节中就已经接触过,主要维护的invoker的动态管理Router一看名词就是路由相关了LoadBalance讲的就是负载均衡整体结合起来就是:consumer去远
致虑
·
2018-08-30 19:26
3-
dubbo源码分析
之服务引用
先看官网两张图【引用来自官网】:image.pngimage.pngimage.png官网说明:1.首先ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例(如上图中的红色部分),这是服务消费的关键。接下来把Invoker转换为客户端需要的接口(如:HelloWorld)。2.关于每种协议如RMI/Dubbo/Webservice等它们在调用re
致虑
·
2018-08-30 18:58
2-
dubbo源码分析
之服务暴露
先看官网两张图【引用来自官网】:image.pngimage.png暴露服务的入口自然就清楚了官网说明:1.首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转化。接下来就是Invoke
致虑
·
2018-08-30 17:48
1-
dubbo源码分析
之扩展机制
一.概览整体描述dubbo利用spi扩展机制实现大量的动态扩展,要想充分了解dubbo的扩展机制,首先必须弄明白三个注解:@SPI:被此注解标记的接口,便是是可扩展的接口,实现类便是动态抓取的了@Adaptive:自适应扩展~该注解可以作用在“类”上,也可以作用在方法上,除了AdaptiveCompiler、AdaptiveExtensionFactory两个类之外,所有的都是注解在方法上。Ext
致虑
·
2018-08-30 17:49
Dubbo源码分析
----网络通信相关
Server在暴露服务,执行到DubboProtocol的export方法的时候,会调用openServer方法,从这里开始,就是Dubbo开启请求监听的地方privatevoidopenServer(URLurl){//findserver.Stringkey=url.getAddress();//client也可以暴露一个只有server可以调用的服务。booleanisServer=url.
_六道木
·
2018-08-16 20:20
dubbo源码分析
-dubbo-registry-zookeeper
dubbo-registry-zookeeper非常简单,只有两个类。ZookeeperRegistryFactorypackageorg.apache.dubbo.registry.zookeeper;importorg.apache.dubbo.common.URL;importorg.apache.dubbo.registry.Registry;importorg.apache.dubbo.
一任天然
·
2018-08-12 21:24
dubbo
Dubbo源码分析
----过滤器之ActiveLimitFilter
ActiveLimitFilter也是用来做并发控制的,区别在于ExecuteLimitFilter作用于服务端,而ActiveLimitFilter作用于客户端。看下官网的例子即从客户端方面限制了服务最多有10个并发接下来看下ActiveLimitFilter的invoke方法publicResultinvoke(Invokerinvoker,Invocationinvocation)throw
_六道木
·
2018-07-21 13:34
Dubbo源码分析
----扩展机制
Dubbo提供了一种类似JavaSPI的一种机制,ExtensionLoader是扩展机制的核心,类似于JavaSPI的ServiceLoader和JavaSPI类似,Dubbo规定在META-INF/services/、META-INF/dubbo/、internal/下定好配置文件,Dubbo会按照一定的规则去加载这些类例如rpc模块下的配置文件image.pngcom.alibaba.dub
_六道木
·
2018-07-15 16:54
dubbo源码分析
24 -- 调用核心 Invoke
原文地址:http://www.carlzone.cn/dubbo/24-dubbo-core-invoke/任何框架或组件,总会有核心领域模型,比如:Spring的Bean,Struts的Action,Napoli的Queue。对于Dubbo来说它的核心就是Service(服务接口),而Service不管是provider暴露服务,还是consumer引用服务。它都是一个非常重要的概念,我们来看
Yang_yangyang
·
2018-07-05 09:25
dubbo
架构
dubbo源码分析
24 -- 调用核心 Invoke
任何框架或组件,总会有核心领域模型,比如:Spring的Bean,Struts的Action,Napoli的Queue。对于Dubbo来说它的核心就是Service(服务接口),而Service不管是provider暴露服务,还是consumer引用服务。它都是一个非常重要的概念,我们来看一下Dubbo的核心领域模型:Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责Inv
carl_zhao
·
2018-06-28 21:02
dubbo源码分析
22 -- consumer 发送与接收原理
在前面的文章中,我们分析了dubbo从provider进行服务暴露,然后把服务信息注册到注册中心上面解耦consumer与provider的调用。consumer通过javassist创建代理对象引用远程服务。当通过代理对象调用远程服务的时候,讲到进行真正调用的时候dubbo抽象出集群容错(Cluster、Directory、Router、LoadBalance)从服务多个暴露方选取出一个合适的I
carl_zhao
·
2018-06-26 21:19
dubbo源码分析
16 -- 集群容错之LoadBalance
在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上1、dubbo服务治理当请求来临时,如何从多个服务器中,选择一个有效、合适的服务器,这个集群所需要面对一问题。所以在集群里面就引申出负载均衡(LoadBalance),高可用(
carl_zhao
·
2018-05-21 22:04
dubbo源码分析
--预热warmup过程
阿飞Javaer,转载请注明原创出处,谢谢!前言今天群里小伙伴黄晓峰VIVO咨询一个问题:”dubbo接口怎么做预热呢,每次上线,都会有一小部分超时?”,熟悉JVM都知道,JVM重启后有一段预热过程,要运行一段时间,它的性能才能达到最佳状态;阿里JVM团队就针对这个缺陷进行了优化,其特性名曰:jwarmup,可以点击AlibabaJVM创新提效获国际社区认可登台JVM圈顶会,对jwarmup稍微了
阿飞的博客
·
2018-05-18 09:43
Java
各种框架
dubbo源码分析
14 -- 集群容错之Directory
在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上1、dubbo服务治理当请求来临时,如何从多个服务器中,选择一个有效、合适的服务器,这个集群所需要面对一问题。所以在集群里面就引申出负载均衡(LoadBalance),高可用(
carl_zhao
·
2018-05-17 22:48
dubbo源码分析
8 -- DubboProtocol 之提供端发布服务export
在前面提到,在RegistryProtocol发布服务时,首先会dubbo对外提供接口根据url的地址,协议是dubbo,调用protocol.export(…),但是根据ExtensionLoader.getExtensionLoader获取的到的protocol,这个protocol是个装饰者(一个是启动lisenter,一个是创建单性列表filter).最后是原生的dubboProtocol
cynthina1
·
2018-05-09 17:55
dubbo
12、
dubbo源码分析
之 Listener & Filter
Dubbo是阿里巴巴开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输入与输出功能。作为一个优秀的框架,至少应该包含以下几个特点:完善的文档活跃的社区良好的扩展性今天主要讨论的主题就是dubbo中良好的扩展性。dubbo的扩展点加载是从JDK标准的SPI(ServiceProviderInterface)扩展点发现加强而来。JDK标准的SPI会一次性实例化扩展点所有实现,如果
carl_zhao
·
2018-05-05 13:29
13、
dubbo源码分析
之 集群容错 Invoke
在集中式环境中服务的机器台只有一台,这样对于服务不仅存在服务单点故障问题而且还存在流量问题。为了解决这个问题,就引入的分布式与集群概念。分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上1、dubbo服务治理当请求来临时,如何从多个服务器中,选择一个有效、合适的服务器,这个集群所需要面对一问题。所以在集群里面就引申出负载均衡(LoadBalance),高可用(
carl_zhao
·
2018-04-28 20:04
Dubbo源码分析
----容错
先看下Dubbo官方的一张图image.pngCluster是容错的核心,官方的说法是Cluster将Directory中的多个Invoker伪装成一个Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个即Cluster是对外暴露的一个接口,内部返回一个集群版的Invoker,通过不同的容错策略,对从Directory中获取的invoker有不同的调用方式下面看下代码实现Av
_六道木
·
2018-04-02 23:28
dubbo源码分析
之发布
服务发布-原理第一个发布的动作:暴露本地服务Exportdubboservicecom.alibaba.dubbo.demo.DemoServicetolocalregistry,dubboversion:2.0.0,currenthost:127.0.0.1第二个发布动作:暴露远程服务Exportdubboservicecom.alibaba.dubbo.demo.DemoServicetour
csdn_liugd
·
2017-10-12 23:06
dubbo源码学习
dubbo源码分析
之发布
服务发布-原理第一个发布的动作:暴露本地服务Exportdubboservicecom.alibaba.dubbo.demo.DemoServicetolocalregistry,dubboversion:2.0.0,currenthost:127.0.0.1第二个发布动作:暴露远程服务Exportdubboservicecom.alibaba.dubbo.demo.DemoServicetour
csdn_liugd
·
2017-10-12 23:06
dubbo源码学习
dubbo源码分析
-consumer端4-ClusterInvoker与LoadBalance
dubbo中提供了多种集群调用策略:1、FailbackClusterInvoker:失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作;2、FailfastClusterInvoker:快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作;3、FailoverClusterInvoker:失败转移,当出现失败,重试其它服务器,通常用于读操作,但重试会带来更长延迟;4、Fa
csdnxingyuntian
·
2017-10-09 10:54
dubbo学习总结
dubbo源码分析
6——SPI机制中的AOP
在ExtensionLoader类的loadFile方法中有下图的这段代码:类如现在这个ExtensionLoader中的type是Protocol.class,也就是SPI接口的实现类中XxxProtocol类中有这样的构造函数publicXxxProtocol(Protocolobject),这个构造函数显然说明XxxProtocol有包装或代理这个object的意思。所以当发现了这样特点的实
weixin_34234721
·
2017-09-22 17:00
java
dubbo源码分析
5——SPI机制_AdaptiveExtension的原理和作用
privateTcreateAdaptiveExtension(){try{returninjectExtension((T)getAdaptiveExtensionClass().newInstance());}catch(Exceptione){thrownewIllegalStateException("Cannotcreateadaptiveextenstion"+type+",cause
weixin_33989780
·
2017-09-21 14:00
java
dubbo源码分析
4——SPI机制_ExtensionFactory类的作用
ExtensionFactory的源码:@SPIpublicinterfaceExtensionFactory{/***Getextension.**@paramtypeobjecttype.*@paramnameobjectname.*@returnobjectinstance.*/TgetExtension(Classtype,Stringname);}ExtensionFactory的作用就
weixin_34038652
·
2017-09-20 13:00
java
dubbo源码分析
2——SPI机制中的SPI实现类的读取和预处理
SPI机制中的SPI实现类的读取和预处理是由ExtensionLoader类的loadFile方法来完成的loadFile方法的作用是读取dubbo的某个SPI接口的spi描述文件,然后进行缓存,缓存,缓存(很重要,说三遍),读取的位置是在jar包下的META-INF\dubbo\internal目录下一.先对loadFile方法进行下粗的了解:loadFile方法方法被调用的顺序如下:getEx
weixin_34232617
·
2017-09-18 15:00
java
dubbo源码分析
1——SPI机制的概要介绍
插件机制是Dubbo用于可插拔地扩展底层的一些实现而定制的一套机制,比如dubbo底层的RPC协议、注册中心的注册方式等等。具体的实现方式是参照了JDK的SPI思想,由于JDK的SPI的机制比较简单,满足不了一些复杂的需求,所以dubbo重写了一套SPI机制,实现了类似spring的IOC和AOP的机制,灵活度和扩展性大大得以提升,这套机制很有用,我们如果能深刻理解,完成可以把它从dubbo的代码
weixin_33971977
·
2017-09-14 14:00
java
测试
dubbo源码分析
(二):超时原理以及应用场景
原文链接:http://www.cnblogs.com/ASPNET2008/p/7292472.html本篇主要记录dubbo中关于超时的常见问题,实现原理,解决的问题以及如何在服务降级中体现作用等。超时问题为了检查对dubbo超时的理解,尝试回答如下几个问题,如果回答不上来或者不确定那么说明此处需要再多研究研究。我只是针对个人的理解提问题,并不代表我理解的就是全面深入的,但我的问题如果也回答不
dhka8040652
·
2017-08-06 02:00
Dubbo源码分析
Handler & Filter
原文转:http://blog.csdn.net/zhanghj07409/article/details/51781413本文将主要介绍Server端处理一次请求的流程,同时讲解一个比较巧妙的设计——Filter。根据前面的分析我们可以推断出Server端处理网络通信的组件为NettyServer,对应处理具体事件的handler为NettyHandler,它的构造函数需要一个ChannelHa
西海棱镜
·
2017-07-31 22:46
dubbo
源码
分布式
微服务
源码分析
SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
Dubbo是什么东西我这里就不详细介绍了,自己可以去谷歌SpringBoot整合Dubbo的话我们首先要先对Dubbo的启动这块了解一哈
dubbo源码分析
:http://blog.csdn.net/flashflight
胡小海丶
·
2017-03-12 21:22
spring
boot
dubbo
yml
spring
boot
Dubbo源码分析
---- 基于SPI的扩展实现机制
Dubbo源码分析
–基于SPI的可扩展框架dubbo是阿里巴巴开源出来的一套分布式服务框架,该框架可以比较方便的实现分布式服务的开发,调用等,该框架的教程地址为http://dubbo.io/Home-zh.htm
guhong5153
·
2017-03-11 00:26
分布式服务框架
dubbo源码分析
(一)
原文链接:http://www.cnblogs.com/ASPNET2008/p/6491427.html阅读源码的作用提取设计思路,增强设计能力理解运行机制,便于快速解决问题以及功能扩展常见有关dubbo的问题dubbo的负载均衡是在哪个组件中处理的?dubbo默认的负载均衡算法是什么?如果注册中心挂掉了客户端是否能够继续调用dubbo?一个请求从调用端到服务端的处理流程是什么?如果你有仔细的研
dhka8040652
·
2017-03-02 19:00
dubbo源码分析
其实dubbo整个框架内容并不算大,仔细看的话可能最多两天看完一遍,但是目前还是没领悟到怎么做到的扩展性,学习深度还不够~要学习dubbo源码的话,必须要拿出官方高清大图才行。这张图看起来挺复杂的样子,真正拆分之后对照源码来看会发现非常清晰、简单直观。1.如何跟进源码入口就是各种dubbo配置项的解析,都是springnamespace,可以看到dubbojar包下META-INF里面的sprin
csdnxingyuntian
·
2017-02-11 22:25
dubbo学习总结
Dubbo源码分析
系列-服务的发布
RPC简化类图RPC模块核心接口和抽象实现默认实现Dubbo协议的接口和抽象实现服务发布过程调用过程上图是服务提供者暴露服务的主过程:首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转
qq418517226
·
2016-07-06 09:11
RPC
Dubbo源码分析
系列-服务的发布
RPC简化类图RPC模块核心接口和抽象实现默认实现Dubbo协议的接口和抽象实现服务发布过程调用过程上图是服务提供者暴露服务的主过程:首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转
qq418517226
·
2016-07-06 09:00
源码
rpc
中间件
互联网
DUBBO
Dubbo源码分析
系列-扩展机制的实现
Spring可扩展Schema像标签dubbo:monitor、dubbo:service、dubbo:provider等怎么读的,读完之后怎么又是怎么解析的呢?以上标签都是基于Spring可扩展Schema提供的自定义配置下面举个例子1)创建JavaBean首先设计好配置项,通过JavaBean来建模,如类PeoplepublicclassPeople{ privateStringname; p
qq418517226
·
2016-07-04 09:00
源码
rpc
分布式
DUBBO
远程调用
Dubbo源码分析
之四:服务的调用
在调用服务之前,先得获得服务的引用。ReferenceBean就是服务的引用。它实现了一个FactoryBean接口,在我们需要一个服务时,FactoryBean接口的getObject()方法会被调用。publicObjectgetObject()throwsException{returnget();//返回服务的代理。}。。。//get()->init()->createProxy(map)
frankchina
·
2016-05-22 14:04
Dubbo源码分析
Dubbo源码分析
之二:spring集成之注解
dubbo的注解配置主要是com.alibaba.dubbo.config.spring.AnnotationBean该类实现了DisposableBean,BeanFactoryPostProcessor,BeanPostProcessor,ApplicationContextAware接口重点在BeanFactoryPostProcessor和BeanPostProcessor。其中BeanF
frankchina
·
2016-05-12 10:17
Dubbo源码分析
Dubbo源码分析
之一:spring集成之xml
关于dubbo与spring的集成有俩种方式:xml配置文件,注解。相关代码主要集中在dubbo-config-spring包中。xml配置文件方式的处理spring在启动时,找到dubbo命名空间的处理类。META-INF/spring.handlers内容http\://code.alibabatech.com/schema/dubbo=com.alibaba.dubbo.config.spr
frankchina
·
2016-05-12 09:30
Dubbo源码分析
Dubbo源码分析
之一:spring集成之xml
关于dubbo与spring的集成有俩种方式:xml配置文件,注解。相关代码主要集中在dubbo-config-spring包中。xml配置文件方式的处理spring在启动时,找到dubbo命名空间的处理类。META-INF/spring.handlers内容http\://code.alibabatech.com/schema/dubbo=com.alibaba.dubbo.config.spr
FrankChina
·
2016-05-12 09:00
Dubbo源码分析
(十):服务发布
服务发布是服务提供方向注册中注册服务过程,以便服务消费者从注册中心查阅并调用服务。服务发布方在spring的配置文件中配置如下:上面是在spring中配置的服务的具体实现,是spring中的一个普通的bean上面的配置spring容器在启动的过程中会解析自定义的schema元素dubbo转换成实际的配置实现ServiceBean,并把服务暴露出去。ServiceConfig.doExportUrl
ZuoAnYinXiang
·
2016-05-08 14:00
Dubbo源码分析
(九):与spring融合
Spring中bean的定义可以通过编程,可以定义在properties文件,也可以定义在通过xml文件中,用的最多的是通过xml形式,由于xml格式具有很好的自说明便于编写及维护。对于xml的文档结构、数据定义及格式验证可以通过DTD和Schema,在spring2.0之前采用的是DTD,在spring2.0之后采用Schema。使用Schema方式使得spring更加便于与第三方进行集成
ZuoAnYinXiang
·
2016-05-08 11:00
Dubbo源码分析
(八):Javassist字节码技术生成代理
Java动态编程的作用: 通过配置生成代码,减少重复编码和维护成本 我们常用到的动态特性主要是反射,在运行时查找对象属性、方法,修改作用域,通过方法名称调用方法等。在线的应用不会频繁使用反射,因为反射的性能开销较大。其实还有一种和反射一样强大的特性,但是开销却很低,它就是Javassit。 Javassit其实就是一个二方包,提供了运行时操作Java字节码的方法。大家都知道,Java
ZuoAnYinXiang
·
2016-05-08 10:00
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他