自定义博客皮肤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)
  • 收藏
  • 关注

原创 【java】分布式多文件自平衡云传输系统

目录概述基本思想网络模块TransmissionNetNode资源模块LocalResourcesSectionInfo断点续传的基础 - NoReceiveSectionLeakageManager策略模块INodeStrategy - NodeStrategyIResourceStrategy - ResourceStrategy进度条模块IProgressManager - Progress...

2020-02-13 19:49:38 683

原创 【java】手写微服务框架之服务发现

目录概述微服务服务发现框架基本思想通信层CommunicationNetNodeNetMessageEMessageType注册中心RegistrationCenterCenterConversationRoundRobinIDealMessage-DealMessageServiceCacheHeartbeatConsumerAction服务提供者ProviderProviderConversa...

2020-02-12 18:09:00 1156

原创 【java】RPC与RMI框架

目录概述RMI框架注册MethodFactoryMethodDefinitionProxyAnntotation服务端RPCServerServerExecutorArgumentMaker配置文件客户端概述RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底...

2020-01-28 14:21:03 487

原创 【java】ConcurrentHashMap1.7源码详解

目录前言HashTable与ConcurrentHashMap数据结构前言随着高并发时代的到来,原有的HashMap已经不能满足基本的需求,在HashMap1.7中,多线程下可能出现的的死循环是致命的。但在java api的juc包中有这样一个类:ConcurrentHashMap,它基于HashMap1.7且线程是安全的,本篇博文会仔细对它进行讲解。强烈建议,在阅读本篇博文前,先阅读 Has...

2020-01-16 15:02:11 664 1

原创 【java】LinkedList1.8源码详解

目录前言概要属性构造方法核心方法get(int index)set(int index, E element)add(int index, E element)addAll(Collection<? extends E> c)remove(int index)contains(Object o)toArray()listIterator(int index)队列、堆栈总结前言Lin...

2019-12-26 00:19:16 247

原创 【java】ArrayList1.8源码详解

目录前言概要属性构造方法Arrays.copyOf()核心方法get(int index)set(int index, E element)前言ArrayList是java编程中最常用的工具类之一,它解决了普通数组无法自动扩容的问题,是一个非常简单而又强大的工具,本篇博文将带你揭开ArrayList1.8神秘的面纱。概要public class ArrayList<E> ext...

2019-12-25 00:06:00 185

原创 【java】HashMap1.8源码详解

目录前言概要数据结构Node类 普通结点TreeNode类 树结点属性构造方法核心方法get(Object key)put(K key, V value)resize() - 多线程的数据丢失问题remove(Object key)containsValue(Object value)forEach(BiConsumer<? super K, ? super V> action)总结...

2019-12-21 17:57:33 266

原创 【数据结构】红黑树

概述AVL树 是一种自平衡二叉查找树,它要求每个结点的左右子树的高度之差的绝对值(平衡因子)不超过1,所以它是一种非常严格的平衡二叉树;红黑树(Red Black Tree) 也是一种自平衡二叉查找树,它是许多“平衡”搜索树中的一种,它可以保证在最坏情况下基本动态集合操作的时间复杂度为O(lgn);红黑树在它的每个结点上增加了一个存储位来表示结点的颜色,可以是RED或BLACK;红黑树确保没有...

2019-12-19 16:52:27 340

原创 【java】HashMap1.7源码详解

前言Hashmap是java api中一个非常强大的工具类,所以剖析它的源码就显得很有必要了;强调,本篇博文面向的是熟知Hashmap基本使用的编程者。数据结构在jdk1.7中Hashmap的基本数据结构是数组+链表的形式。使用过Hashmap的同学都知道,它可以保存一对<key, value>,所以又是怎么放进数组的呢?答案是,在Hashmap中有一个内部类Entry,每添...

2019-12-17 22:30:30 596

原创 【java】深度解析单例模式

前言关于单例模式,请看菜鸟教程中的定义:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意单例类只能有一个实例。单例类必须...

2019-12-17 18:21:19 188

原创 【java】Integer.highestOneBit(int i)详解

前言作用:在Integer类中有这么一个方法,你可以给它传入一个 int 类型的数值,它将返回其二进制最高位1的权值。这个方法就是highestOneBit(int i)。请看下面的Demo,注意方法的输入与返回值:System.out.println(Integer.highestOneBit(7)); // 输出4System.out.println(Integer.highestO...

2019-11-27 00:10:11 302

原创 【java】模拟实现拦截器栈--代理机制

前言有关拦截器,请看下面百度百科的定义:java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之...

2019-10-16 18:46:21 231

原创 【java】定时器工具--多线程应用实例

前言在java编程中,定时器的应用场景是比较多的;例如,在C/S和B/S模式中,都存在服务器端和客户端之间的信息交流,若服务器需要定时从客户端获取某些信息,用以判断客户端的当前状态,那定时器的作用就体现出来了:每隔一段时间服务器就执行获取客户端信息的方法;因此实现定时器的代码是有必要的。基本思路定时器的实现必须借助多线程编程;线程一:用来进行定时功能;线程二:用来处理用户需要定时执行的方法;...

2019-10-16 12:16:28 207

原创 【java】properties文件解析工具

前言java编程中,常用的配置文件中除了xml文件(博文请见 XML文件解析工具 )以外,可能就properties文件用到的比较多,因此将properties文件解析方式写成工具是很有必要的。基本思路properties文件是以 key = value 格式来存储内容的,与java中的map很相似,因此我们可以将properties文件中的内容读取到map中保存;一个工程中可能存在多个pr...

2019-10-11 14:36:04 450

原创 【java】模拟实现Spring_IOC--jar包类注入

前言此篇博文专注解决非普通类的注入问题;jar包中的类为class文件,即,二进制文件,因此不能随意修改类中的代码,所以不能像普通类一样通过给目标类加上Component注解的方式,实现将该类的对象放入Bean容器中的操作;所以jar包中类的注入与普通类的注入方式不同。基本思路 @Bean public ClassOne getClassOne() { return new Cla...

2019-10-10 20:39:53 960

原创 【java】模拟实现Spring_IOC--普通类注入

前言本文意在模拟实现Spring之IoC(控制反转),从Spring框架的基本使用中来窥探IoC的实现原理,通过代码来完成类似的功能。若在一篇博客中完成Spring_IoC的代码,将会导致篇幅过长,因此将代码分为两部分来进行讲解:普通类的Bean注入jar包类的Bean注入本篇实现普通类对象的注入,下一篇则进行jar包类对象的注入讲解。基本思路先通过包扫描将指定包下的指定类对象放...

2019-10-09 19:09:35 306

原创 【java】包扫描工具

包扫描工具包扫描工具的作用是得到指定包下的所有文件,功能也仅限于此,但工具还需提供处理这些文件的方法,因此需要借助抽象方法来完成;包扫描运用范围很广,例如,Spring框架就是通过包扫描来实现将带有指定注解的类对象放入容器中的;因此将包扫描聚合为工具还是很有必要的。源码package com.dl.package_scanner.core;import java.io.File;im...

2019-09-26 13:44:19 283

原创 【java】XML文件解析工具--程序设计思想

工具化程序设计思想–XML文件解析工具XML解析对于讲述 xml 文件解析的基本方法不是本文的重点,本文旨在阐述“工具化程序设计思想”,即,通过工具化 xml 解析方法,以达到代码复用的目的。XML文档示例<?xml version="1.0" encoding="UTF-8"?><students> <student id="03191001" name...

2019-05-20 20:59:35 408

空空如也

空空如也

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

TA关注的人

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