- 博客(198)
- 资源 (11)
- 问答 (2)
- 收藏
- 关注
原创 MongoDB 简介
MongoDB 是一种 NoSQL 数据库,采用 文档模型 存储数据,支持灵活的 JSON 格式文档。它无需预定义表结构,能够动态调整数据结构,适合处理复杂、多变的数据类型。
2025-02-23 16:05:43
1102
原创 线上死锁问题排查和处理
通过 jps + jstack 来定位和排查。如果线程长时间处于阻塞,就需要考虑是否是死锁了。SHOW ENGINE INNODB STATUS 查看死锁日志
2025-02-22 20:26:18
1000
1
原创 工作中用到的 Linux 总结(持续更新中...)
工作后服务都是部署在 linux 系统下的,在运维的过程中不可避免的会和 linux 打交道。知道 linux 的一些知识,不仅可以对计算机操作系统,网络,进程等有更深入的了解,同时也可以让你写出更高效的代码(windows 下运行的情况和 linux 下有时候差好多)。
2024-10-27 14:47:40
1149
原创 pycharm依赖管理(不要用pip freeze)
在使用python虚拟环境时,可以使用requirements.txt来管理当前项目的依赖。注意,不要用 pip freeze > requirements.txt 这个命令,因为它会引入很多无关的包。可以使用 pipreqs ./ --encoding=utf-8./ 表示当前项目的目录,--encoding=utf-8 是为了避免报错(编码相关)Why to usepipreqs?
2023-12-17 16:41:10
1272
原创 JDK1.8 HashMap源码解析 (扩容机制,null键,与1.7的区别等)
hashmap支持null键吗?当扩容的时候,所有元素都会 rehash吗?怎么减少扩容次数为什么node数组的大小是2的n次?
2023-12-03 12:38:31
236
原创 《代码整洁之道》摘抄
为什么产品经理的想法总是在变化 提升开发效率和代码质量的技巧:测试先行(测试驱动开发)保持手感,练习kata专业主义(开发人员应该怎么保证代码质量)如何让代码质量逐步提高
2023-12-03 11:39:34
277
1
原创 一文了解工业互联网是什么,和传统互联网的区别有哪些
工业互联网和传统互联网有什么区别?工业互联网和传统互联网的从业者的区别? 工业互联网带来的效率提升有多大?
2023-12-02 22:54:54
2059
原创 ElasticSearch学习和使用 (使用head软件可视化es数据)
下载Elasticsearch6.2.2的zip包,并解压到指定目录,下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2运行bin目录下的elasticsearch.bat启动Elasticsearch安装图形化插件head,用来可视化存储在es中的数据;ElasticSearch入门篇(保姆级教程) - coderxz - 博客园 (cnblogs.com)按照博客教程启动 head,通过浏览器访问es
2023-11-12 17:23:13
734
原创 闭包通俗解释,Demo(Go Java Python)
闭包就好比是一个能够包含函数代码和其相关环境的封闭单元,而且可以在其定义的范围之外继续存在和生效。
2023-10-29 10:06:16
389
1
原创 设计模式之建造者模式
就可以使用工厂模式和Builder模式,相对于工厂模式会产出一个完整的产品,Builder应用于更加复杂的对象的构建,甚至只会构建产品的一个部分。工厂模式主要是有很多的相似的类,把他们放到一个工厂里,在使用时传入一个类名就可以自动的创建,相当于工厂根据类名做了一个分发。建造者模式属于创建型模式的一种,又叫做生成器模式,主要用来进行对象的构建,相比较程序员一步一步的自己去new 方便很多。而创建者模式应用的场景更多是对象的创建步骤比较繁琐,所以将这个比较繁琐的步骤做一个封装,这样在使用时就比较简单了。
2023-04-03 12:00:13
498
原创 设计模式之工厂模式
当我们直接new一个对象比较麻烦时,比如构造方法传参数量太多,或者在构建对象之前需要进行一些其他的操作。再比如创建一个类A要先创建类B,这种使用new比较麻烦时就可以交给工厂去做,还减少了代码的重复。
2023-04-03 11:45:00
333
原创 Mybatis 源码解析(读取xml=>建立数据库连接=>结果映射)
Mybatis框架做了几件事情:读取配置文件XML,生成对应的数据源,解析读取SQL语句,方便后面去执行SQL。在调用相关的函数比如后将MySQL返回的数据和 本地的pojo 类User进行映射,将查询得到的结果转化为java的对象。
2023-03-23 19:47:21
414
原创 Java 核心技术卷1 第一章 java程序设计概述
正像我们在第1版中已经指出的那样,Java并不只是一种语言。在此之前出现的那么多种语言也没有能够引起那么大的轰动。作为一名程序设计人员,常常希望能够有一种语言,它具有令人赏心悦目的语法和易于理解的语义(C+不是这样的)。与许多其他的优秀语言一样,Java恰恰满足了这些要求。有些语言,但是,没有提供一个大型的库。如果想要有奇特的绘图功能、网络连接功能和数据库存取功能就必须自己动手编写代码。正是因为它集多种优势于一身,所以对广大的程序设计人员有着不可抗拒的吸引力。
2023-02-23 23:28:21
1199
原创 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决方案
使用autoReconnect=true&failOverReadOnly=false,(只对mysql 4之前的版本有效)com.mysql.jdbc.Driver 是mybatis-connection-java 5 及 5 以下的。com.mysql.cj.jdbc.Driver是mybatis-connection-Java 6 及以上的。但是我的这个错误并不是超时,因为wait_timeout 默认是 8小时,而报错信息中的时间只有233ms。以上解决方案的报错信息中的时间一般都很大比如。
2023-02-12 17:19:43
11740
1
原创 Vue 总结四 (ref, mixin, 插件, 插槽, VueX)
Vue 总结四 (ref, mixin, 插件, 插槽, VueX) 和id的区别对于传统标签来说没有区别 都拿到的是 html内容对于自定义的vue 的标签 ,ref拿到的是vue实例对象,而id 拿到的依然是 html内容应用在html标签上获取的是真实DOM元素,应用在组件标签上是组件实例对象(vc)使用方式:1. 打标识:```.....``` 或
2023-01-11 18:17:47
597
原创 Vue实现路由(Vue-router,参数传递,编程式路由导航)
当点击上面的 router-link 标签时,router-view标签 所在的位置就会被替换为 A.vue。A组件普通的路由导航需要借助 router-link 标签,也可以用函数来描述路由跳转的逻辑。push在切换vue的时候不会覆盖掉之前的切换记录,之后可以回退到之前的Vue。-- Vue中借助router-link标签实现路由的切换 -->在跳转后的vue中可以通过下面的表达式取出传递的参数。
2023-01-10 21:10:29
785
原创 RabbitMQ 总结一(简介、安装、Demo)
message queue 消息队列MQ是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。逻辑解耦+物理解耦 :使用了 MQ 之后,消息发送上游只需要依赖MQ,不用依赖其他服务。第三步, 声明用来存储消息的队列第四步, 进行消息的发布//publisher/consumer 和 broker 之间的 TCP 连接// 和 mq建立连接。
2023-01-09 11:59:44
982
原创 RabbitMQ 总结二(MQ原理 通信方式 消息应答机制)
RabbitMQ 总结二(MQ原理 通信方式 消息应答机制) 本来是由 worker2 处理的消息,因为worker2内部发生了异常而导致没有手动消息应答,broker没有收到应答消息于是将消息重新入队,重新分发进行处理。
2023-01-09 11:39:34
922
原创 Vue 使用过程中的问题总结(npm Nodejs Vue Vue-cli)
vue是一套渐进式,自底向上增量开发(就是根据系统和硬件编写出基层的基本需求代码,再慢慢增加模块),由于他要求遵守的规则较少,你可以引不同自己需要的东西,就需要配合。webpack是一个工具,俗称打包工具,就是把所以浏览器不能识别的东西如(less,scss)等转换为浏览器可以识别的语言如(css),因为vue中需要引入。、gradle十分相似,只不过maven、gradle是用来管理java jar包的,而npm是用来管理js的。
2023-01-03 16:09:54
416
原创 Vue 总结二 (过滤器 自定义指令 生命周期)
局部指令只能是vue实例绑定的元素使用,而全局指令所有的元素都能使用。(1).局部指令:directives:{指令名:配置对象} 或 directives{指令名:回调函数}(2).全局指令:Vue.directive(指令名,配置对象) 或 Vue.directive(指令名,回调函数)
2023-01-01 11:55:08
921
1
原创 Vue 总结一(简介 基本语法)
2.v-model:value 可以简写为 v-model,因为v-model默认收集的就是value值。举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx同样要写js表达式,注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”。3.备注:使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。(1).初次读取时会执行一次。双向数据绑定:
2022-12-31 17:09:42
806
原创 JS概览 (JS基础 DOM BOM)
JS概览 (JS基础 DOM BOM) JS 作用域 预解析 DOM事件流 文档模型 BOM相关事件 JS执行机制 事件循环
2022-12-30 22:05:57
917
原创 JS实现轮播图效果(同时播放音频)
目标:切换到对应的角色就播放相应的音频。页面间隔固定时间会切换到下一图片,同时播放对应的音频,比如角色A 对应 音频1 等。图片左右两侧有控件用来切换图片,也就是两个单击事件和一个定时器。
2022-12-27 20:19:18
887
原创 Java 输入输出流简介和应用 (Java实现序列化工具类)
Java 流相关的类都封装在 java.io 包中,而且每个数据流都是一个对象。序列化:将一个实例对象序列化为字节数组并返回,或者将该字节数组保存在本地。反序列化:将一个字节数组反序列化为对象并返回,或者将本地的文件读取到内存中并且转成对象返回。
2022-11-29 15:07:24
610
原创 用 Java 实现爬虫 (爬取本地html中的人物信息并可视化人物关系)
本例采用框架 selenium 来模拟访问浏览器,并且爬取页面源代码,然后使用Jsoup进行解析并抓取相关信息。可以获得角色的姓名,介绍,头像,海报,语音等信息。
2022-11-28 17:54:27
1423
翻译 Jsoup官方文档翻译 Parse a document from a String
只要传入的string不是null,那么就能成功的进行解析,得到document对象,里面至少有一个head和一个body 两个元素。方法将输入的html解析为document, 基URI参数用于将相对URL解析为绝对URL,并应设置为获取文档的URL。需要对一个java的string 进行解析来获得内容,需要校验该字符串是否格式正确,需要修改该字符串。拿到document对象后就可以用该类 的方法获取想要的内容了。这个字符串可以是用户输入,文件读入或者是来自于网页。如果该字符串来自网页可以使用。
2022-11-26 11:51:00
266
原创 如何优雅的终止线程 Java
正因为 interrupt 的灵活性会比较高,所以在 JDK 的线程池中,关于关闭部分的实现也是采用了 interrupt 去实现。interrupt 这个方法并没有强制性地去中断线程任务,只是发送了一个信号给到线程自身,然后让线程自身去决定如何执行。stop 方法会真正杀死线程,如果这时线程锁住了共享资源,那么当它被杀死后就再也没有机会释放锁,其它线程将永远无法获取锁。这三种状态,则会导致被打断的线程抛出 InterruptedException,并清除打断标记,也就是置为 false。
2022-11-25 11:07:53
1122
原创 Linux 下编译实现C/Fortran调用动态库
FORTRAN语言是Formula Translation的缩写,意为“公式翻译”。它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。FORTRAN语言是世界上第一个被正式推广使用的高级语言。它是1954年被提出来的,1956年开始正式使用,直到2022年已有六十六年的历史,但仍历久不衰,它始终是数值计算领域所使用的主要语言。在Linux环境下编译Fortran代码_活力信息的博客-优快云博客_linux编译fortran...
2022-11-16 21:28:43
2200
原创 Linux 常用文件和目录操作 (cat less head tail等)
显示当前目录下所有的文件和目录ls -alls -al [路径名] 显示特定路径下所有的文件和目录cd: Change Directory 变换目录pwd:显示目前的目录mkdir:创建一个新的目录rmdir:删除一个空的目录ls (小写的L)ls -a 展示所有目录 包括隐藏目录/文件ls -l:长数据串行出,包含文件的属性与权限等等数据;(常用) 等价于 ll(小写的L)ls -t :依时间排序,而不是用文件名。
2022-11-13 21:56:15
488
原创 Linux的 Bash 简介和使用方法
Shell 的作用Bash是shell的一种。Shell 的作用通过壳程序 (shell) 来跟核心沟通,如同鸡蛋的外壳一样,以让核心(kernel)达到我们所想要达到的工作。壳程序的功能只是提供使用者操作系统的一个接口,因此这个壳程序需要可以调用其他软件。、包括 man, chmod, chown, vi, fdisk 等等指令都是独立的应用程序, 但是我们可以通过壳程序 (就是命令行界面) 来操作这些应用程序,让这些应用程序调用核心来运行所需的工作。只要能够操作应用程序的接口都能够称为壳程序。
2022-11-13 21:30:42
4383
原创 vi vim是什么?有啥区别? 怎么使用vim?
简单的来说,vi 是老式的文本处理器,不过功能已经很齐全了,但是还是有可以进步的地方, vim 则可以说是程序开发者的一项很好用的工具,那么什么是 vim 呢?其实你可以将vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。举例来说,当你使用 vim 去编辑一个 C 程序语言的文件,或者是我们后续会谈到的 shell script 脚本程序时,vim 会依据文件的扩展名或者是文件内的开头信息,
2022-11-13 11:47:25
785
手写RPC框架代码(带注释)
2022-02-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人