自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (5)
  • 收藏
  • 关注

原创 从零开始写一个RPC框架

从零开始写一个RPC框架当前,互联网公司的应用基本都是基于微服务的,系统被拆分为多个分布式的服务,每个服务之间通过RPC远程调用来交互。常用的RPC框架为Dubbo、Spring Cloud的相关套件等。我们试着自己实现一套简易的RPC框架,加深自己的技术理解。技术选型为Netty、SpringBoot。客户端客户端的实现参考了Mybatis中Mapper的实现,通过ClassPathBea...

2020-03-06 09:36:31 523

原创 有序链表多路归并

有序链表多路归并Merge k Sorted ListsMerge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[1->4->5,1->3->4,2->6]Output: 1-&...

2019-08-31 13:41:47 365 1

原创 Kafka入门

Kafka是最初由Linkedln开发的,基于发布与订阅的消息系统。它一般被称为”分布式提交日志”或者“分布式流平台”。Kafka的数据是按照一定的顺序持久化保存的,可以按需读取。此外,Kafka的数据分布在整个系统里,具备数据故障保护和性能伸缩能力。Kafka的数据单元被称为“消息”,它相当于数据库里的一个“数据行”或一条“记录”。消息由字节数组组成。Kafka的消息通过“主题”进行分类...

2018-04-21 13:02:31 444

原创 LRU缓存的简单实现

LRU缓存的Java实现LRU是Least Recently Used的缩写,即最近最少使用。它将最近一段时间不使用的数据替换掉。LRU算法的提出基于一个事实:在前面几条指令中频繁使用的页面很可能在后面的几条指令中频繁使用。这里使用一个链表结构来保存元素的使用顺序,如果一个元素被使用过,那么它将被放到链表头的下一个节点,如果此时缓存满了,同时也要删除链表尾节点的前一个节点,具体实现如下:...

2018-03-23 20:54:17 305

原创 阻塞队列的简单实现

阻塞队列的简单实现阻塞队列是一种当队列满了和队列空了时,会阻塞的队列,简单的实现如下,实现了添加元素的操作(put)和取元素的操作(take),这里用到了JUC下的Condition和ReentrantLock类import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import

2018-01-18 21:00:48 1917

原创 JVM类加载机制

JVM类加载机制双亲委派模型 如果一个类加载器收到了类加载请求,它首先不会尝试自己去加载这个类,而是把类加载请求委托给父类加载器完成 每一层的类加载器都把类加载请求委派给父类加载器,直到所有的类加载请求都传递给顶层的启动类加载器 如果顶层的启动类加载器无法完成加载请求,子类加载器尝试去加载,如果连最初发起类加载请求的类加载器也无法完成请求时,将会抛出ClassNotFoundException

2018-01-08 22:05:45 226

原创 二叉搜索树(BST)

二叉搜索树(BinarySearchTree)一棵二叉搜索树是以一颗二叉树来组织的。对于它的每一个节点Node,其左子树的关键字最大不超过Node.key,其右子树中的关键字最小不低于Node.key,下面是它的Java实现:/** * Created by wukn on 2017/11/7. */public class BinarySearchTree<Key extends Comp

2017-12-27 21:39:50 219

原创 栈(Stack)

栈(Stack)栈(Stack)是一种基本的数据结构,它有先进先出的特性,有入栈、出栈等操作,下面给出栈的Java实现/** * Created by CvShrimp on 2017/10/21. */public class Stack<T> { private Node top; private int size = 0; private class Node {

2017-12-20 22:21:18 256

原创 计数排序(Counting-Sort)

计数排序(Counting-Sort)计数排序假设n个输入元素的每一个都是在0到k闭区间的一个整数,它的时间复杂度为O(n),下面是计数排序的Java实现:import java.util.Arrays;/** * Created by CvShrimp on 2017/11/11. */public class CountingSort { public static int[] c

2017-11-11 12:48:58 259

原创 快速排序(Quick-Sort)

快速排序(Quick-Sort)对于包含n个数的数组来说,快速排序是一种最坏情况下时间复杂度为O(n²)的排序算法。虽然最坏情况下的时间复杂度很差,但是快速排序通常是实际应用中最好的选择,因为它的平均性能非常好。 下面是算法导论中给出的快速排序的伪代码: QUICK-SORT(A,p,r)   if p < r   q = PARTITION(A,p,r)   QUICK-SORT(A,p

2017-11-02 22:22:08 391

原创 堆排序(Heap-Sort)

堆排序(Heap-Sort) (二叉)堆是一个数组,它可以被看成一颗近似的完全二叉树。树上的每个节点对应数组中一个元素。除了最底层外,该树是完全充满的,而且是从左向右填充的。堆排序是一种用堆来实现的排序算法,它的时间复杂度为O(nlgn),下面是堆排序的Java实现:import java.util.Arrays;/** * Created by CvShrimp on 2017/10/11.

2017-10-14 20:17:57 228

原创 插入排序(Insert-Sort)

插入排序(Insert-Sort)插入排序的时间复杂度为O(n²),算法思路为将待排序的数据一个个的插入已经排序的序列中,下面是它的Java实现/** * Created by CvShrimp on 2017/10/10. */public class InsertSort { public static void insertSort(int[] array) {

2017-10-10 21:59:49 432

原创 归并排序(Merge-Sort)

归并排序是一种比插入排序更加高效的排序算法,尤其是规模较大的时候,其时间复杂度为O(nlgn)而插入排序为O(n²),下面给出数组的归并排序的Java实现代码package com.cvshrimp.algorithms;/** * Created by CvShrimp on 2017/9/26. */public class MergeSort { public static vo

2017-09-28 21:02:23 283

原创 Java集合框架Collection

HashMap和HashTable的区别HashMap是多线程不安全的,HashTable是多线程安全的。HashMap继承自AbstractMap,而HashTable继承自Dictionary。而且HashMap可以用null的键值对,而HashTable则不能。

2016-05-15 14:37:04 328

原创 Linux中易混淆知识点

Linux中易混淆知识点’ ‘(单引号)和” “(双引号)的区别单引号不会对其内的内容进行转义,如lelouch,如果被单引号包含,则{lelouch},如果被单引号包含,则不会被转义成变量符号,变量的值也就无法取得 双引号会对其内的内容进行转义,如果定义了lelouch变量的值为6,则${lelouch}的实际上就表示为6$()和“(反引号)的区别首先,这两个都是用来做命令替换的,但是$

2016-05-14 11:53:48 423

原创 Linux常用操作

Linux命令ls 显示当前目录下的文件信息mkdir 建立目录mv 移动文件或者重命名文件cp 复制文件或者目录(-r)rm 删除文件或目录(-r)cd 进入目录. 当前目录chown 给用户授权,如chown ossuser:ossgroup ./test.sh chmod 改变文件或者目录的访问权限,如chmod 775 .

2016-05-10 21:25:59 363

Redis实战 高清中文pdf

本书深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用 Redis 来说不可多得的参考书籍。

2017-11-23

Deep Learning With Python(Jason Brownlee)

英文原版 Tap The Power of TensorFlow and Theano with Keras, Develop Your First Model, Achieve State-Of-The-Art Results

2017-11-15

Java虚拟机规范(Java SE 7)中文版

《Java虚拟机规范(Java SE 7版)》是Java领域最重要和最权威的著作之一,由Oracle官方发布,基于Java SE 7,对最新的Java虚拟机规范进行了完整且详细的讲解,是深度了解Java虚拟机实现细节的必读之作。由国内几位资深的Java技术专家联袂翻译。《Java虚拟机规范(Java SE 7版)》共7章,第1章从宏观的角度介绍了Java虚拟机与Java的关系与发展历程。第2章概览了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈异常处理、同步与注解等。第4章深入分析了用来表示编译后的类和接口的class文件格式,主要包括ClassFile结构、描述符与签名、常量池、字段、方法、属性、代码约束与class文件校验等。第5章定义了Java虚拟机启动以及类和接口的加载、链接和初始化过程。第6章阐释并列举了Java虚拟机指令集。第7章提供了一张以操作码值为索引的Java虚拟机操作码助记符表。

2017-11-09

HTTP权威指南中文版(高清电子版)

HTTP权威指南高清电子版 《HTTP权威指南》是2012年9月人民邮电出版社出版发行的图书,作者是David Gourley / Brian Totty 。该书详细解释了HTTP协议,包括HTTP是如何工作的。

2017-11-09

空空如也

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

TA关注的人

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