-
C#中使用ArrayPool和MemoryPool实例
对资源的可复用是提升应用程序性能的一个非常重要的手段,比如本篇要分享的 ArrayPool 和 MemoryPool,它们就有效的减少了内存使用和对GC的压力,从而提升应用程序性能. 什么是 ArrayPool System.Buffers 命名空间下提供了一个可对 array 进行复用的高性能池化类 ArrayPool<T>,在经常使用 array 的场景下可使用 ArrayPool<T> 来减少内存占用,它是一个抽象类,如下代码所示: public abstract class
-
C++栈的数组实现代码
栈的抽象数据结构.栈的成员函数需要包括这几个基本的函数:initializeStack(),isEmptyStack(),isFullStack,push(),pop(),top() 其功能如下: initializeStack():初始化栈 isEmptyStack():判断栈是否为空 isFullStack():判断栈是否已满 push():将一个元素压入栈中 pop():删除栈顶元素 top():获得栈顶元素 C++中用抽象类作为基类实现ADT如下: template<class Ty
-
JavaScript函数执行、作用域链以及内存管理详解
目录 前言 函数执行 全局执行上下文 函数执行上下文 作用域链 内存管理 引用计数 标记清除 前言 在我们平常编写JavaScript代码的时候,难免会用到函数,函数里面会有各种变量,这些变量的作用的范围,以及在使用内存存储这些变量时,内存管理的问题,在平时编程亦或者面试时,多多少少都会遇到,所以这篇文章针对这三个问题,进行了深入的探讨. 函数执行 首先说一下JavaScript执行代码的顺序,JavaScript在执行一段可执行代码的时候,会创建一个执行上下文栈(Execution Conte
-
MySQL修炼之联结与集合浅析
联结查询 联结查询就是指两张或者以上的表之间进行匹配查询,一般称之为水平操作,就是最终结果会包含这几个表中所有的列,MySQL中有三种联结操作,交叉联结.内联结.外联结. 交叉联结叫做CROSS JOIN,他对两个表执行笛卡儿积,他将返回两个表中所有列的组成,比如左表中有n条数据,右表中有m条数据,那么最终结果就是n*m条,但是也可以自己与自己联结,那么最终结果就是n*n条,比如下面语句. select * from orders as a cross join orders as b; +--
-
连接mysql的常用工具分享
目录 连接mysql常用工具 mysql使用远程工具连接 解决方案 总结 连接mysql常用工具 mysql作为数据库服务器来运行,任何满足mysql通信规范的软件都可以作为客户端来连接服务器. 常用的客户端: navicat.mysql_front 基于web的phpMyAdmin 还有mysql自带的命令行客户端 推荐使用:navicat mysql使用远程工具连接 同事在开发中远程连接不到服务器上的mysql连接不上,Host ‘XXX’ is not allowed to connect
-
详解C/C++ 的*和&用法
C/C++中 * 的用法 1>最简单的乘法: a*b; 2>可以注释: /**/ 3>指针:(最重要) 指针是指向变量的地址 简单的例子分析: int main() { int a = 3; int *b = &a; cout << "a:" << a << endl; cout << "b:" << b << endl; *b = 10; cout <<
-
spring初始化源码代码浅析
目录 前言 1.refresh()简介 2.关键代码跟踪 2.1.obtainFreshBeanFactory()代码分析 2.2.invokeBeanFactoryPostProcessors(beanFactory)代码分析 2.3.registerBeanPostProcessors(beanFactory)代码分析 2.4.registerListeners();代码分析 2.5.finishBeanFactoryInitialization(beanFactory)代码分析 2.4.f
-
mysql8.0 JSON_CONTAINS的使用说明
目录 JSON_CONTAINS的使用 语法 案例 JSON_CONTAINS函数问题 结构如下 JSON_CONTAINS的使用 语法 JSON_CONTAINS(json_doc, val[, path]) 案例 select * from tb where info->'$.name' = '特价促销' or JSON_CONTAINS(info->'$[*].name', '"特价促销"', '$') SET @json = '{"A"
-
Android入门之动态BroadCast的使用教程
目录 BroadCast是什么 动态Broad Cast演示例子 围绕例子进行设计 全代码 MainActivity 运行后的效果 BroadCast是什么 BroadcastReceiver就是应用程序间的全局大喇叭,即通信的一个手段, 系统自己在很多时候都会发送广播,比如电量低或者充足,刚启动完,插入耳机,你有一条新的微信消息...这种都是使用BroadCast机制去实现的. BroadCast分为静态和动态BroadCast两种.它们的区别是: 动态BroadCast是运行时发生的,它只有
-
使用Docker-compose部署mysql的简单步骤
目录 前言 一.Docker-compose简介 二.部署步骤 总结 前言 虽然docker部署环境比自己下载安装包要方便不少,但是docker的命令还有挂载目录在每次启动容器的时候都去找命令对使用者是很不友好的,而且有时候要启动多个容器的时候显然一个个的启动是很麻烦的.所以如果可以事先将"启动脚本"写好的话,之后就算虚拟机重启了,再启动容器也就是执行"启动脚本"就好了,docker-compose很好的解决了这个问题. 一.Docker-compose简介 个人理
-
Lombok中@Builder和@SuperBuilder注解的用法案例
目录 Lombok中@Builder和@SuperBuilder注解的用法 @Singular 注解修饰集合 @Builder.Default @SuperBuilder @SuperBuilder(toBuilder=true) PS:java Lombok下解决@Builder继承解决方法(@SuperBuilder) Lombok中@Builder和@SuperBuilder注解的用法 @Builder 是 lombok 中的注解.可以使用builder()构造的Person.Person
-
Lombok注解之@SuperBuilder--解决无法builder父类属性问题
目录 一.老规矩 二.判断是否为相同问题(@Builder注解不能 build 父类属性) 三.@SuperBuilder注解 1. 概念(需要注意您的Lombok版本) 2. 如何解决无法builder父类属性 3. 遇到的一个小坑(Lombok1.18.2) 四.总结 前言:Lombok的小坑之 @Builder注解不能 build 父类属性 正文在第三个目录下,学习@SuperBuilder注解的话可以直接根据目录跳到正文所在 一.老规矩 先上文档官方文档链接@SuperBuilder 二
-
Android Activity打开后被应用快照遮住的问题
为公司的银联二维码功能增加一个桌面快捷方式功能的时候,遇到一个头疼的问题,问题如下: 测试来回切换app主界面的四个tab,然后点击home键,点击桌面快捷方式,概率性出现银联二维码界面被主界面快照遮盖. 现象(银联二维码界面被主界面快照遮盖后): 1.进入最近任务栏,发现最近任务栏中的快照也是主界面的Activity, 也是错误的. 2.通过adb查看任务栈信息,发现任务栈信息是正常的,银联二维码界面确实是在HomeActivity上面的,只是被应用快照遮住了. 3.页面点击事件 响应的是银联
-
C++深入探究友元使用
目录 友元 特点 外部函数友元 成员函数友元 总结 类友元 友元 友元 friend 机制允许一个类授权其他的函数访问它的非公有成员. 友元声明以关键字 friend 开头 ,它只能出现在类的声明中, 它们不受其在类体中的 public private 和protected 区的影响. 友元分为外部函数友元, 成员函数友元,类友元. 特点 不具有对称性:A 是 B 的友元, 并不意味着 B 是A的友元 不具有传递性:A是B的友元, B是C的友元, 但A不是C的友元. 不具有继承性: Base 类
-
MySQL如何删除表中的数据
目录 如何删除表中的数据 一.delete删除表中的数据 二.drop删除表中的数据 三.truncate删除表中的数据 删除表数据但不删除表结构SQL语句 下面是两种SQL语句 如何删除表中的数据 Mysql删除表中的数据有三种方法,分别是 delete drop truncate 一.delete删除表中的数据 delete好from结合使用,格式一般为: delete from 表名 where 条件,delete删除数据是将Mysql表中的数据一行一行的删除,不删除表的结构,也不释放表的
-
如何用PHP实现分布算法之一致性哈希算法
传统算法缺陷 对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响. 传统算法一般是将数据的键用算法映射出数字,对其用服务器数量取模,并根据结果选择要存储的服务器.其能达到数据平均分布和查找定位准确的要求,并且优点是算法简单,存取时的计算量都比较小(在数据非常大时才会明显). 但其有一个致命缺点,即一个服务器宕机后的影响很大,我们可以推算一下一台服务器宕机后的影响: 原有数据大部分丢失:服务器数量减少一台,取模数减1导致取模值错乱,如果以前有N台服务器,那么宕机后
-
MySQL查询截取的深入分析
一.查询优化 1,mysql的调优大纲 慢查询的开启并捕获 explain+慢SQL分析 show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况 SQL数据库服务器的参数调优 2,小表驱动大表 mysql的join实现原理是,以驱动表的数据为基础,"嵌套循环"去被驱动表匹配记录.驱动表的索引会失效,而被驱动表的索引有效. #假设 a表10000数据,b表20数据 select * from a join b on a.bid =b.id a表驱动b表为: fo
-
Nginx代理Partainer的实现
目录 1. 启动nginx 2. 启动portainer 3. 创建网络 主要目的用于通过nginx可以代理 Partainer服务,通过nginx进行统一转发 1. 启动nginx 启动nginx,挂载整个nginx的配置路径,具体的nginx配置可以百度 docker run -p 80:80 -name nginx --restart=always -v nginx/:/etc/nginx -d nginx 修改配置路径下面的 conf.d/default.conf upstream do
-
使用注解@Recover优化丑陋的循环详解
目录 1使用背景 2开始上代码 3@Retryable注解重要属性解析 4@backoff注解 5@Recover注解 6注意事项 总结 1使用背景 在实际项目中其中一部分逻辑可能会因为调用了外部服务或者等待锁等情况下出现不可预料的异常,在这个时候我们可能需要对调用这部分逻辑进行重试,代码里面主要就是使用for循环写一大坨重试的逻辑,各种硬编码,各种辣眼睛的补丁. 特别是针对重试的逻辑,到处都有.所以我决定用一个重试组件spring-retry优化一波.它的出现,解决掉这部分丑陋的代码! 这个组
-
MySQL做读写分离提高性能缓解数据库压力
目录 一 什么是读写分离 二 读写分离的好处 三 读写分离提高性能之原因 四 读写分离示意图 五 读写分离模拟 一 什么是读写分离 虽然知道处理大数据量时,数据库为什么要做读写分离,原因很简单:读写分离是MySQL优化的一方面,它可以提高性能,缓解数据库压力,缓解服务器压力. MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”.基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询. 数据库复制被用来把事务性查询导致的变更同步到集群