自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java手写实现IOC

什么是依赖注入?平常的Java开发中,程序员在某个类中需要依赖其它类的方法。我们通常是new一个依赖类再调用类实例的方法set进去,这种开发存在的问题是new的类实例不好统一管理。所以Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是"控制反转"。通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员而控制反转是指new实例工作不由我们程序员来做而是交给Spring容器来做。注

2020-06-25 18:11:08 855 1

原创 Java手写实现AOP

什么是AOP?当然AOP的概念网上一查一大堆,我就不在这贴概念了,大家可以自己看看,在这我就说说自己理解的AOP。AOP(Aspect Oriented Programming)面向切面编程,即在不影响原有功能的情况下,进行的一次横向扩展。面向切面和横向扩展我们可以这么理解:有一个分装好的类,我们需要在类的方法执行前后插入额外的代码,要求是不破坏原始类,一种方法是我们可以去继承这个类每个方法前面去增强,但是若是多个方法,每个方法前都去写同样的增强代码不符合我们程序人的身份,所以我们使用AOP的方法,将

2020-06-22 13:19:51 2600 6

原创 多文件自平衡云传输框架(6)-- 接收的后续操作(进度条)

模块6-接收的后续操作结果显示图片接收模块的进度条显示IRecieveViewAction/** * * <ol> * 功能;view层显示的接口 * </ol> * @author Quan * @date 2020/03/07 * @version 0.0.1 */public interface IRecieveView...

2020-03-07 16:09:40 180

原创 多文件自平衡云传输框架(5)-- 资源的发送与接收

目录模块4-资源的发送与接收SenderResourceSenderSenderServerSenderReceiverReceiverServerReceiver工具类RandAcessFilePoolPortPool模块4-资源的发送与接收经过前三个模块的阐述,我们现在需要去处理资源提供端的发送和之后的如何接受资源提供端发...

2020-03-07 15:57:30 168

原创 多文件自平衡云传输框架(4)-- 资源请求(向资源管理中心和拥有资源的节点)

目录模块3-资源请求1.请求服务端向资源管理中心请求资源节点ResourceRequestorINodeSelectStrtegyNodeSelectStrategyIResourceAllocationResourceAllocation2.请求服务端向资源提供端请求资源片段ISendSection模块3-资源请求1.请求服务端向资源管理中心请求资源节...

2020-03-07 15:24:46 206

原创 多文件自平衡云传输框架(3)-- 资源节点与资源的关系

请允许我用一张图来形容资源节点与资源的一个关系:这只是一个拥有资源端,当拥有很多的云节点时,其机制相同,但接受到完整文件的速度将大大提升。...

2020-03-06 21:17:21 267

原创 多文件自平衡云传输框架(2)-- 传输中资源的表示(资源的表达形式以及断点续传的基础)

目录模块1传输中资源的表示ResourceBaseInfo类FileSectionResourceStructInfoFileSectionInfoIReceiveAndSendReceiveAndSendXMLEditorByteString断点续传的基础断点续传UNreceiveSectionInfoUnReceivedFileSect...

2020-03-06 16:03:43 249

原创 多文件自平衡云传输框架(1)-- 思想的阐述

多文件自平衡云传输框架“云”技术思想1961年,美国计算机科学家约翰·麦卡锡( John McCarthy)提出了把计算能力作为一种像水和电一样的公用事业提供给用户的理念。2011年,美国国家标准和技术研究院提出了云计算的概念,认为云计算是一种资源管理模式,能以广泛、便利、按需的方式通过网络访问实现基础资源(如网络、服务器、存储器、应用和服务)的快速、高效、自动化配置与管理。我认为的“...

2020-03-06 16:03:26 351

原创 手写框架之服务发现

概述框架框架,于我而言,就好似于一间房的框架,其外部是规范统一的,其内部是可以装饰任意风格的。就好像有木结构房子架构、砖混结构的、钢筋混凝土架构的,以及现在所听到的3D打印的房架构都均是立体的建筑框架。而内部的装饰则是可以随个人的喜好变化的。概括下来框架就是给人感觉的看似呆滞但又活泼的词汇。就好像我们在写Java代码的时候要求要给外部统一使用的接口(类比于墙体架构),但内部可由各自需求选择...

2020-03-05 12:30:16 820 1

原创 ThreadLocal的深刻理解

protected T initialValue() { return null; } public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ...

2020-02-14 14:59:38 155

原创 RMI(远程方法调用[RemoteMethodInvacation])

RMI:远程方法调用(Remote Method Invocation)。能够让在某个java虚拟机上的对象像调用本地对象一样调用另一个java 虚拟机中的对象上的方法。这是一种基于网络的技术;本地机执行一个函数,而这个函数实质上是在服务器端的。也就是说,表面上是客户端在调用一个函数,但本质上是服务器在执行这个函数,并通过网络返回函数的执行结果。几个基本问题可以确定:1、建立服务器;2...

2019-11-01 23:55:18 283

原创 代理机制(CglibProxy和JDKProxy)

意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上(RMI)。比如在这个方法执行时的前后进行前后处理(aop)。何时使用:想在访问一个对象时做一些控制。如何解决:增加中间层代理层proxy。JDKProxy,主要用来对接口及接口对象进行代理。public class DirectJDKProxy { ...

2019-10-27 14:41:05 197

原创 Java手写模拟IOC--依赖注入模拟实现(方法的注入)

spring--方法的注入注:请先看普通类的注入,如果对普通类的注入了解,可以直接看这个文章在此PO上 上文链接普通类注入继上次写了普通类的注入实现之后,有人就可能问了,如果我的类里面有一个成员需要注入,而这个成员是jar包里面的类类型,要如何生成呢,你总不能去修改jar包去给加注解吧,是,的确我们不能修改jar包,但是也不能代表这种注解的方法在jar类行不通,这时,我们可以建起一个外...

2019-10-17 15:43:05 335

原创 Action的处理-分发机制

在服务器客户机模式中,当客户机发送一个请求客户端应当如何处理呢?比如客户端发送一个登录的请求,服务器端应当去调用处理登录的方法,即服务器就要根据请求做出对应的响应。 实际上其过程就是客户机上执行某一个方法,将方法返回值,通过网络中传输的流的方式传输给服务器,服务器找到该请求对应的响应方法,并执行,将结果再次通过字节流的方式传输给客户机!以此来进行通信。但是客户端的请求是多种多样的,我们...

2019-09-26 21:09:10 605

原创 工具-----Java 扫描指定包下类 (包括jar包中的java类)

Java 扫描指定包下类 (包括jar包中的java类)在某些场景中,我们需要得到某个包名下面所有的类,不仅仅是我们自己在写的包下面java类还有一些jar包(一些第三方提供的jar包里的类,一些是自己写的类)可以看下图,其结构如此:比如我们想得到PackageScanner.java这个类执行这个类打印出的URL即目前的包的位置的一串字符串,其中replace方法时...

2019-09-24 20:58:33 2587

原创 KMP算法详解--快来康康

自己记下,以免忘记引入首先我们来看一个例子,现在有两个字符串A和字符串B,问你在A中是否有B,有几个?为了方便叙述,我们给出例子:A=”abcaabababaa”B=”abab”那么普通的匹配是怎么操作的呢?我们想到的肯定是暴利匹配法即一位一位地比,暴力匹配算法下面请看暴利匹配的核心代码:public static int ViolentMatch(char[] s, char[...

2020-03-24 23:00:58 423

原创 NIO 网络编程之群聊系统

NIO -- 群聊系统基本要求群聊系统实现服务器端和客户端之间的数据简单通讯(非阻塞)。 实现多人群聊 服务器端:可以监测用户上线、下线、、并实现消息转发。 客户端:可无阻塞发送消息给其他所有用户,同时可以接受其他用户消息(由服务器转发得到)。实现思路先编写服务器,服务器启动监听、 服务器可接受客户端信息进行转发 再编写客户端,连接服务器、发送消息、接受消息具体代码服...

2020-03-20 21:16:46 294

原创 JVM学习(6)-- 性能优化及总结

目录性能优化及总结JVM图解GC优化垃圾收集发生的时机实验GC日志文件分析工具调优最佳指南G1(借鉴)高并发场景分析JVM性能优化指南常见的问题及解答内存泄露和内存溢出的区别youngGC会有stw吗major gc和full gc的区别G1与CMS的区别是什么什么是直接内存垃圾判断的方式不可达的对象一定要被回收吗?f方法区中...

2020-03-14 15:42:47 266

原创 JVM学习(5)-- JVM参数及分析工具

JVM参数及分析工具

2020-03-14 11:29:02 299

原创 JVM学习(4)-- GC(Garbage Collection 垃圾收集)

GC(Garbage Collection 垃圾收集)如何确定一个对象是垃圾引用计数法对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。弊端:如果AB相互持有引用,导致永远不能被回收。可达性分析通过GC Root的对象,开始向下寻找,看某个对象是否可达;能作为GCroot的:类加载器、Thread、...

2020-03-13 16:46:33 266

原创 JVM学习(3)-- JVM内存模型

目录JVM内存模型内存模型与运行时数据区图解对象创建所在的区域survivor区详解old区详解对象生命周期图解常见问题如何理解Minor/Major/Full GC为什么需要Survivor区?只有Eden不行吗?为什么需要两个Survivor区新生代中Eden:S1:S2为什么是8:1:1?使用工具查看内存模型方法取内存溢出JVM内存...

2020-03-13 15:54:47 179

原创 JVM学习(2) -- 运行时数据区

目录运行时数据区(Run-Time Data Areas)官网概括图解常规理解方法区(Method Area)堆(Heap)虚拟机栈(Java Virtual Machine Stacks)程序计数器(PC Register)本地方法栈(Native Method Stacks)结合字节码指令理解虚拟机栈和栈帧指向关系栈指向堆方法区指向堆堆...

2020-03-13 14:11:05 217

原创 JVM学习(1)-- 类加载

目录JDK、JRE、JVM的关系.class字节码文件类加载机制装载(load)链接(link)初始化(initialize)类加载机制图解类加载器(ClassLoder)双亲委派机制JDK、JRE、JVM的关系JDK(Java Development Kit)是Java的开发工具包,包括JRE(Java Runtime Environment Java...

2020-03-13 11:51:09 213

原创 工具-----Java文件创建

磁盘上文件的创建工具package com.mec.util;import java.io.File;import java.io.IOException;public class CreateFileUtil { public static boolean createFile(String destFileName) { File file = ne...

2020-02-15 16:15:55 133

原创 为什么java匿名内部类和局部内部类访问局部变量必须声明为final?

一、问题的发现:当然我是在遇到这个问题之后才发现的,请看下面这个不被编译器通过的代码以及提示:Java:Cannot refer to the non-final local variable holderItemNews defined in an enclosing scope(Java:不能引用在封闭范围内定义的非最终局部变量持有者)二、问题的分析与解决:s...

2019-11-24 16:31:47 313

原创 工具-----滴答滴答(Java计时器)

Java计时器一、作用:计时器也就是用来计时的东西。当你需要隔一段时间去干一件事的时候就可以用到它,比如:当某拼夕夕网站的抢购在一段规定的时间内需要结束时。 比如某宝的页面需要在一段规定的时间里刷新页面时。 当你设置的闹钟在规定时间将你叫醒。而此时我们要做的事可以写成一个接口,由用户规定干什么事情。二、实现原理:wait(); 调用此方法将使该线程进入阻塞态,直到被not...

2019-11-22 18:19:05 338

原创 序列化与反序列化

一、序列化与反序列化概念:将对象转为字节序列的过程称为对象的序列化。 将字节序列转为对象的过程称为对象的反序列化。作用:让对象离开内存空间,入住物理硬盘,以便长期保存。待它们被需要时反序列化在进入内存。比如:常见的是Web服务器中的Session对象,假设当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬...

2019-11-21 17:54:33 187

原创 从汇编看volatile

在今天这个天气并不晴朗,但依然很开心的日子里,我们一起透过汇编看volatile.首先一些基础知识volatile是一个类型修饰符。比如:private volatile int goon;作用:确保某变量不会因编译器的优化而去读寄存器的值,且要求每次重新去读它所在真正空间的值。那什么是编译器的优化呢?(请看下面我的理解)编译器的优化:在一个线程里,当读取一个变量时,为提高...

2019-11-14 00:53:12 493 1

原创 工具-----计算机容量单位换算

我们可以通过File来获取本机的盘信息。执行下面这段代码得出的是容量的位信息,我们看起来很难受,所以我们可以自己写一个转化的工具,将B(字节)转化为 KB、M、GBFile[] drivers = File.listRoots(); for (File f : drivers) { System.out.println(f); ...

2019-11-09 15:52:16 594

原创 Java 模态框(JDialog) 结合RMI

模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。一般来说,在应用程序中,对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。比如类似这种:这种就相当于是模态框,即此对话框打开时不允许对其他对象进...

2019-11-09 14:48:52 789

原创 工具-----用Gson的Json字符串

Json一种非常常用的数据交换方式,易于人阅读和编写。同时也易于机器解析和生成。JSON 与 对象的关系:其实,可以这么理解:JSON 是 对象的字符串表示法,它使用文本表示一个对象的信息,本质是一个字符串。比如:varobj={a:'Hello',b:'World'};//这是一个对象,注意键名也是可以使用引号包裹的。varjson='{"a":"Hello...

2019-10-27 13:29:26 297

原创 缓冲区

计算机中的缓冲区:缓冲器为暂时置放输出或输入资料的内存。 缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。 缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。当然,上面是计算机上的缓冲区,总的来说计算机中的缓冲区就是...

2019-10-21 22:47:14 1575

原创 工具之-----Properties文件配置解析

package com.HTT.properties;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Properties;import jav...

2019-10-21 13:56:33 115

原创 设计模式-----单例模式(全)

什么是单例模式?单例模式是为确保一个类只有一个实例,并为整个系统提供一个全局访问点的一种模式方法。我们可以得到以下信息在任何情况下,每个单例类只能有一个实例对象。 单例类为整个系统提供者唯一的实例。[比如在计算机系统里可以连接多个打印机,但是只能有一个管理打印机的池子,来避免两个打印作业输入到一个打印机中。]1. 多线程安全单例模式实例一(不使用同步锁):public cl...

2019-10-21 13:45:22 161

原创 JavaScript 函数、原型和原型链详解

原型和原型链详解一、JS函数的四种含义:首先执行一段代码:function Fun() {};var fun1= new Fun(); console.log(fun1 instanceof Fun);//其执行结果为true;说明JavaScript里面确实存在着类与对象(fun1为对象,Fun为类)。fun1.prototype //undefined;Fun.p...

2019-10-19 16:46:05 650

原创 java 锁及同步与并发

1. 并发性 :是指两个或多个事件在同一时间间隔内发生;即在不同的CPU时间片中运行。2. 进程同步 :是对多个相关进程在执行次序上进行协调,使并发执行的诸程序之间按照一定的规则共享系统资源,并能很好的相互合作,使程序的执行具有可再现性。3. lock.wait(); : 是将持此锁的进程阻塞,并释放锁。当该线程被其它线程notify()后,将再次进入lock锁块,而进一步对lock上锁...

2019-09-19 11:24:10 130

原创 排序集锦

(快速排序,堆排序,希尔排序,选择排序,交换排序,插入排序)分为.h ,.C文件可以持有对代码的持有权下面是.h文件#ifndef _STRIGHTINSERTSORT_H_#define _STRIGHTINSERTSORT_H_#define QUICK_SORT 0#define HEAP_SORT 1#define SHELL_SORT...

2019-03-11 18:27:54 97

原创 贪吃蛇(C语言)

首先,我们是用turboC来写的,因为turboC中有gotoxy();和bioskey();函数可以简单的去描绘图形。和判断键值;此版贪吃蛇是这样的:蛇是用数组装起来的,一共给了2000,因为turboC界面是80*25的。 蛇分为蛇头和蛇尾,蛇头用来在接受键值后控制方向和或改变蛇的状态(例如暂停、加速、吃食物),蛇尾负责移动以及增加蛇的长度。 蛇吃一个食物50分。 用0表示改地方...

2019-02-11 10:25:13 264

原创 C语言之简易学生信息管理程序

首先就学生信息管理程序来说就应该先要去确定其需要的功能。下面的程序中给了这几个功能:写入(一开始的写入); 插入(在已有信息的基础上根据需要插入); 删除(删除指定信息的学生信息); 显示(显示链已有的信息); 将信息存放至文件; 将文件的学生信息读出至链中;此次用的是带头节点的链表:结构体中存放的有{学号,名字,曾用名,身份证,成绩}#include &lt;std...

2019-01-31 15:47:49 952

原创 文件的写入与读出(1)(fprintf 和 fscanf)

fprintfprintf是C/C++中的一个格式化库函数,位于头文件<cstdio>或<bits/stdc++.h>中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream...

2019-01-31 15:21:37 1259

空空如也

空空如也

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

TA关注的人

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