E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
cJSON源码剖析
Redis
源码剖析
之跳表(skiplist)
最近要换新工作了,借着新老工作交替的这段窗口放松了下,所以专栏拖更了,不过我心里毫无愧疚,毕竟没人催更。不过话说回来天天追剧刷综艺的日子也很是枯燥,羡慕你们这些正常上班的人,每天都有正经工作内容,感觉你们过的很充实。[狗头]计算机领域有很多种数据结构,数据结构的存在要么是为了节省时间、要么是为了节省空间,或者二者兼具,所以就有部分数据结构有时间换空间,空间换时间之说。其实还有某些以牺牲准确性来达到
xindoo
·
2020-11-22 18:24
java
协方差矩阵数学原理,numpy计算协方差矩阵(np.cov)函数详解与
源码剖析
协方差矩阵详解以及numpy计算协方差矩阵(np.cov)协方差矩阵详解均值,标准差与方差由简单的统计学基础知识,我们有如下公式:Xˉ=∑i=1nXin\barX{\rm{=}}\frac{{\sum\limits_{i=1}^n{{X_i}}}}{{\rm{n}}}Xˉ=ni=1∑nXiS=∑i=1n(Xi−Xˉ)2n−1S=\sqrt{\frac{{\sum\limits_{i=1}^n{{{
Codefmeister
·
2020-11-22 10:04
笔记
numpy
矩阵
协方差
python
numpy
gdal
源码剖析
与开发指南pdf_QGIS二次开发笔记(4)——Linux和macOS环境配置
最近折腾了一下Linux和macOS下的环境配置,感觉Linux下因为有强大的包管理工具,总体上配置QGIS开发环境是比较方便地。而macOS虽然没有apt那么强大的工具,但是和Windows一样,依赖库可以直接下载,有坑但是总体上也比较方便。LinuxQGIS在Linux上配置环境是比较方便的,根据官方文档进行配置就可以了。依赖库可以如此安装apt-getinstallbisonca-certi
weixin_39764494
·
2020-11-22 01:37
linux安装qt
linux里qt画直线
phpcms二次开发下载镜像
qt
sqlite
mac
编译配置
Python 源码分析-运行机制
说明python源码版本:3.8.3参考:《python
源码剖析
》python运行机制当python代码运行时,会将代码转成一堆的字节指令,然后通过PyEval_EvalFrame函数执行里面的内容,源码如下
dawsonenjoy
·
2020-11-21 16:32
React SSR
源码剖析
关注「前端向后」微信公众号,你将收获一系列「用????原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术写在前面上篇ReactSSR之API篇细致介绍了ReactSSR相关API的作用,本篇将深入源码,围绕以下3个问题,弄清楚其实现原理:React组件是怎么变成HTML字符串的?这些字符串是如何边拼接边流式发送的?hydrate究竟做了什么?一.React组件是怎么变成HT
前端向后
·
2020-11-18 09:00
dom
vue
javascript
html
react
Spring Bean生命周期源码原理图解
源码剖析
生命周期过程bean的实例化属性填充及Aware接口检测设置依赖如果容器自定义了BeanpostProcessor的实现类,则执行处
·
2020-11-17 17:56
【go-libp2p
源码剖析
】Swarm拨号
1.简介libp2pswarm是用于libp2p网络的“低级”接口,可以更精细地控制系统的各个方面。swarm可以建立监听,也可以向其他主机拨号建立新的连接(比如和某个主机建立tcp连接),而这里所指的拨号其实就是建立出站连接的过程,它的实现逻辑较为复杂,我们在这里做一个梳理。2.代码结构仓库地址:https://github.com/libp2p/go-libp2p-swarm.git拨号相关代
Netwarps
·
2020-11-13 11:42
golang
github
程序员
安全
Flutter
源码剖析
(二):源码的阅读与调试环境配置
综述Flutter从架构上来说有3部分:用Dart写的Framework层,面向开发者用Java/Kotlin写的Embdder层(ForAndroid,iOS是OC/Swift),纯FlutterApp不需要关心用C++写的Engine层,提供Dart运行环境和底层绘制能力针对每个部分,对应的源码阅读环境不同,调试方法也不同。对于阅读环境,最重要的是能够正确地完成调用/定义的跳转。对于调试环境,
vimerzhao
·
2020-11-06 18:49
android
debug
python
java
dart
SpringSecurity专题从入门到
源码剖析
(一) 课程概览
第一章.SpringSecurity概述介绍视频教程地址:https://www.bilibili.com/video/BV1kT4y1F7Tc代码地址:https://gitee.com/crazyliyang/video-teaching1.概述基本上,在所有的开发的系统中,都必须做认证(authentication)和授权(authorization),以保证系统的安全性。生活实际的例子:A
Crzayliyang-架构Young
·
2020-11-04 01:18
SpringSecurity
SpringBoot
Spring
Java
阿里中间件seata
源码剖析
七:saga模式实现
目录状态机初始化启动状态机全局事务处理分支事务处理总结个人公众号:jinjunzhusaga模式是分布式事务中使用比较多的一种模式,他主要应用在长流程的服务,对一个全局事务,如果某个节点抛出了异常,则从这个节点往前依次回滚或补偿事务。今天我们就来看看它的源码实现。状态机初始化在之前的文章《springcloud+eureka整合阿里seata-saga模式》模式中,我定义了订单服务、账户服务和库存
jinjunzhu
·
2020-11-01 17:55
seata
分布式
剖析LiveData源码
上一篇文章解析了一下Lifecycle的
源码剖析
Lifecycle源码,因为Lifecycle的应用很广泛,而JetPack的一些其他组件也涉及到了Lifecycle,LiveData也不例外,所以就在第一个写了
Whanter
·
2020-10-24 22:21
Python 源码分析-常用数据类型
说明python源码版本:3.8.3参考:python
源码剖析
https://yq.aliyun.com/users/1709307684254463int在源码实现中,python3之前用int和long
dawsonenjoy
·
2020-10-24 11:53
Vue 进阶 [八] Vue
源码剖析
02 批量异步更新 & 虚拟DOM Diff 算法
想多记录一点东西,好像有点不知道怎么怎么总结了,今天听了完了一节Vue课程,主要关于Vue异步更新策略及虚拟Dom是源码的剖析,因为没有太专注可能还得捋一捋,或者全部看完之后再回头看。Vue高效的秘诀是批量异步更新和虚拟DOMVue批量异步更新策略概述项目中有很多组件,每个组件代表了一个watcher实例,在一个更新周期指的是事件循环这次的更新周期之内,可能有好多数据都发生变化了,因此也可能会有很
小智大愚
·
2020-10-13 15:19
vue
web
前端
vue
MyBatis
源码剖析
1.MyBatis架构原理1.1.架构设计我们把Mybatis的功能架构分为三层:API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式:(1)使用传统的MyBatis提供的API;(2)使用Mapper代理的方式数据处理层:负责具体的SQL查找、SQL解析、SQL执行和
cyd_0619
·
2020-10-13 10:58
mybatis
java
mybatis
数据库
python-django前端传递数据的三种格式_CBV源码分析_django模板语法
django1.CBV
源码剖析
#注意:轻易不要修改源码出了bug很难找到#urls.pyurl(r'^login/',views.MyLogin.as_view())'''CBV和FBV在路由匹配上的本质是一样的都是路由对应函数内存地址
LFFFFFFFFF
·
2020-10-11 15:37
web
python
django
String
源码剖析
(3)--方法篇
本文基于JDK1.8本篇文章主要是关于String类的内部方法的分析,目录如下:构造函数分析“比较”方法String对“+”的重载构造函数分析1.默认构造函数publicString(){this.value="".value;}该构造方法会创建空的字符序列,注意这个构造方法的使用,因为创造不必要的字符串对象是不可变的。因此不建议采取下面的创建String对象:Stringstr=newStrin
6plus
·
2020-10-11 06:52
taobao-pamirs-proxycache 缓存代理框架
源码剖析
本文先从此工具如何使用讲起,给大家带来点感知~再从
源码剖析
它的实现原理。
xupengwei
·
2020-10-11 01:48
STL
源码剖析
-实现自定义的allocator
为什么需要allocator整个stl的操作对象都是在容器中,而容易一定需要配置空间存放对象,我们通常使用容器的时候没有关心内存是如何分配的,者就是这篇文章要介绍的。这是vector头文件的定义template>classvector;可以看到在我们定义vector时,若没传allocator会使用默认的std::allocator,下面可以按照allocator的定义规范实现一个简单的空间配置器
cp3_1dbc
·
2020-10-10 12:19
Flutter事件分发
源码剖析
概述不管是原生Android、iOS还是JavaScript,只要是涉及手势交互都会有事件的分发处理。和原生Android、iOS的事件分发的步骤和原理一样,Flutter的事件分发总体也由手势触发、拦截和响应等几个部分构成。Flutter所有事件源头是hooks.dart文件的_dispatchPointerDataPacket函数,通过拦截屏幕的点击、滑动等各种事件,进而分发给原生代码进行响应
xiangzhihong
·
2020-10-09 13:27
flutter
android
ios
Flutter事件分发
源码剖析
概述不管是原生Android、iOS还是JavaScript,只要是涉及手势交互都会有事件的分发处理。和原生Android、iOS的事件分发的步骤和原理一样,Flutter的事件分发总体也由手势触发、拦截和响应等几个部分构成。Flutter所有事件源头是hooks.dart文件的_dispatchPointerDataPacket函数,通过拦截屏幕的点击、滑动等各种事件,进而分发给原生代码进行响应
xiangzhihong
·
2020-10-09 13:27
flutter
android
ios
58套
JAVA高级和架构师进阶课,微服务架构,亿级高并发,分布式架构,
源码剖析
系列,项目实战,设计模式实战,数据结构与算法,消息中间件,并发编程多线程,服务器系列,数据库,分布式事务,大型分布式综合电商项目实战等视频教程
sjtlhg1655
·
2020-10-09 12:56
Spring Bean生命周期
源码剖析
源码剖析
生命周期过程bean的实例化属性填充及Aware接口检测设置依赖如果容器自定义了BeanpostProcessor的实现类,则执行处
browser123
·
2020-10-08 11:36
java
spring
源码剖析
编程语言
阿里中间件seata
源码剖析
六:TCC模式中2阶段提交实现
目录TM通知TC事务状态TC通知RM分支事务提交RM处理TC提交事务请求总结上篇文章中,我们以TCC模式的demo为例,讲解了seata中全局事务的开启。在这个demo中,TM作为一个全局事务的管理者,会依次调用订单服务、账户服务和库存服务,如果其中一个服务抛出异常,TM就会调用失败抛出异常,这时就会通知TC,进而TC会通知RM进行事务的回滚。如果TM没有异常,就会通知TC进行事务的commit,
jinjunzhu
·
2020-10-08 10:07
seata
Mybatis的SQL执行流程
源码剖析
概述源码就是能够被用来执行,生成机器能够识别的代码,通过开源源码,可以引用其功能。重要性1、mybatis中的sql执行,不仅要知道返回的结果是什么,还需要知道这结果是怎么来的,经过了怎样的处理,只有知道了这样的原理,碰到问题才能更好的知道问题出在那个环节。2、能更好的扩展应用程序,可以做到代码的复用,减少开发成本和时间。3、学习其中的设计思想能够在其他应用得已应用。步骤源码阅读,可以从测试用例着
browser123
·
2020-10-02 22:33
mybatis
源码分析
java
编程语言
Linux MMC 驱动子系统简述(
源码剖析
)
1.LinuxMMC驱动子系统块设备是Linux系统中的基础外设之一,而MMC/SD存储设备是一种典型的块设备。Linux内核设计了MMC子系统,用于管理MMC/SD设备。MMC子系统的框架结构如下图所示,其中corelayer根据MMC/SD设备协议标准实现了协议。cardlayer与Linux的块设备子系统对接,实现块设备驱动以及完成请求,具体协议经过corelayer的接口,最终通过host
hueyxu
·
2020-09-29 20:00
SpringBoot原理深入及
源码剖析
传统的Spring框架实现一个Web服务,需要导入各种依赖AR包,然后编写对应的XML配置文件等,相较而言,SpringBoot显得更加方便、快捷和高效。那么,SpringBoot究竟如何做到这些的呢?接下来分别针对SpringBoot框架的依赖管理、自动配置和执行流程进行深入分析依赖管理问题∶(1)为什么导入dependency时不需要指定版本?在SpringBoot入门程序中,项目pom.xm
雪砺青松
·
2020-09-29 00:22
spring
源码剖析
之spring bean循环依赖
springbean循环依赖springbean循环依赖应该是spring源码中比较难的一块知识了,下面我们结合代码还有时序图,来进行分析,看下spring是如何优雅的处理springbean的循环依赖的。什么是bean的循环依赖我们都知道spring的IOC和DI,它可以帮助我们创建对象,并且可以帮我们自动注入需要spring管理的对象。然后会存在一种这样的情况,在对象A中需要依赖B,而在对象B
一个快乐小码农
·
2020-09-19 10:16
spring
java
spring
Java并发学习笔记12 ThreadLocal
bilibili-Java并发学习笔记12ThreadLocal基于java1.8.0P43_ThreadLocal底层
源码剖析
与解读本质上,ThreadLocal是通过空间换时间,从而实现每个线程当中都会有一个变量的副本
morningcat2018
·
2020-09-17 13:18
Java多线程
GDAL
源码剖析
(十一)之OGR投影说明
一、简介本文参考英文地址:http://www.gdal.org/ogr/osr_tutorial.html。OGRSpatialReference类和OGRCoordinateTransformation类主要用来提供定义坐标系统(投影和水准面)和转换坐标。这两个类都基于OpenGIS的坐标转换说明,并且使用WellKnownText格式来进行表述坐标系统。一些关于OpenGIS坐标系统的资料,
weixin_33937913
·
2020-09-17 10:39
c/c++
python
数据库
SpringBoot统一返回结构
*/publi
cJson
Result(){this.code="0";this.msg="操作成功!";}/***若没有数据返回,可以人为指定状态码和提示信息*@paramcode*@paramms
CodeWangBo
·
2020-09-17 10:33
SpringBoot
JDK1.7 HashMap
源码剖析
,循环链表是如何产生的
Map这样的KeyValue在软件开发中是非常经典的结构,常用于在内存中存放数据。众所周知HashMap底层是基于数组+链表组成的,不过在JDK1.7和1.8中具体实现稍有不同。今天我们只讲解JDK1.7版本的HashMap。1、HashMap的数据结构图是一个数组+链表结构2、HashMap成员变量/***Thedefaultinitialcapacity-MUSTbeapoweroftwo.*
掘客DIGGKR
·
2020-09-17 07:27
Java
HashMap
Apache Kylin 查询流程
源码剖析
一、Overview1.1、通过Kylin查询其中olap_model_6607769716595835175.json内容如下:{"version":"1.0","defaultSchema":"DEFAULT","schemas":[{"type":"custom","name":"DEFAULT","factory":"org.apache.kylin.query.schema.OLAPSc
ccllcaochong1
·
2020-09-17 04:56
kylin
从
源码剖析
useState的执行过程
长文预警,如果觉得前戏太长可直接从第三章开始看~本文基于React16.8.6进行讲解使用的示例代码:importReact,{useState}from'react'import'./App.css'exportdefaultfunctionApp(){const[count,setCount]=useState(0);const[name,setName]=useState('Star');/
weixin_33854644
·
2020-09-17 02:16
javascript
数据结构与算法
前端
音乐播放器歌词同步显示
transition-duration:600ms;}ul,li{list-style:none;padding:0;margin:0;}li.on{color:red;}audio{margin-top:10px;}letlr
cJSON
dhlq6286
·
2020-09-17 01:28
java
数据库
STL源码学习笔记(1):stack及自定义实现
详细参考《stl
源码剖析
》1、stack底层源码,摘自SGISTL:stl_stack.h#ifndef__SGI_STL_INTERNAL_STACK_H#define__SGI_STL_INTERNAL_STACK_H
super-god-boy
·
2020-09-16 14:48
coding
Language
STL源码剖析
配接器
stack
堆栈
容器
微信公众号实现消息推送
publi
cJson
ResultsendMessage(Stringcontent){//获得令牌//StringaccessToken="21_UrWTu7IQt5N5KFlnPRdI4ec4C3vPxyvchJQf5E-yBmFED-uEeT6CF5eLpj9yFY6wloZAP6bYmCBR784
举头忘明月
·
2020-09-16 14:02
问题总结
学习
微信公众号
消息推送
epoll底层红黑树使用部分
源码剖析
:为什么使用红黑树以及如何使用红黑树
我们知道epoll的底层使用了红黑树来管理文件描述符,为什么会选择红黑树这种结构呢?以下是个人理解:epoll和poll的一个很大的区别在于,poll每次调用时都会存在一个将pollfd结构体数组中的每个结构体元素从用户态向内核态中的一个链表节点拷贝的过程,而内核中的这个链表并不会一直保存,当poll运行一次就会重新执行一次上述的拷贝过程,这说明一个问题:poll并不会在内核中为要监听的文件描述符
Mr_H9527
·
2020-09-16 14:30
c++&服务端
【Linux 内核网络协议栈
源码剖析
】listen 函数剖析
listen函数仅供服务器端调用,把一个未连接的套接字转换为一个被动套接字,指示内核应接受指向该套接字的连接请求。1、应用层——listen函数#includeintlisten(intsockfd,intbacklog);/*sockfd是bind之后的套接口描述字,第二个参数规定了内核应该为相应套接口排队的最大连接个数*/2、BSDSocket层——sock_listen函数/**Perfor
selfimpr1991
·
2020-09-16 13:53
OpenSource
TCP/IP
epoll
源码剖析
epoll的实现主要依赖于一个虚拟文件系统:eventpollfs。epoll是个module,module的入口eventpoll_init,通过eventpoll_init初始化。在初始化的过程中,eventpollfscreate两个slub分别是:epitem和eppoll_entry。epoll使用过程中有几个基本的函数分别是epoll_create,epoll_ctl,epoll_wa
0Resurrection0
·
2020-09-16 12:04
操作系统
Linux
epoll
源码
文件系统
io复用
Redis
源码剖析
——ziplist的实现
有序集合对象ziplist为Redis中的压缩列表,是列表键和哈希键的底层实现之一,用于存储长度短的字符串和小整数。ziplist采用一段连续的内存来存储节点ziplist的表示因为ziplist的数据结构的长度是变化的所有没有特定的结构体,ziplist在内存中的布局如下entry也是不定长的,没有特定的结构体,entry在内存中的布局如下previous_entry_length的长度可以为1
Coding_Reading
·
2020-09-16 09:56
Redis源码剖析
从
源码剖析
RxJava基本工作原理(4),Schedule调度器的实现
目录Schedule调度器Schedule调度器rxJava的调度器还是比较复杂的,继承关系比较复杂不说,而且有很多内部类,绕来绕去的有点恶心。但是嘛,先把图画出来再说,跟着图的路线走,总不会迷路的。首先我们使用的schedule的方式就是.subscribeOn(Schedulers.io())那么就从这个IO()函数入口去看下,里面是个什么东西,@NonNullpublicstaticSche
Super-B
·
2020-09-16 08:23
源码
android
java
java
队列
android
多线程
STL各容器底层所使用的数据结构
C++STL的实现:1.vector底层数据结构为数组,支持快速随机访问2.list底层数据结构为双向链表,支持快速增删3.deque底层数据结构为一个中央控制器和多个缓冲区,详细见STL
源码剖析
P146
大学笑长
·
2020-09-16 07:02
C++学习
JSON解析之optJSONObject与getJSONObject的区别
*/publi
cJSON
ObjectoptJSONObject(Stringname){Objectobject=opt(name);returnobjectinstanc
泽阳ZMQ
·
2020-09-16 07:15
Android初探
【北京】低价出售C/C++经典书籍
都很新C++程序设计5元高质量C/C++编程指南8元C++对象模型10元STL
源码剖析
12元深入浅出MFC10元设计模式10元C++primer8元面向对象程序设计5元java语言基础教程5元C语言程序设计
bxyill
·
2020-09-16 07:49
各种区块链浏览器的地址总汇
www.omniexplorer.info/2.https://www.oklink.com/usdt二.BTC浏览器:1.https://btc.com/2.比特币/交易https://blockchair.com/3.bt
cJSON
-RPC
林胖胖哒
·
2020-09-16 04:41
Java
源码剖析
(22)--Redis 如何实现高可用
Redis如何实现高可用1)实现高可用的方式1.1)数据持久化1.2)Redis主从同步1.3)Redis哨兵模式1.4)Redis集群2)小结1)实现高可用的方式Redis高可用的手段主要有以下四种:数据持久化主从数据同步(主从复制)Redis哨兵模式(Sentinel)Redis集群(Cluster)其中数据持久化保证了系统在发生宕机或者重启之后数据不会丢失,增加了系统的可靠性和减少了系统不可
姜皓
·
2020-09-16 03:40
#
Java面试
#
Java中间件
redis
Java
源码剖析
(21)--Redis 如何实现消息队列
Redis如何实现消息队列1)实现消息队列的方式2)使用List实现消息队列3)使用Stream实现消息队列1)实现消息队列的方式在Redis中实现消息队列的方式有几种?早在Redis2.0版本之前使用Redis实现消息队列的方式有两种:使用List类型实现使用ZSet类型实现其中使用List类型实现的方式最为简单和直接,它主要是通过lpush、rpop存入和读取实现消息队列的,如下图所示:lpu
姜皓
·
2020-09-16 03:10
#
Java中间件
#
Java面试
redis
队列
java
Java
源码剖析
(23)--JVM 的内存布局和运行原理
JVM的内存布局和运行原理1)JVM的内存布局1.1)堆1.2)方法区1.3)程序计数器1.4)虚拟机栈1.5)本地方法栈2)类的生命周期2.1)加载阶段2.2)验证阶段2.3)准备阶段2.4)解析阶段2.5)初始化JVM(JavaVirtualMachine,Java虚拟机)顾名思义就是用来执行Java程序的“虚拟主机”,实际的工作是将编译的class代码(字节码)翻译成底层操作系统可以运行的机
姜皓
·
2020-09-16 03:10
Java
学习笔记
#
Java面试
jvm
java
面试
Java
源码剖析
(20)--Redis 怎样实现分布式锁
Redis怎样实现分布式锁1)分布式锁1.1)分布式锁的常见实现方式:2)单机锁3)使用Redis实现分布式锁4)锁超时如果在分布式环境下使用就会出现锁不生效的问题,需要使用分布式锁来解决。1)分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式,是为了解决分布式系统中,不同的系统或是同一个系统的不同主机共享同一个资源的问题,它通常会采用互斥来保证程序的一致性,这就是分布式锁的用途以及执
姜皓
·
2020-09-16 03:10
#
Java中间件
#
Java面试
STL
源码剖析
之_allocate函数
SGISTL提供的标准std::allocator中的_allocate函数代码如下:templateinlineT*_allocate(ptrdiff_tsize,T*){set_new_handler(0);T*tmp=(T*)(operatornew((size_t)(size*sizeof(T))));if(tmp==0){cerr<<"outofmemory"<
weixin_30325793
·
2020-09-16 00:21
c/c++
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他