自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 分布式锁学习

分布式锁 为什么使用 应用集群部署 为了保证一个资源在跨机器/进程的高并发情况下的同一时间只能被同一个线程执行 跨机器/进程的互斥机制来控制共享资源的访问 锁具备条件 资源在同一时间只能被一个机器的一个线程执行 高可用的获取锁与释放锁 高性能的获取锁与释放锁 具备可重入特性--可选 具备锁失效机制,防止死锁 具备非阻塞锁特性,即没有获取到锁将直接返回......

2022-04-20 22:48:20 106

转载 mybatise使用常用问题总结

转载于https://blog.csdn.net/a745233700/article/details/80977133一、简介1、mybatise是半ORM(对象关系映射)框架,内部封装DBC,加载驱动、创建连接、创建statement等繁杂的过程。开发时只需要关注如何编写SQL语句,灵活度高;2、使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集3、由于MyBatis专注于SQL本身,灵活度高,所以比较适合对性

2021-07-13 22:42:53 155

原创 HashMap

2021-07-04 22:52:27 86

原创 c语言中mock

由于C语言面向过程, 缺乏封装,继承,多态等面向对象语言的特性, 也无法利用面向对象中多态这个特性来实现mock。但还是有其他方法可以利用:编译前:1、利用C语言的预处理(在编译之前进行Mock),利用C编译器预编译的特点,通过宏定义实现。利用#define:使用宏就会丢失类型安全,如果逻辑复杂的话,很容易出错谨慎使用该方法编译时:1、使用函数指针(编译期进行mock)或2、修改函数内存地址,通过Jump指令跳转到stub函数3、GCC编译器的–wrap选项使用GCC的–wrap选项:对sym

2020-09-13 10:34:42 964

原创 NFS学习

https://blog.51cto.com/atong/1343950?cid=693351

2020-08-25 23:15:46 106

原创 ARP学习

简介ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行Linux的arp命令:

2020-07-26 11:45:10 1150

原创 Linux的进程分析工具

Linux 进程的分析工具:1、ps2、strace3、ltrace4、pstack5、pstree方法使用与分析:查看Linux 的进程命令:PS,列出当前系统进程的快照,ps -ef注: ps -ef|grep root, “grep” 是用来过滤。Strace:Strace:跟踪进程内部的系统调用和信号strace是一个非常简单的工具,它可以跟踪系统调用的执行。最简单的方式,它可以从头到尾跟踪binary的执行,然后以一行文本输出系统调用的名字,参数和返回值。其实它可以做的

2020-05-19 00:11:20 1372

原创 readlink在软连接下访问

#include<unistd.h>#include<stdio.h>int main(){ char buf[1024]; int rlc =0; rlc = readlink("/y1_1024",buf,1024); printf("readlink result = %d\n",rlc); printf("buf = %s\n",buf);...

2020-02-10 14:43:04 176

原创 降低代码上的圈复杂度

https://blog.csdn.net/ITxiaodong/article/details/69938970圈复杂度:统计一个函数有多少个分支(if,while,for等)每增加一个分支,复杂度加1。宏也可以降低圈复杂度?https://www.jianshu.com/p/c2e1e304cab2https://blog.csdn.net/luoye7422/article/de...

2019-09-16 23:01:33 2282

原创 C语言——宏

采用命令 #define 来定义宏预处理器会分析源文件,把它们转换为预处理器记号和空白符。如果遇到的记号是宏名称,预处理器就会展开(expand)该宏;也就是说,会用定义的文本来取代宏名称。出现在字符串字面量中的宏名称不会被展开,因为整个字符串字面量算作一个预处理器记号。没有参数的宏#define 宏名称 替换文本带参数的宏定义具有形式参数(简称“形参”)的宏。当预处理器展开这类宏时,...

2019-09-16 22:55:22 138

原创 Linux 的samba 服务

一. samba的安装:sudo apt-get install samba samba-common二. 创建共享目录:mkdir /home/r/sharesudo chmod 777 /home/r/ share说明:john为你的ubuntu的用户名;share你可以随便起个名字做为共享文件夹三. 创建Samba配置文件:保存现有的配置文件sudo cp /etc/sam...

2019-09-01 14:58:12 144

原创 C语言之回调函数

![为什么使用回调函数(对比于普通函数的好处)?“回到函数的好处和作用,那就是解耦”特点:“在回调中,主程序把回调函数像参数一样传入库函数。这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且丝毫不需要修改库函数的实现,这就是解耦。再仔细看看,主函数和回调函数是在同一层的,而库函数在另外一层,想一想,如果库函数对我们不可见,我们修改不了库函数的实现,也就...

2019-08-25 22:39:44 212

原创 c语言的core dump /段错误

https://blog.csdn.net/qq_29350001/article/details/53780697通常导致段错误的几个直接原因:(1)解除引用一个包含非法值的指针(2)解除引用一个空指针(常常由于从系统程序中返回空指针,并未检验就使用)(3)在未得到正确的权限时进行访问。例如,试图往一个只读文本段存储值就会引起段错误(4)用完了堆栈或堆空间(虚拟内存虽然巨大但绝非无限)...

2019-08-12 23:52:41 442

原创 linux shell 编译c++文件 ,并启动demo

2019-08-11 09:09:41 349

原创 socket学习

socket 在tcp/udp 关系socket 在tcp/ip 的使用以及 tcp 的三次握手、四次释放的理论在socket 编程的对比:参考:https://blog.csdn.net/weixin_39258979/article/details/80835555客户端主动释放:http://c.biancheng.net/view/2124.htmlsocket 的函数...

2019-08-04 23:19:58 67

原创 linux C++连接Oracle数据库

参考:http://blog.sina.com.cn/s/blog_62f9876201015009.htmlhttps://www.cnblogs.com/xufeiyang/archive/2012/08/24/2654550.htmlhttps://www.xuebuyuan.com/1720014.htmlhttps://blog.csdn.net/edcvf3/article/d...

2019-08-04 20:52:21 492

转载 sip路由机制学习

https://blog.csdn.net/L_yangliu/article/details/50014301https://blog.csdn.net/hellochenyi/article/details/89332397https://blog.csdn.net/y_xianjun/article/details/77506492https://blog.csdn.net/y_xia...

2019-07-13 21:59:20 109

原创 win10 访问 Virtulbox的 Ubuntu系统 中的docker容器 的数据库。

这里需要较多的理论知识,但现在还未全明白,但是走过的一遍流程大致知道些。在这里记录下学到的理论并用于实践这个demo。这里主要会用到网络知识、linux的命令、以及docker容器网络的原理、数据库等相关知识。虚拟机中的几种网卡的设置以及访问关系:查看 win10 的网络ip的方式:ipconfiglinux的查看物理机的IP地址命令:ipconfig /all虚拟机要使用Nat模式...

2019-03-30 17:52:28 493

原创 docker学习之路:镜像和容器的操作命令

镜像:拉取镜像:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]列出镜像:docker image ls删除本地镜像:ocker image rm [选项] <镜像1> [<镜像2> …]<镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要容器:新建并启动容器: docker ...

2019-03-30 16:41:07 135

原创 docker学习之路:docker的初认识与安装

Docker 最初是在 Ubuntu 12.04 上开发实现的。Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本...

2019-03-30 16:40:28 248

原创 vus.js安装以及遇到问题总结

前端:一、开发环境vue推荐开发环境:Node.js: javascript运行环境(runtime),不同系统直接运行各种编程语言。npm: Nodejs下的包管理器。webpack: 它主要的用途是通过 CommonJS 的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。vue-cli: 用户生成Vue工程模板。安装node.js ,参考:https:/...

2019-02-21 21:40:08 720

原创 git与github使用

git是本地的创库github网络上提供git创库的一项服务可以说github上的开源软件代码全部是由git进行管理。分割线-------------在github上也可以进行可视化的操作一、github的使用,安装git本地软件链接github与git使用SSH公开密钥链接:git没有修改ssh密码的功能,只有覆盖重新设置创建SSH keyssh-keygen -t rsa...

2019-02-19 16:16:38 122 1

原创 git的常用命令等了解

https://cdn.liaoxuefeng.com/cdn/files/attachments/001384907702917346729e9afbf4127b6dfbae9207af016000/0文件创建后先工作区使用git add *** 文件会添加到到暂存区使用git commit 将暂存区文件一起提交至master(仓库分支,便于提交至远程仓库)git...

2019-02-19 16:15:38 137

原创 git 的分支操作

git checkout -b branchname 新建分支git checkout branchname :切换分支在master时使用git merge -n name :合并分支name,n: do not show a diffstat at the end of the mergegit log --graph 以图的方式查看信息解决两个分支(br...

2019-02-19 16:14:37 113

原创 java 循环跳出的 contine break和goto的使用介绍

1、break用于结束整个循环,只能用于switch 和循环语句中。当break使用在嵌套的循环中时,结束的是其所在的循环(即内循环)对于双重循环,参考:https://bbs.csdn.net/topics/390346768这里可以加上 goto 实现,即就要使用跳转语句标记(标号)标号的使用规则:只要是合法的标识符即可2、continue用于结束本次循环;在含有conti...

2019-01-09 20:16:56 371

转载 数据库:数据模型

数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。1、概念数据模型(Conceptual Data Model):简称 概念模型 ,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系 等,与具体的数据管理系统(Database Management System,简称DB...

2018-03-01 09:40:02 967

转载 java基础:路径

path和CLASSPATH的配置和意义解析和其功能区别1.    path与CLASSPATH各自的作用和之间的区别:path的作用:path是系统用来指定可执行文件的完整路径,我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等a.不在path中设置JDK的路径也可执行Java文件,但必须把完整的路径写...

2018-03-01 09:37:57 138

空空如也

空空如也

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

TA关注的人

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