自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沐雨金鳞

Welcome!

  • 博客(595)
  • 资源 (20)
  • 收藏
  • 关注

原创 限流算法

计数器法:无法限制短时间的正常并发请求,无法限制短时间的超额请求 滑动窗口法:无法限制短时间的正常并发请求,可以限制短时间的超额请求 漏桶法:不管请求来的多快,让请求按相同速率请求出去 令牌桶算法:令牌按一定速率放进令牌桶,请求来,拿到就执行,拿不到就抛弃 计算器法一个counter值,每来一个请求counter++ 当一个请求到来时,计算他与第一个请求的时间间隔,如果没超过1分钟,并且counter已经为100,则抛弃该请求 当一个请求到来时,如果他与第...

2020-11-27 20:04:56 294

原创 Netty实现tcp服务

服务器端:package com.netty.io;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.netty.channel.EventLoopGroup;import io.netty.c...

2020-11-25 19:54:12 1161

原创 六、Alibaba sentinel之限流原理分析

1、找到该文件,打开2、代码如下:有一个TimeTicker线程在做统计,每1秒钟做一次。有N个RunTask线程在模拟请求,被访问的business code被资源key保护着,根据规则,每秒只允许20个请求通过。package com.sentinel.sentinel.test;import com.alibaba.csp.sentinel.Entry;import com.alibaba.csp.sentinel.SphU;import com.alibaba.cs..

2020-11-22 14:13:00 1017 1

转载 五、Alibaba sentinel项目结构

sentinel-core 核心模块,限流、降级、系统保护等都在这里实现 sentinel-dashboard 控制台模块,可以对连接上的sentinel客户端实现可视化的管理 sentinel-transport 传输模块,提供了基本的监控服务端和客户端的API接口,以及一些基于不同库的实现 sentinel-extension 扩展模块,主要对DataSource进行了部分扩展实现 sentinel-adapter 适配器模块,主要实现了对一些常见框架的适配 sentinel-demo 样例模

2020-11-22 13:18:29 327

原创 三、Alibaba sentinel dashboard控制台下载安装

1、去https://github.com/alibaba/Sentinel/releases下载版本的jar包2、启动jar包java -Dserver.port=8080 \-Dcsp.sentinel.dashboard.server=localhost:8080 \-jar target/sentinel-dashboard.jar3、打开网址:http://localhost:8080/#/login,默认账号密码都是:sentinel...

2020-11-22 13:05:31 895

转载 二、Alibaba sentinel资源和规则

资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。 只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。 大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。规则围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。 所有规则可以动态实时调整。...

2020-11-22 13:03:05 614

转载 一、Alibaba sentinel简介

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台

2020-11-22 12:57:43 1702

原创 1458. 两个子序列的最大点积

这道题并不难,记录这道题的原因是因为他提供了动态规划两个数组的基本思路:二维矩阵形式思考一个数组放一行,一个数组放一列,这是很普遍的思考方式class Solution { public int maxDotProduct(int[] nums1, int[] nums2) { // dp[i][j] int dp[][] = new int[nums1.length][nums2.length]; for(in.

2020-11-19 09:51:37 281

原创 42. 接雨水

自己写的第一种做法:每次计算每个高度之间的雨水量卒!class Solution { private int getdata(int []height, int i){ int res = 0; // despite begin and end for(int k=0; k<height.length; k++){ if(height[k] < i){ res+=1;

2020-11-18 09:40:27 182

转载 Spark的算子的分类

从大方向来说Spark 算子大致可以分为以下两类:Transformation 变换/转换算子这种变换并不触发提交作业完成作业中间过程处理。Transformation 操作是延迟计算的也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行需要等到有 Action 操作的时候才会真正触发运算。 Action 行动算子这类算子会触发 SparkContext 提交 Job 作业。Action 算子会触发 Spark 提交作业Job并将数据输出 Spark系统。从小方向来说Spark.

2020-11-17 13:42:39 692

转载 为什么spark比mapreduce快?

1、Spark vs MapReduce ≠ 内存 vs 磁盘其实Spark和MapReduce的计算都发生在内存中,区别在于:MapReduce通常需要将计算的中间结果写入磁盘,然后还要读取磁盘,从而导致了频繁的磁盘IO。 Spark则不需要将计算的中间结果写入磁盘,这得益于Spark的RDD(弹性分布式数据集,很强大)和DAG(有向无环图),其中DAG记录了job的stage以及在job执行过程中父RDD和子RDD之间的依赖关系。中间结果能够以RDD的形式存放在内存中,且能够从DAG中恢复,大

2020-11-17 12:40:00 598

转载 MySQL中,21个写SQL的好习惯

1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explainselectuserid,name,agefromuserwhereuserid=10086orage=18;2、操作delete或者update语句,加个limit(SQL后悔药)在执行删除或者更新语句,尽量加上limit,以下面的这条 SQL 为例吧:deletefro...

2020-11-16 21:35:57 150

原创 406. 根据身高重建队列

输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]][4,4]因为4最小,并且是第一个,所以固定放在索引4的位置上[5,0]前面没有比他大的,查看索引是否被前面比他数小的占了[5,2]前面有两个,索引往后走,除了比他小的数占的索引,走到第三个占下就行[6,1]前面有1个,同理走 ......重点:确定每次最小数的位置!!!import jav...

2020-11-16 10:52:56 143

原创 优化接口性能的八个建议

数据量比较大,批量操作数据入库 耗时操作考虑异步处理 恰当使用缓存 优化程序逻辑、代码 SQL优化 压缩传输内容 考虑使用文件/MQ等其他方式暂存,异步再落地DB 跟产品讨论需求最恰当,最舒服的实现方式...

2020-11-15 12:07:11 297

原创 647. 回文子串 -> 中心扩展法

class Solution { private int expand(String s, int index){ if(index == s.length()-1){ return 1; } // self int res = 1; if(s.charAt(index) == s.charAt(index+1)){ res += 1; ...

2020-11-15 12:06:35 117

原创 记一次被毙的毕设思路

大数据下 自定义多类型文件 自适应 动态 快速 上传的优化与实践 一种可插拔式的文件上传引擎的研究与开发 技术要求主要有以下几方面: 支持超大数据量 扩展性:配置自定义,适应各种开发环境需求 稳定性:除网络异常情况100%成功 准确性:数据无丢失 自适应:自适应算法优化各类型文件的上传速度 体验:实时进度感知、网络异常断点续传等 效率:从操作系统IO层面、数据序列化压缩层面、缓存层面、JVM多线程层面、切片合并逻辑优化层面,..

2020-11-15 12:05:51 302 1

原创 Collections.sort()使用了什么排序?

Collections.sort()点击进入:点击sort()进入:如果没有指定Comparator 进入Arrays.sort: 如果Comparator为null,则进入sort方法 看是否设置了LegacyMergeSort.userRequested为true 如果设置了则使用归并排序,如果未设置则使用TimSort(优化归并排序) 当LegacyMergeSort.userRequested==true,采用legacyMergeSort ...

2020-10-12 22:56:27 2499

原创 Java的Arrays.sort()方法到底用的什么排序算法

元素个数 <47 :插入排序 47 <= 元素个数 <286 : 快速排序 元素个数 > 286 :归并排序

2020-10-12 20:36:46 511

转载 反射为什么慢?

java反射之所以慢,根本原因是编译器没法对反射相关的代码做优化。我们都知道 Java 代码是需要编译才能在虚拟机里运行的,但其实 Java 的编译期是一段不确定的操作过程。因为它可能是一个前端编译器(如 Javac)把 *.java 文件编译成 *.class 文件的过程;也可能是程序运行期的即时编译器(JIT 编译器,Just In Time Compiler)把字节码文件编译成机器码的过程;还可能是静态提前编译器(AOT 编译器,Ahead Of Time Compiler)直接把 *.java

2020-10-11 21:19:52 1210

原创 不同的二叉搜索树

递归做的,666????

2020-10-11 12:43:18 162

原创 JDK和Cglib代理的区别

AOP底层原理:动态代理一、区别:JDK动态代理:基于反射机制,生成一个实现代理接口的匿名类,然后重写方法,实现方法的增强. 它生成类的速度很快,但是运行时因为是基于反射,调用后续的类操作会很慢. 只能针对接口编程的.public interface Movie { void play(); void sayHello();}//被代理类实现接口方法public class BabaiMovie implements Movie{ @Overrid.

2020-10-11 11:28:30 235

原创 简单工厂模式、工厂模式、抽象工厂模式

简单工厂模式简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。就是利用一个工厂,根据参数,传啥new啥,返回 "惠普鼠标" -> new HpMouse() "戴尔鼠标" -> new DellMouse()工厂模式工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。生产哪种...

2020-10-10 21:13:19 169

原创 合并二叉树

简单题 但是细品很有意思 递归的模版题啊!!!

2020-10-10 20:41:14 193

转载 MySQL数据库索引失效

表1:数据表结构 表2:数据表内容索引失效与优化1.全值匹配 2.最佳左前缀法则 3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描...

2020-10-10 20:21:14 319

转载 Tomcat Connector(BIO, NIO, APR)三种运行模式

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 。BIO  阻塞式I/O操作即使用的是传统 I/O操作,Tomcat7以下版本默认情况下是以BIO模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。配置如下(tomcat安装目录下的/conf/server.xml):<Connector port="8080" protocol="HTTP/1.1" connectionTimeout

2020-10-10 20:11:15 280

原创 搜索二维矩阵

这个题有一个很简单的解法:从左下角的18开始,如果target比18大,则向右走,如果当前值比target小,则向上走 如果到达边界还不找不到,则return false,否则就会找到return trueclass Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix.length == 0){ return false; }..

2020-10-10 13:53:39 155

原创 前缀树 Trie

摘自:leetecode208 实现前缀树Trie (发音为 "try") 或前缀树是一种树数据结构,用于检索字符串数据集中的键。一、应用:1. 自动补全2. 拼写检查3. IP 路由 (最长前缀匹配)4. T9 (九宫格) 打字预测二、 为什么使用前缀树三、Trie 树的结点结构四、常用操作1、向 Trie 树中插入键2、在 Trie 树中查找键3、查找 Trie 树中的键前缀...

2020-10-07 18:46:08 246

原创 设计模式七大原则

之前早已经学过了,不过根据名字很容易忘记实质性内容,简单总结一下: 单⼀职责原则 ⼀个类应该只负责⼀项职责 1、将类按功能拆分成多个类。 2、如果类内⽅法(功能)少,则没必要拆分,在⽅法上实现单⼀职责原则即可。 接⼝隔离原则 类实现的接⼝应该建⽴在最⼩接⼝上,不应该实现不需要的接⼝的⽅法 将大接⼝分解成小接口供类实现 依赖倒置原则 抽象不应该

2020-10-05 15:17:39 206

原创 HandlerMapping解析

Spingmvc中的HandlerMapping负责解析请求URL,对应到Handler进行处理(这里的Handler一般为Controller里的一个方法method,也可以为servlet或者Controller等)来看一个http请求的入口DispatcherServlet:DispatcherServlet继承FrameworkServlet,FrameworkServlet继承HttpServletBean,HttpServletBean继承HttpServlet。可以看出..

2020-10-04 15:09:02 6921

原创 三数之和

一开始用的递归做的,然后,,,,,,超时了????好吧,看了提示,说是双指针,那就做一下????,晚上宿舍聚餐去喽!!!import java.util.*;class Solution{ List<List<Integer>> res = new LinkedList<>(); Set<LinkedList<Integer>> set = new HashSet<>(); public List

2020-09-30 10:53:55 117

原创 如何用java写一个堆排序

至于啥是堆排序,这里就不细讲了,大家从网上查就可以了。第一步:给定一个数组,看成完全二叉树的形式(初始的堆结构) 给定一个索引,我们能够实现交换该索引在完全二叉树的位置 创建第一个方法,heapify // 递归交换数组中某一结点的值 private void heapify(int tree[], int n, int i){ /* tree:待排序数组 n:数组个数 i:某个结点

2020-09-28 15:15:07 254

原创 Kafka消息数据积压,Kafka消费能力不足怎么处理?

1、增加topic的partition数量,分发到其他结点,分散结点压力2、增多consumer group中consumer的数量,消费者数=分区数3、如果是下游的数据处理不及时:提高每批次拉取的数量。(拉取数据/处理时间<生产速度)...

2020-09-28 09:28:00 3072

原创 BASE 理论

BASE 理论(AP)BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中AP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障允许部分不可用但要保证核心功能可用,允许数据在一段时间内是不一致的,但最终达到一致状态。满足BASE理论的事务,我们称之为柔性事务。 基本可用 :分布式系统在出现故障时,允许损失部分可用功能,保证核心功能...

2020-09-28 09:12:24 972

转载 为什么Redis集群有16384个槽?

对于客户端请求的key,根据公式HASH_SLOT=CRC16(key) mod 16384,计算出映射到哪个分片上,然后Redis会去相应的节点进行操作!那大家思考过,为什么有16384个槽么?ps:CRC16算法产生的hash值有16bit,该算法可以产生2^16-=65536个值。换句话说,值是分布在0~65535之间。那作者在做mod运算的时候,为什么不mod65536,而选择mod16384?这个问题,作者是给出了回答的!地址如下:https://github.com/an...

2020-09-26 20:19:31 3864

原创 为什么ReentrantLock不能完全替代synchronized?

《java并发编程实战》上说是因为如果使用Reentrantlock时,你没有释放锁,很难追踪到最初发生错误的位置,因为没有记录应该释放锁的位置和时间。在JDK1.5中,synchronized是性能低效的。因为这是一个重量级操作,它对性能最大的影响是阻塞的是实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性带来了很大的压力。相比之下使用Java提供的ReentrankLock对象,性能更高一些。 到了JDK1.6,发生了变化,对synchronize加入了很多优化措施,有

2020-09-26 16:54:45 748

原创 LinkedBlockingQueue和ArrayBlockingQueue

相同:LinkedBlockingQueue和ArrayBlockingQueue都实现了BlockingQueue接口; LinkedBlockingQueue和ArrayBlockingQueue都是可阻塞的队列(内部都是使用ReentrantLock和Condition来保证生产和消费的同步;当队列为空,消费者线程被阻塞;当队列装满,生产者线程被阻塞.)不同:1、队列中的同步锁机制不同ArrayBlockingQueue中的锁是没有分离的,即生产和消费用的是同一个锁; 使用一个R.

2020-09-26 16:48:39 3366

原创 如何设置线程池的线程数?

合理的设置线程池的线程数需要针对不同的任务类型而定,任务类型可以分为cpu密集型、IO密集型和混合型。cpu密集型cpu密集型指的是线程处理任务时,cpu参与计算的时间比较多,这种情况下,如果设置的线程数过多,会增加上下文的切换次数,带来额外的开销。 线程数的设定公式是:线程数=(cpu核心数+1)。IO密集型IO密集型是指在处理任务时,IO过程所占用的时间较多,在这种情况下,线程数的计算方法可以分为两种:第一种配置方式:由于IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程

2020-09-25 20:19:57 945

原创 堆排序

https://img2018.cnblogs.com/blog/1469176/201903/1469176-20190329000545588-1486048945.gif/** * 堆排序演示 */class HeapSort { public static void main(String[] args) { // int[] arr = {5, 1, 7, 3, 1, 6, 9, 4}; int[] arr = {16, 7, 3, 20, 17,.

2020-09-25 14:53:12 248

原创 Java JMM 内存模型的三个特征(happen-before)

重点学习有序性????Java JMM 内存模型是围绕并发编程中原子性、可见性、有序性三个特征来建立的 原子性:就是说一个操作不能被打断,要么执行完要么不执行,类似事务操作,Java 基本类型数据的访问大都是原子操作,long 和 double 类型是 64 位,在 32 位 JVM 中会将 64 位数据的读写操作分成两次 32 位来处理,所以 long 和 double 在 32 位 JVM 中是非原子操作,也就是说在并发访问时是线程非安全的,要想保证原子性就得对访问该数据的地方进行同步操作,譬

2020-09-25 09:54:20 334

原创 HashMap和ConcurrentHashMap的索引计算

HashMap计算hash:hashcode32位,然后低16位异或高16位,得到hash值 hash &(n-1)计算索引(等价于Hash % n)计算hash:return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);计算下标,其下标值为:(n-1) & hashn = (tab = resize()).length;p = tab[i = (n - 1) & hash]

2020-09-25 09:33:37 962

faster rcnn流程图.png

自己写的,也是花费了大量精力,希望对您有帮助! faster rcnn流程图

2020-07-04

MongoDB参考手册.zip

MongoDB中文教程

2019-05-17

mybatis数据库逆向工程

mybatis数据库逆向工程mybatis数据库逆向工程mybatis数据库逆向工程mybatis数据库逆向工程

2018-07-11

mybatis中文教程

mybatis中文教程mybatis中文教程mybatis中文教程mybatis中文教程mybatis中文教程

2018-07-07

项目管理课件真题

项目管理课件真题项目管理课件真题项目管理课件真题项目管理课件真题项目管理课件真题

2018-05-29

算法PPT和常用算法手册

算法PPT和常用算法手册算法PPT和常用算法手册算法PPT和常用算法手册算法PPT和常用算法手册算法PPT和常用算法手册算法PPT和常用算法手册

2018-05-09

软件测试PPT加题目总结

软件测试PPT加题目总结

2018-05-09

C++代码快速入门

C++代码快速入门C++代码快速入门C++代码快速入门C++代码快速入门C++代码快速入门

2018-05-09

hadoop各种资料

hadoop各种资料hadoop各种资料hadoop各种资料hadoop各种资料hadoop各种资料

2018-05-09

数据挖掘学习PPT

数据挖掘数据挖掘数据挖掘数据挖掘数据挖掘数据挖掘数据挖掘数据挖掘

2018-05-04

C#学习笔记

C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记

2018-05-04

吴恩达机器学习课件

吴恩达机器学习课件吴恩达机器学习课件吴恩达机器学习课件吴恩达机器学习课件

2017-12-22

Linux网站搭建流程

Linux 网站搭建 关闭防火墙... [root@aliyun ~]# systemctl stop firewalld [root@aliyun ~]# systemctl disable firewalld

2017-12-22

数学建模教材(精品)

全书共三十二章,各章有一定的独立性,这样便于教师和学生按需要进行选择。 数学建模是对现实世界的特定对象,为了特定的目的,根据特有的内在规律,对其 进行必要的抽象、归纳、假设和简化,运用适当的数学工具建立的一个数学结构。数学 建模就是运用数学的思想方法、数学的语言去近似地刻画一个实际研究对象,构建一座 沟通现实世界与数学世界的桥梁,并以计算机为工具应用现代计算技术达到解决各种实 际问题的目的。建立一个数学模型的全过程称为数学建模。因此“数学建模”(或数学 实验)课程教学对于开发学生的创新意识,提升人的数学素养,培养学生创造性地应用 数学工具解决实际问题的能力,有着独特的功能。

2017-09-27

Linux操作系统实验教程_南大版

《Linux操作系统实验教程》是国防科技大学国家精品课程“操作系统”配套教材,系统地讲解了Linux操作系统原理和基于Linux的各种编程,特别是Linux操作系统内核编程。《Linux操作系统实验教程》内容分为三部分:第一部分介绍Linux操作系统原理;第二部分介绍10个基于Linux的实验;第三部分附录包含Linux环境下的操作及与编程有关的命令和函数列表。

2017-09-23

2016年考研核心考点——计算机组成原理

《2016 年考研核心考点命题思路解密 计算机组成原理》严格按照最新计算机考研 408 统考大纲的 计算机组成原理部分编写,涵盖大纲指定的所有考试内容。本书对统考大纲所涉及的知识点进行深入剖析 和总结,并精心策划和部署每一个章节,对每一个章节的考点做了独家策划。 本书每一个考点中的命题,绝大部分来源于历年名校计算机考研真题和统考真题,少部分来源名校期 末考试试题中的精华部分,是全国 408 统考大纲和高校考研真题的较好结合。为了提高考题的质量和解析 的准确度,参考资料采用以考研权威教材、习题、考研真题为主,多方借鉴众多高校从事多年教育的教师 课堂资料。梦享团队对每一个命题的思路和解题方法进行深入详细地讲解,并附上大量的图来帮助考生理 解记忆,力求考生能够通过掌握一个题目而达到举一反三,有利于考生利用更少的时间掌握更多的知识。 本书可作为考生参加计算机专业研究生入学考试的备考复习用书,也可作为计算机专业的学生学习计 算机组成原理的练习用书。

2017-09-23

2016年考研核心考点-----计算机网络

《2016 年考研核心考点命题思路解密 计算机网络》严格按照最新计算机考研 408 统考大纲的计算 机网络部分编写,涵盖大纲指定的所有考试内容。本书对统考大纲所涉及的知识点进行深入剖析和总结, 并精心策划和部署每一个章节,对每一个章节的考点做了独家策划。 本书每一个考点中的命题,绝大部分来源于历年名校计算机考研真题和统考真题,少部分来源名校期 末考试试题中的精华部分,是全国 408 统考大纲和高校考研真题的较好结合。为了提高考题的质量和解析 的准确度,参考资料采用以考研权威教材、习题、考研真题为主,多方借鉴众多高校从事多年教育的教师 课堂资料。梦享团队对每一个命题的思路和解题方法进行深入详细地讲解,并附上大量的图来帮助考生理 解记忆,力求考生能够通过掌握一个题目而达到举一反三,有利于考生利用更少的时间掌握更多的知识。 本书可作为考生参加计算机专业研究生入学考试的备考复习用书,也可作为计算机专业的学生学习计 算机网络的练习用书。

2017-09-23

空空如也

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

TA关注的人

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