自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(921)
  • 资源 (21)
  • 收藏
  • 关注

转载 java8-接口的默认方法/静态方法/函数式接口 定义与使用

其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。

2023-09-06 10:41:16 849

转载 架构设计之道【精】

架构设计方法论是指导你如何来做架构设计,它有架构域划分,在软件设计中架构域包括:业务架构、数据架构、产品架构、应用架构、技术架构 ,首先需要进行业务需求结合业务场景的梳理,熟悉业务后,通过归纳以及抽象的方式,形成业务架构,依据业务架构的理解,研发人员需要对业务做进一步的抽象和沉淀,画出与之相对应的数据架构和应用架构,最后技术人员通过技术架构来做功能实现。这些都是有很多种可能性的架构方案,解决一个软件复杂度问题方案,有方案A,方案B,甚至有方案C 应该用哪个,原因是什么,都是架构设计需要思考的问题;

2023-08-16 14:32:09 276

转载 如何做架构设计?

也许您对软件设计存在一些疑惑,或者缺乏明确思路,那么本文将非常适合您。。

2023-08-16 14:18:30 220

转载 认知篇(三):单体分层应用架构剖析

良好的模块化是单体走向微服务的重要基石,如果模块化设计较差的系统,不仅会增加微服务拆分的成本,更为重要的是,会增加形成分布式单体的概率和风险。技术视角是研发友好的,作为开发人员,天然的可以理解和接受这种技术维度的统一语言:DAO层只负责处理数据相关逻辑,Controller层之服务处理Restful API相关,RPC层只处理与外部系统的跨进程调用等等。首先会想到的例子,比如,如果底层的数据库发生了变更,又或者ORM框架发生了变更,那么,我们只需要修改DAO层的实现,而不需要更改上层的业务层代码。

2023-08-16 12:04:53 96

转载 认知篇(五):CQRS架构模式的本质

如果我们采用了CQRS模式,但是命令和查询两侧底层所依赖的数据模型并未分离,而是基于共享的数据存储和数据模型,命令和查询之间不需要额外的交互,命令侧的数据更新对查询侧实时可见。命令侧负责数据的更新,而查询侧只负责数据的查询,如何将数据的更新及时同步到查询侧是需要解决的问题。但是不幸的是,我们丢失了历史信息,包括用户的意图信息。往往采用CQRS后,查询和命令两侧会采用独立的数据模型,在这种架构模式下,命令侧的数据变化后及时同步到查询侧,两侧数据并非实时,在一定的延时后两侧数据最终达成一致。

2023-08-16 11:25:04 49

转载 认知篇(一):探寻软件架构的本质,到底什么是架构?

定义 ”架构是什么“ 是件非常困难的事情,不同的组织对于软件架构有不同的定义,每个人心中也有自身对于系统架构定义的认知。就好比我们无法百分之百表述模型而只能产出模型不同维度的视图一样,对架构进行完备的定义是不可能的。行业内不同的组织和个人从不同的视角对 “什么是架构” 进行了阐述。IEEE 关于架构的定义components, their, and theprinciples将系统架构定义为:架构是系统组织结构组件及联系(组件间以及组件和环境之间)原则的组合。

2023-08-16 10:43:35 92

转载 奇淫巧技,CompletableFuture 异步多线程是真的优雅

的get()方法是阻塞的,我们一般建议使用。并且一般建议使用自定义线程池。但是如果线程池拒绝策略是或者,当线程池饱和时,会直接丢弃任务,不会抛弃异常。因此建议,线程池策略最好使用,然后耗时的异步线程,做好线程池隔离哈。

2023-08-03 14:22:23 70

转载 处理过载(google-sre-book译文)

因此,我们的做法是将关键性设置为尽可能接近浏览器或移动客户端(通常在生成要返回的 HTML 的 HTTP 前端中),并且仅在堆栈中的特定点有意义的特定情况下覆盖关键性。我们通过惨痛的教训学到了这一教训:将容量建模为“每秒查询数”或使用请求的静态特征,这些特征被认为是它们消耗的资源的代理(例如,“请求读取了多少个键”)通常会导致对于一个糟糕的指标。从我们的负载均衡策略的角度来看,请求的重试与新请求没有区别。一个表现良好的后端,在强大的负载平衡策略的支持下,应该只接受它可以处理的请求,并优雅地拒绝其余的请求。

2023-07-31 18:19:13 90

转载 一文讲透自适应熔断的原理和实现

错误比例阈值:达到该阈值进入 断开 状态。断开状态超时时间:超时后进入 半断开 状态。半断开状态允许请求数量。窗口时间大小。实际上可选的配置参数还有非常非常多,参考对于经验不够丰富的开发人员而言,这些参数设置多少合适心里其实并没有底。那么有没有一种自适应的熔断算法能让我们不关注参数,只要简单配置就能满足大部分场景?其实是有的,google sre提供了一种自适应熔断算法来计算丢弃请求的概率:requests: 窗口时间内的请求总数accepts:正常请求数量。

2023-07-31 18:15:37 107

转载 2023年JRebel最新激活方式

JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,修改才能生效;所以推荐使用 JRebel 插件进行热部署。

2023-07-24 20:20:08 38574 43

转载 如何解决分布式事务问题?

金融核心等业务可能会选择 TCC 方案,以追求强一致性和更高的并发量,而对于更多的金融核心以上的业务系统 往往会选择补偿事务,补偿事务处理在 30 多年前就提出了 Saga 理论,随着微服务的发展,近些年才逐步受到大家的关注。如果你要操作别的服务对应的库,不允许直连别的服务的库,违反微服务架构的规范,你随便交叉胡乱访问,几百个服务的话,全体乱套,这样的一套服务是没法管理的,没法治理的,可能会出现数据被别人改错,自己的库被别人写挂等情况。这个的意思,就是干脆不要用本地的消息表了,直接基于 MQ 来实现事务。

2023-06-30 18:01:21 81

转载 hystrix高可用架构:基于本地缓存的 fallback 降级机制

在 GetBrandNameCommand 中,run() 方法的正常逻辑是去调用品牌服务的接口获取到品牌名称,如果调用失败,报错了,那么就会去调用 fallback 降级机制。我们现在有个包含 brandId 的商品数据,假设正常的逻辑是这样:拿到一个商品数据,根据 brandId 去调用品牌服务的接口,获取品牌的最新名称 brandName。假如说,品牌服务接口挂掉了,那么我们可以尝试从本地内存中,获取一份稍过期的数据,先凑合着用。// 如果调用失败,报错了,那么就会去调用fallback降级机制。

2023-06-30 17:31:48 230

转载 Spring Session工作原理

Spring Session给我们提供了很好的分布式环境下资源共享问题解决思路,其基于Servlet 规范实现,业务使用时只需要简单配置就可以实现session共享,做到与业务低耦合,这都是以后我们项目开发中可以借签的设计理念。

2023-06-30 16:27:04 171

转载 WEB安全 之 Cookie安全策略

而解决的方法就是,在设置用户 id 的同时,再设置一个根据用户 id 生成的一个 token。虽然有这个方法,但是我经手的项目中却没有一个是使用这样的方法,因为这里对于服务器来说面有一个性能的问题,如果用户体量很大,那服务器就需要存储大量的 id 数据,而且,用户如果同时在多个地方登录,那是不是又要再做不同的判断处理。路径的参数是 Path,这里的意思是指定的某个路径这个 cookie 才能使用,这里的一般直接就是设置成 \ ,当前目录下都可使用,因为只要是当前域下的,其实都可以使用。

2023-06-30 16:16:11 709

转载 一文看懂eBPF|eBPF实现原理

eBPF,它的全称是“Extended Berkeley Packet Filter”。从名字看,你可能会觉奇怪,似乎它就是一个用来做网络数据包过滤的模块。其实这么想也没有错,eBPF 的概念最早源自于 BSD 操作系统中的 BPF(Berkeley Packet Filter),1992 伯克利实验室的一篇论文 “The BSD Packet Filter: A New Architecture for User-level Packet Capture”。

2023-06-15 19:58:35 747

转载 JVM三种编译器(Javac \ JIT \ AOT)

在 JVM 中有三个非常重要的编译器,它们分别是:前端编译器、JIT 编译器、AOT 编译器。前端编译器,最常见的就是我们的 javac 编译器,其将 Java 源代码编译为 Java 字节码文件。JIT 即时编译器,最常见的是 HotSpot 虚拟机中的 Client Compiler 和 Server Compiler,其将 Java 字节码编译为本地机器代码。而 AOT 编译器则能将源代码直接编译为本地机器码。编译速度上,解释执行 > AOT 编译器 > JIT 编译器。

2023-06-14 19:41:57 622

转载 GraalVM-云原生时代的JVM(Java)

阿里云使用GraalVM来加速它们的Java应用程序,并且利用GraalVM的云支持,在云环境中运行它们的应用程序。GraalVM的即时编译器采用了新型的JIT技术,能够在运行时对代码进行优化,从而提高应用程序的性能。总之,GraalVM是一个非常强大和灵活的工具,可以帮助开发者构建高性能、多语言和云原生的应用程序。这种机制可以防止恶意代码的传播,从而保证系统的安全性。GraalVM的云支持使得它可以在云环境中运行,这意味着开发者可以将应用程序轻松迁移到云上,并且能够利用云环境的弹性扩展和负载均衡等特性。

2023-06-14 19:32:21 4092

转载 【DNS】Linux上DNS缓存的开启和清理

DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。这消除了对远程 DNS 服务器重复查询的需要,并允许你的 OS 或浏览器快速解析网站的 URL。但是在某些情况下,例如:对网络问题进行故障排除,或者在更改 DNS 解析器之后,你将需要刷新 DNS 缓存。这将清除缓存的 DNS 条目,并根据新配置的 DNS 设置执行后续查找以解析域。

2023-03-01 11:41:53 3157 1

转载 java反射性能-调研

在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO、DTO、Entity、DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护。通常情况下,这类转换都是同名属性的转换(类型可以不同),我们更多地会使用 bean copy 工具,例如 Apache Commons BeanUtils、Cglib BeanCopier 等。在使用 bean copy 工具时,我们更多地会考虑性能,有时也需要考虑深浅复制的问题。本文将。

2023-03-01 11:35:33 1105

转载 java并发编程——AQS

你可能会问,不需要设置 node.prev = tail 吗,当然需要,但是此时 Node 结点是没有进入队列的,我们对 Node 结点操作不存在竞争问题,也就不需要保证 CAS 操作,只需要在后面设置 tail 指针时进行一次 CAS 操作,如果 CAS 操作失败表示 tail 已经被改变,重新设置 node.prev = tail,直至 CAS 操作成功从而保证了前置域的原子性。从源码中可以看出来,每次 CAS 操作之前设置的是当前的结点的前置结点 node.prev,即保证了前置域设置的原子性。

2023-02-23 15:24:55 474

转载 Java8内存模型及溢出场景—永久代(PermGen)和元空间(Metaspace)

从上述结果可以看出,JDK 1.6下,会出现“PermGen Space”的内存溢出,而在 JDK 1.7和 JDK 1.8 中,会出现堆内存溢出,并且 JDK 1.8中 PermSize 和 MaxPermGen 已经无效。方法区也是所有线程共享。注意,这里我指定了堆内存的大小为16M,所以这个地方显示的count=14(这个数字不是固定的),至于为什么会是14或其他数字,需要根据 GC 日志来判断,具体原因会在下篇文章中给大家解释。这段程序以2的指数级不断的生成新的字符串,这样可以比较快速的消耗内存。

2023-02-23 15:21:58 1753

转载 Java中transient关键字的详细总结

本文要介绍的是Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。1. 序列化Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输。

2023-02-23 15:13:00 258

转载 Java volatile关键字最全总结:原理剖析与实例讲解

即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。例如 a=1是原子性操作,但是a++和a +=1就不是原子性操作。Java中的原子性操作包括:(1)基本类型的读取和赋值操作,且赋值必须是值赋给变量,变量之间的相互赋值不是原子性操作。(2)所有引用reference的赋值操作。

2023-02-23 15:11:00 119

转载 Java8虚拟机内存模型JVM

参考资料:《深入理解Java虚拟机 JVM高级特性与最佳实践》第二版。

2023-02-23 15:08:53 508

转载 Java 泛型中的通配符

extends Animal>,指定了范围只能是Animal的子类,但是用List,没法做到缩小范围。我们说Java的泛型是伪泛型,那是因为泛型信息只存在于代码编译阶段,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程为类型擦除。首先其实我们并不关心传进来的集合内是什么对象,我们只关系我们需要转换的集合内是什么对象,所以我们传进来的集合就可以用List

2023-02-17 17:30:55 157

转载 Springboot 打印唯一traceId,Springboot+MDC+traceId日志中打印唯一traceId

想了解Springboot+MDC+traceId日志中打印唯一traceId的相关内容吗,W3C_0101在本文为您仔细讲解Springboot 打印唯一traceId的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Springboot,打印唯一traceId,Springboot,打印traceId,下面大家一起来学习吧。

2023-02-09 15:25:17 1023

转载 “ 字节码插桩 “ 技术简介

性能优化 ,插件化 ,热修复 ,等技术都需要用到" 字节码插桩 "相关技术;OOP 面向对象编程, 主要针对业务逻辑进行开发 ,大特点封装继承多态;大特点 封装 , 继承 , 多态;大特点封装继承多态;AOP 面向切面编程, 主要针对某个动作进行开发;如 : 给 Android 中所有的 Activity 添加安全策略 , 如果每个页面逐个手动添加 , 可能存在遗漏 , 并且会造成代码冗余;通过 AOP 面向切面编程 , 完成上述操作;

2023-02-03 16:22:03 1233

转载 面向对象设计的五个基本原则:细说 SOLID 原则

在程序设计领域,SOLID是由 Robert C. Martin(敏捷宣言作者之一,曾任敏捷联盟主席)在21世纪早期提出的便于记忆的首字母缩写,指代面向对象编程和面向对象设计的五个基本原则:单一功能、开闭原则、里氏替换、接口隔离以及依赖反转。在这一章我们只关注这些原则各自的定位和它们之间的关系。见下图:概括地讲(下文会具体展开):单一职责是所有设计原则的基础,开闭原则是设计的终极目标。里氏替换原则强调的是子类替换父类后程序运行时的正确性,它用来帮助实现开闭原则。

2023-01-09 12:18:42 858

转载 java固定大小队列的几种实现方式

最近团队有同学在开发中,遇到一个需求,统计最近10次的异常次数,咨询有没有类似的list。针对这个问题,记录一下几种处理方式。以上三种方式均可实现固定长度的list。FixedLinkedHashMap和EvictingQueue是基于内存的,所以仅支持节点情况。而基于Redis的list除了单节点情况,同样可以在分布式情况使用。

2022-11-17 17:14:55 2509

转载 Redis+Lua脚本实现分布式限流(Nginx+Lua IP限流)

在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关注【冰河技术】微信公众号,解锁更多【高并发】专题文章。注意:由于原文篇幅比较长,所以被拆分为:理论、算法、实战(HTTP接口实战+分布式限流实战)三大部分。理论篇:《》算法篇:《》本文是在《》一文的基础上进行实现,有关项目的搭建可参见《》一文的内容。小伙伴们可以关注【冰河技术】微信公众号来阅读上述文章。

2022-11-08 15:28:27 2448 3

转载 Redis 分布式限流器-计数器算法

水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。

2022-11-08 15:23:30 1000

转载 分布式限流 redission RRateLimiter 的使用及原理

redission分布式限流采用令牌桶思想和固定时间窗口,trySetRate方法设置桶的大小,利用redis key过期机制达到时间窗口目的,控制固定时间窗口内允许通过的请求量。

2022-11-08 15:09:05 3062

转载 Redisson分布式限流器RRateLimiter原理解析

因为公司的开放网关的限流模块就是基于Redisson开发的,之前看的版本源码与最新的已经有很大的不同,趁着整理知识点的机会下了最新版的源码看了一遍。限流这个说简单也简单,说复杂也复杂。不知道是不是我看的东西太少,我觉得redisson的限流器设计非常精巧,感觉把redis玩穿了。

2022-11-08 15:05:16 854

转载 Java常见5种限流算法及7种限流方式

最近几年,随着微服务的流行,服务和服务之间的依赖越来越强,调用关系越来越复杂,服务和服务之间的稳定性越来越重要。在遇到突发的请求量激增,恶意的用户访问,亦或请求频率过高给下游服务带来较大压力时,我们常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其中限流是不可或缺的一环,这篇文章介绍限流相关知识。这篇文章介绍实现限流的几种方式,主要是窗口算法和桶算法,两者各有优势。

2022-11-08 15:01:15 2213

转载 Java中4种经典限流算法讲解

本文主要介绍了Java中4种经典限流算法讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧−目录最近,我们的业务系统引入了Guava的限流组件,它是基于实现的,而令牌桶是非常经典的限流算法。本文将跟大家一起学习几种经典的限流算法。

2022-11-08 14:56:51 1132

转载 org.apache.http.NoHttpResponseException: failed to respond-服务端响应异常

多次上传文件时,偶尔会出现一次failed to respond异常,但是重试一次又正常了。

2022-08-15 10:42:09 7902

转载 **select加锁分析(Mysql)

目录前言 基础知识 InnoDB 锁类型 意向锁存在的目的? 加锁算法 快照读和当前读 分析 RC/RU+条件列非索引 RC/RU+条件列是聚簇索引 RC/RU+条件列是非聚簇索引 RR/Serializable+条件列非索引 RR/Serializable+条件列是聚簇索引 RR/Serializable+条件列是非聚簇索引 史上最全的select加锁分析(Mysql)前言大家在面试中有没遇到面试官问你下面六句Sql的区别呢sele

2022-03-01 11:37:24 661

转载 mysql环境RR隔离级别转换成RC的问题

RR隔离级别增加了间隙锁,避免了幻读,并且阻止了不可重复读,让同一个事务里面的查询和修改都是一致的.mysql默认的隔离级别就是RR. 虽然说RC隔离级别在同一个事务内会存在查询出不同数据的现象,但是这些数据都必然是提交过的,是真实存进硬盘的数据.所以也不用过分担忧,而且RC隔离级别反而降低了锁粒度,也不是毫无用处.oracle和sql server默认的隔离级别类似RC. 所以说也不是说RC就绝对不好,要看场景来选择,而这里只是简介,不打算深入. 操作流程说明:因系统高并发下,存在多个会话可能同..

2022-02-15 16:09:16 663

转载 MySQL 中隔离级别 RC 与 RR 的区别

1. 数据库事务ACID特性数据库事务的4个特性:原子性(Atomic):事务中的多个操作,不可分割,要么都成功,要么都失败; All or Nothing.一致性(Consistency):事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变;隔离性(Isolation):多个事务之间就像是串行执行一样,不相互影响;持久性(Durability):事务提交后被持久化到永久存储.2. 隔离性其中隔离性分为了四种:READ UNCOMMIT...

2022-02-15 16:05:36 2201

转载 互联网项目中mysql应该选什么事务隔离级别

引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:"你们项目中选了哪个隔离级别?为什么?"你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的场景,请继续往下阅读!Mysql默认的事务隔离级别是可重复读(Repeatable R.

2022-02-15 15:29:46 405

zdsb_jb51.rar

自动鼠标键盘点击器,附使用方法步骤 。

2020-08-08

博客下载工具

本地debug改了下,30多篇长文,1G大小的都完整下载成功了。博文源码有点bug,可能是htmlparser.jar版本更新引起。htmlparser.jar是一个爬虫工具包。 源代码里面部分写死了csdn域名,想dump其他博客请replace掉所有域名。

2017-06-22

SecureCRT_Por 7.3破解版

SecureCRT_Por 7.3破解版

2016-11-25

GitHub 3.0.12离线安装包

GitHub 3.0.12.0离线安装包

2016-02-17

WebService+Json DEMO

WebService+Json DEMO 包含net.sf.json ; axis webservice所有JAR包

2014-10-20

Activiti5.15 示例war包

Activiti5.15 示例war包 两个示例war包

2014-05-29

activiti-5.15.11.zip

activiti-5.15.11.zip 不包含sample war包

2014-05-29

Java调用C#com方法

Java调用C#com方法 C#COM DLL 不能被java直接调用,必须经过C++封装。 调用成功后,在其他机器上如何注册 请下载我的其他上传的gacutil.exe 和 regasm.exe 然后拷贝到其他机器上在dos下执行 gacutil 和regasm 命令注册即可

2013-08-13

C#&VB调用默认邮件程序发邮件

C#&VB调用默认邮件程序发邮件 源码 可加附件

2013-08-13

regasm.exe

regasm.exe 程序集注册工具 程序集注册工具 可单独运行

2013-08-13

gacutil.exe 可单独运行 .net 3.5

gacutil.exe 95kb版 可单独运行 C#com组件注册工具 65kb的不能单独运行

2013-08-13

CMD命令行高级教程

CMD命令行高级教程 CMD命令行高级教程 CMD命令行高级教程 CMD命令行高级教程

2013-08-06

注册表DOS命令

注册表DOS命令

2013-08-06

QTP10 插件破解脚本

QTP10-插件破解脚本

2013-08-06

Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结.pdf

Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结.pdf Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结.pdf

2013-05-15

oracle表空间详解

oracle表空间详解

2013-05-15

第10章 java 泛型.pdf

第10章 java 泛型.pdf

2012-05-17

第8章 Java的多线程机制.pdf

第8章 Java的多线程机制 详细信息 Java的多线程机制.pdf

2012-05-17

C++数据结构 课件 清华大学版 完全版

C++数据结构 清华大学版 课件 完全版

2011-05-30

C++数据结构 清华大学版 清华大学版

C++数据结构 清华大学版 C++数据结构 清华大学版

2011-05-30

C++ 数据结构 课件 清华大学版

清华大学出版 C++ 数据结构 相对有难度和深度

2011-05-30

空空如也

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

TA关注的人

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