奔跑的蜗牛@1997
码龄7年
关注
提问 私信
  • 博客:21,065
    21,065
    总访问量
  • 20
    原创
  • 649,697
    排名
  • 12
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2018-04-27
博客简介:

奔跑的蜗牛@1997

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得4次评论
  • 获得136次收藏
创作历程
  • 23篇
    2019年
成就勋章
TA的专栏
  • java
    8篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

loginxzf.rar

发布资源 2020.02.08 ·
rar

Netty中的三种Reactor(反应堆)( netty线程模型)

一、netty概述1、netty是什么? Netty是一个基于Java NIO的client-server网络服务框架,人们可以利用netty快速地开发网络应用,Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。2、netty的特点?一个高性能、异步事件驱动的NIO框架,它提...
原创
发布博客 2019.08.31 ·
1184 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

Netty序章之BIO NIO AIO演变

一、BIO1、BIO是什么?BIO 全称Block-IO 是一种阻塞同步的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。2、BIO 设计原理:服务器通过一个Acceptor线程负责监听客户端请求和为每个客户端创建一个新的线程进行链路处理,是一个典型的一请求一应答模式。若客户端数量增多,...
原创
发布博客 2019.08.30 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java实现zookeeper分布式锁

基本思路1 client调用create()方法创建“/locks/lock”临时顺序节点,注意节点类型是EPHEMERAL_SEQUENTIAL2 client调用getChildren("/locks",false)来获取所有已经创建的子节点,这里并不注册任何Watcher,只是为了看自己的是不是最小的节点如果是,便获得了锁。3 客户端获取到所有子节点Path后,如果发现自己在步骤1中...
原创
发布博客 2019.07.24 ·
564 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Java实现一个简易版RPC

准备知识:1 java 网络编程(这里使用的bio)2 java动态代理3 反射=================================通俗来说rpc就是:1. 客户端持有的是接口(但是没有持有实现);2.服务端放的是接口的具体实现以及接口;3.客户端把方法和方法的参数 以及其他参数 通过socket发送给服务端;4.然后服务端执行相对应的方法,最后再把执行结果返...
原创
发布博客 2019.07.24 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java中关于String的知识整理

1、JVM相关知识JVM的体系结构图:Java栈(线程私有数据区): 每个Java虚拟机线程都有自己的Java虚拟机栈,Java虚拟机栈用来存放栈帧,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。Java堆(线程共享数据区)...
转载
发布博客 2019.05.23 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

多线程(AQS)

1、JUC简介在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等,大大的提高了java的并发性能。2、JUC之AQSAQS(AbstractQueuedSynchronize...
翻译
发布博客 2019.04.29 ·
974 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

多线程的安全性

1、线程的安全性定义:当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的2、线程安全性的体现(1)原子性:提供了互斥访问,同一时刻只能有一个线程对他进行操作。(2)可见性:一个线程对主内存的修改可以及时的被其他线程观察到。(3)有序性:一个线程观察其他线程中的指令...
原创
发布博客 2019.04.27 ·
708 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HashMap源码解析

1、HashMap的数据结构在1.7版本 数组+链表在1.8版本 数组+链表+红黑树先看看hashMap在jdk 1.8的结构,如下图,用的是数组+链表+红黑树的结构,也叫哈希桶,在jdk 1.8之前都是数组+链表的结构,因为在链表的查询操作都是O(N)的时间复杂度,而且hashMap中查询操作也是占了很大比例的,如果当节点数量多,转换为红黑树结构,那么将会提高很大的效率,因为红黑树结构中...
原创
发布博客 2019.04.24 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

红黑树(java)

1、红黑树的定义
原创
发布博客 2019.04.23 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java多线程学习(一)

1、线程相关概念1.1线程的定义线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是,同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。1.2进程的定义进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统...
转载
发布博客 2019.04.23 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AVL树(java)

1、AVL树的定义AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽量降低二叉树的高度,提高搜索效率2、AVL树的特点(1)AVL的左右子树高度之差的绝对值不超过1(2)树中的每个左子树和右子树都是AVL树(3)每个节点都有一个平衡因子,任一节点的平衡因子只能是(-1、0、1)。(每个节点的平衡因子等于右子树的高度减去左子 树的高度 )(4)平衡二叉树的高度和结点数量之间的关系...
原创
发布博客 2019.04.22 ·
626 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

java之二叉树搜索树(BST)

1、二叉搜索树需满足以下四个条件:1.若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2.若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3.任意节点的左、右子树也分别为二叉查找树;4.没有键值相等的节点。如下图所示:2、查找二叉树的构建代码:package com.wd.digui;public class Wd_30 { publ...
原创
发布博客 2019.04.12 ·
686 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

树的遍历

1、树的遍历方式二叉树的定义是递归的,一棵非空的二叉树是由根节点、左子树、右子树3个基本部分组成的,因此遍历一棵非空的二叉树的问题可分解为3个子问题:访问根节点、遍历左子树和遍历右子树。遍历分为3种:遍历结果:(1)前序遍历二叉树: A B D E H J K M C F G(2)中序遍历二叉树: D B H E K J M A F C G(3)后续遍历二叉树: D H K M...
原创
发布博客 2019.04.08 ·
336 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

笔试题:大整数相乘

1、问题:有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。例子:输入72106547548473106236 982161082972751393输出70820244829634538040848656466105986748思路:参考代码:import java.util.Scanner;public class Test...
原创
发布博客 2019.04.08 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

笔试题: 获取一个数组的所有子串 数组里面元素不重复

1、问题:获取一个数组的所有子串数组里面元素不重复比如Input: nums = [1,2,3]Output: [ [3], [1], [2],[1,2,3], [1,3],[2,3],[1,2],[]]2、解题思路2.1递归的解法,相当于一种深度优先搜索,由于原集合每一个数字只有两种状态,要么存在,要么不存在,那么在构造子集时就有选择和不选择两种情况,所以可以构造一棵二叉树,左子树...
原创
发布博客 2019.04.08 ·
826 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java代码之归并排序

1、归并排序的基本思想归并排序的核心是采用分治法,即将一个长度为n的待排序列,分成n个长度为1的序列,(这n个长度为1的序列可以看成n个有序序列),然后两两归并,得到n/2个新的有序序列,在两两归并,如此重复,直到得到一个长度为n的有序序列位置(两两归并的过程也可以叫做二路归并)2、归并排序图解分而治之,先分后治:分的过程:将一个长度为n的待排序列,分成n个长度为1的序列,这n个长度为1的...
原创
发布博客 2019.03.16 ·
302 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

java代码之堆排序

1、堆排序的基本思想堆排序是对直接选择排序算法的一种改进,其思想为:对一组待排序记录的关键字,首先把它们建成一个大根堆或小根堆,从而输出堆顶的最小关键字(假设利用小根堆来排序)。然后对剩余的关键字在建堆,便得到次小的关键字,如此反复进行,直到全部关键字排成有序序列为止。2、堆排序图解堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(n...
原创
发布博客 2019.03.15 ·
352 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

树

1、树的基本概念树结构是一类重要的非线性数据结构,树中结点之间具有明确的层次关系,并且结点之间具有分支,类似于正真的树。在图形表示的树型结构中,对两个用线段(树枝)连接的相关联的结点,称上端结点为下端结点的父节点,称下端结点为上端结点的子结点。对同一个父结点的多个子结点互称兄弟结点,对从根结点到某个子结点所经过的所有结点称为这个子结点的祖先,对以某个结点为根的子树中的任一结点都是该结点的子孙。...
原创
发布博客 2019.03.10 ·
309 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java代码之排序算法知识概括

1、排序定义排序就是就是把一组无序的记录按照其关键字的某种次序排列起来,使其具有一定的顺序,便于进行数据的查找。2、排序分类:2.1如果按照排序过程中依照的不同原则对内部排序方法进行分类:插入排序、交换排序、选择排序、归并排序、分配排序2.2 如果按照其工作量来分类:简单的排序方法:其时间复杂度为O(n^2);先进的排序方法:其时间复杂度为O(nlog2为底n)基数排序:其时间复...
原创
发布博客 2019.03.10 ·
274 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多