自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【多文件自平衡云传输】框架效果演示

【多文件自平衡云传输】框架实现效果以下是在接收文件时加了0.2s的延迟的效果: 多文件自平衡云传输效果演示 框架基本结构图:框架涉及的包和类的分类截图:框架介绍:传统的服务器与客户端之间的逻辑,多个客户端维持与服务器的连接,向服务器请求资源信息,这样容易增大服务器端的压力。所谓服务器压力,即多个客户端同时向服务器请求资源,那么服务器需要同时向多个客户端发送资源,与每一个客

2020-08-20 15:04:14 252

原创 模拟RMI远程方法调用

RMI(Remote Method Invocation)远程方法调用客户端向服务器端发送一个“请求“,服务器端处理该请求并将结果返回给客户端。如果把请求看成是一个”本地方法“,在客户端执行该方法,而实质上,在服务器端存在该方法的”本体“。如上图所示,客户端通过代理,获取”代理对象“,执行相关方法,实质上是向服务器发送请求,请求客户端原本要执行的方法。服务器端维持一个”方法池“,将”远程对象“存储在池子中,起着RMI中注册表的作用。客户端连接服务器,网络发送请求需要将方法名称,参数类型,参数的值等信息

2020-07-03 10:01:06 212 1

原创 模拟Spring AOP之拦截器链

AOP (Aspect Oriented Programming)面向切面编程-----不修改源代码的情况下给程序动态统一添加功能.比如说,一个方法作为"切入点","切面"类中可以提供拦截方法分别对"切入点"方法之前和之后进行拦截,即不修改源程序,动态添加功能.本篇主要是模拟拦截器链的实现,相应实现的功能主要有:1.用户可以选择代理模式(JDK代理或者CGLIB代理);2.用户可以选择类和方法,进行拦截(通过映射关系);3.对于一个类的同一个方法,是允许形成拦截器链的;4.允许"前置拦截",

2020-06-27 20:11:40 343

原创 动态代理之JDK代理和CGLIB代理

代理模式为其他对象提供一个代理以控制对某个对象的访问。动态代理利用反射机制在运行时创建代理类。举个例子,首先产生一个接口:public interface ISomeInterface { String doSomething(String arg);}被代理的实际对象(接口的实现类):public class TargetClass implements ISomeInterface { public TargetClass() { } @Override public

2020-06-27 17:16:53 149

原创 编写一个简单的线程池

实现一个简陋的线程池本篇并不是对线程池的源码的模拟,而是基于线程池的基本思想实现的一个简陋的线程池。线程池的基本目的线程存在基本的三个过程(状态),即创建,运行,销毁。在C/S模式下(长连接),服务器端侦听客户端连接,每侦听到一个客户端连接请求,就需要产生一个线程,负责维护与客户端的通信。那么,若存在很多的客户端,就会产生大量的线程。再者,RMI(远程方法调用),RMI服务器每侦听到客户端的请求,就需要产生一个线程,完成对特定方法的调用,这个过程本质上是对一个方法的调用,所以线程会很快结束掉。若存

2020-05-15 17:20:26 357

原创 模拟Spring之循环依赖的实现

模拟Spring之循环依赖如果类与类之间存在依赖关系,比如说,A类中有B类类型的成员,B类中有C类类型的成员,C类中又有A类类型的成员,形成了一个“闭环”式的循环依赖关系。在这种情况下去处理的话,其实就对应着上一篇文章中提到的关于Bean注解的第三种应用场合。模拟Spring之Bean注解的引入也就是,类的对象可能暂时不可用,无法注入,因为我们不确定该类的成员是否已经注入。那么,这种情况下,...

2020-04-16 17:03:28 254

原创 模拟Spring之Bean注解的应用

模拟Spring之应用Bean注解上一篇文章是应用Compoent和Autowired注解实现类及其对象的注入工作。那只是初步,现在考虑这种情况,对于一个已经打包成Jar包中的类,由于不能添加Compoent注解,应该如何实现注入呢?又或者,倘若一个不加Compoent注解的普通类,能不能同样实现类对象的注入工作?解决方案:另外提供一个类,并在类中添加带Bean注解的方法实现注入。首先构建...

2020-04-13 16:27:22 139

原创 模拟Spring实现方法注入

模拟Spring实现方法的注入此篇是模拟Spring框架依赖注入的第一篇文章,主要是先实现对成员,方法的对应的类的注入工作。基本思路:将应用所涉及到的类及其对象,都存储到一个集合中,这个集合中的类对应的成员也存储在这个池子(集合)中,成员的初始化由集合中的类对象所给予;以后需要用到这些类的对象,直接从这个集合(池子)中取得。也就是说,我们需要构建一个容器(上下文),这个容器中存储类及其对...

2020-04-13 12:34:50 141

原创 小工具---包扫描

小工具之包扫描的实现包扫描的目的是希望以后直接用的时候,只需要提供一个包的名称,能够完成对包里面的类的扫描,遍历一遍。package com.mec.package_scan.test.test;import java.io.File;import java.io.IOException;import java.net.JarURLConnection;import java.net...

2020-04-13 08:34:28 186

原创 CSFramework---分发器(action的处理)

C/S开发框架之action的处理客户端向服务器请求“资源”, 服务器需要将“资源”准备好,并回送给客户端。比如说,针对用户登录这一操作,客户端将用户输入的账号,密码等信息发送给服务器,请求服务器确认用户合法性;那么,服务器需要在数据库中进行确认用户的合法性,并将确认结果回送给客户端。这里,对于客户端请求的系列操作代码,不是我们C/S工具可以做的,而应该是使用这个工具的开发者应该去实现的。但...

2020-03-21 15:36:43 178

原创 CSFramework---最外层(Server/Client)的实现

C/S开发框架之最外层(服务器端和客户端)的实现最外层是服务器端和客户端,也就是直接由使用C/S框架的用户使用的两个类。客户端—Client类与服务器端一样,先实现客户端最基本的功能:1.连接服务器(若连接失败,则应告知APP层);2.服务器异常宕机处理…连接服务器连接服务器是客户端第一要务,如果服务器都没有连接上,那么,后续操作根本就谈不上了。 public boolean c...

2020-03-19 17:17:12 153

原创 CSFramework---最外层(Server/Client)的实现

C/S开发框架之最外层(服务器端和客户端)的实现最外层是服务器端和客户端,也就是直接由使用C/S框架的用户使用的两个类。服务器端—Server类服务器端的编写,首先考虑服务器端应该提供的最基本的功能:1.启动服务器;2.关闭服务器;3.强制关闭服务器;4.显示客户端连接信息;5.显示客户端下线信息;6.显示客户端异常掉线信息;…服务器的启动和关闭服务器的启动和关闭是服务器端...

2020-03-19 16:10:09 159

原创 CSFramework---会话层(Conversation)的实现

C/S开发框架之会话层的实现通信层实现了最基本的网络信息的收,发,对端异常掉线的发现,这为后续工作打下了基础。而会话层的主要任务就是向对端会话层发送,并处理来自对端的网络命令。服务器和客户端之间的操作存在密切的逻辑关系,而两者又有不同,因此需要把会话层分为两部分,服务器会话层(ServerConversation)和客户端会话层(ClientConversation)。会话层基本功能实现上篇...

2020-03-19 10:33:28 453

原创 CSFramework---通信层(Communication)的实现

C/S 开发框架之通信层的实现CSFramework编写的主要目的是,为未来编写相应的服务器/客户端模式下的应用系统提供便利。也就是说,我们的CSFramework将完成最底层的相应工作,使得开发人员在使用此框架时,无需再编写底层操作的代码。最底层–通信层(Communication)的实现基于服务器端和客户端,双方之间需要进行信息的交互,也就是说,无论是服务器端还是客户端,都同时作为信息的...

2020-03-16 15:39:59 224

原创 串匹配问题之KMP算法

串匹配之KMP算法1.串匹配问题串匹配:在一个串中,查找指定子串第一次出现的位置(下标);最终得到的是下标,正确下标或者-1(表示指定子串不存在)。2.直接想法—暴力算法针对以上对串匹配问题的描述,我们可以很容易想到这么一个思路,即,从左到右一个一个进行匹配。比如说,原串为”abcdefghijklmn“, 子串为‘h’,这是最简单的例子。再比如说,原串为”aadaadaadaada...

2020-03-15 12:21:09 450

原创 三元组稀疏矩阵转置算法

三元组稀疏矩阵转置运算1.关于稀疏矩阵的解释(定义)矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵(sparse matrix),该比值称为这个矩阵的稠密度。摘自:https://baike.so.com/doc/5775258-5988034.html2.有关稀疏矩阵的空...

2020-03-12 16:39:08 4361

原创 对内存对齐模式的理解

对内存对齐模式的理解在学习结构体的时候,我们在定义一个结构体,例如,typedef struct STI {char id[9];char name[15];int age;char sex;int score;}STI;STI stu = {“123456”, “zhangke”, 18, 0, 90};经过上机验证会发现,sizeof(STI)的结果是36,而并不是33.而...

2019-12-09 12:47:34 204

原创 Complex类实现复数的加减乘除运算

Java实现Complex类(复数工具)复数工具实现复数的四则运算,即加减乘除,和简单的输出。进一步明确需求 :1.应该至少提供4种构造方法,分别是:无参,单参,双参和其他Complex类对象作为参数;2.提供对实部虚部的基本访问(Getters和Setters);3.简单输出格式为“(实部,虚部)” (ToString方法的覆盖);4.四则运算的每一个运算,应提供两种实现方案;以加法...

2019-10-30 18:23:55 4193 1

空空如也

空空如也

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

TA关注的人

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