- 博客(27)
- 收藏
- 关注
原创 【数据结构-单链表】(C语言版本)
并将当前节点的的下一个指针指向赋值为新设置的节点,第一次新设置的节点为NULL,后续并将操作完的当前节点赋值给设置的节点,保证下次节点的移动从而遍历链表中的数据,依次反转元素。首先声明的临时指针用于存放当前需要删除的节点指针,如果直接删除当前节点,后续节点还未将数据节点指向头节点或者前一个节点,这会导致整个链表后续的节点丢失。每个节点的指针域指向链表中的下一个节点,最后一个节点的指针域指向NULL,表示链表的结束。头插法只需要操作两个节点,当前元素指向头节点的指向,并修改头节点指向当前节点。
2024-01-01 15:37:34
1179
原创 【重学C语言之猴子吃桃】(一文了解循环和递归在解决程序问题与数学的关系)
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?
2023-12-27 19:45:00
660
原创 【koa2约定式路由自动挂载mount-koa-routes@next】
我们都知道经典的路由都是声明式(配置式)的,比如koa-router和Express内置的路由都是这样的,但随着项目的迭代,这部分代码就会变的十分冗余。按照约定大于配置的思想,如何实现一种路由自动加载机制,以取代手动编写冗余的路由代码。经过查阅资料在《狼书》卷3,发现这个模块可以帮我实现这个想法。
2023-12-26 23:00:00
450
原创 【GitHub不支持git用户名和密码进行pull和push】
查阅资料后,发现github从2021年8月13号开始就不能用了,必须使用个人访问令牌(personal access token),就是把自己的密码替换成token!填好相关信息后,直接点击Generate token创建token, 我们会得到一个token。之前一直用的国产码云(gitee)用作自己的代码仓库,最近转为github,并记录一些实践。
2023-12-25 21:45:00
801
原创 【关于NodeJS系统稳定的一些思考】
在我们日常开发中,因为前端某些用户操作的边缘性场景,导致逻辑Bug造成用户服务异常,但是我们在服务端有没有做好异常保护,这就可能导致整个进程退出,从而无法提供服务,因此在考虑如何做好监控和进程保护对系统稳定就很重要。那么我们在Node.js代码层面应该如何降低异常出现的概率呢?
2023-12-24 21:00:00
985
原创 【JavaScript高级函数reduce应用】
1、函数(accumlator, currentValue, currentIndex, array):必需。用于计算每一次迭代产生的结果,每一次迭代计算得到的结果会作为下一次迭代的第一个参数传入。用于指定每个迭代的第一个参数accumlator的初始值。如果没有指定该参数,则将使用数组中的第一个元素作为初始值。作为一个nodejs开发人员,每天需要处理很多业务数据,不乏对数组和数组对象有很多操作,而我们又不想个别情况下使用效率极低的。嵌套,又想提高执行效率,故而研究JavaScript高阶函数的使用之。
2023-12-23 21:30:00
397
原创 【内网开发之pkg打包nodejs项目踩坑实践】
最近新入职新公司,内网开发(🫥)。将现有nodejs服务打包成指定平台(国产麒麟系统V10,arm64架构)可执行文件交付,避免源代码泄露。在我完完全全掌握了他的原理后,我终于解决了我所遇到的坑,特此记录学习,参考(基于es6规范封装 Express + DM8 + WebSocket + PKG )
2023-12-22 22:00:00
3396
3
原创 【NodeJs中CommonJs和es6的区别(实践版本)】
CommonJs是一种模块规范,起初被用于Nodejs的模块规范。ES6的出现为了解决前端Module规范使用js文件格式进行编码的时候,我们基于commonjs规范,node的版本需要保持在v13版本之下。如果使用ts文件格式进行编程,为了提高程序效率可以考虑将node版本升到v14及以上,方便使用es6模块语法,同时前后端保持一致,有利于全栈开发。🚀🚀🚀。
2023-12-21 19:36:48
1162
原创 js实现多条件自定义排序
// 通过js的sort方法数组对象.sort((item1, itme2) => { if(item1.xxx !== item2.xxx) { // 倒序排序 return item1.xxx > item2.xxx ? -1 : 1 } else { // 正序排序 return item1.xxx > item2.xxx ? 1 : -1 }})sort返回的数大于0正序排序,小于0倒序排序。...
2022-04-11 18:22:09
792
原创 redis实现点赞排行榜
思考方式:最近一个活动项目本来要实现点赞排行榜的嘛,我是使用nodejs进行服务开发的。在我研究一番之后,最后还不归我这里做。但是研究了,那就研究到底。它是怎么做的呢?首先点赞,我们需要考虑到它的频繁操作性。尽量减少数据库的频繁读写,当我接到着问题的时候,我会想这不就是用redis实现嘛!但是实际上呢,因为之前了解redis数据结构,也只是做了简单的string和list类型存取实践,当真的实现现在这需求时,貌似不熟悉别的结构实际使用。那么查看了下redis文档,发现...
2022-04-11 17:41:58
1726
原创 讲清git代码合并冲突
今天本来在群中划水,缺帮朋友解决了代码合并冲突,自己也加深了记忆。那么开始正式记录一下是怎么解决的吧!首先代码合并冲突一般是怎么产生的那,比如日常开发中,本次迭代分为一个dev,一个branch,在需求方突然增加了需求,并且是同一个需求场景的不同更改,并且是作为一次迭代上线。那么就需要另外拉取一个dev分支开发,现在开发分支分为dev1和dev2:当dev1已经合并到branch后,dev2在合并的过程中提示代码冲突,那么怎么解决那.// 首先,同步当前自己dev2最新代码git fetc..
2021-11-29 16:01:29
687
原创 表数据太大了,如何设计提高性能
项目场景:每当数据库中表的数据变大的时候,我们第一步就会想着拆分表来进行数据优化,从而使查询等操作提效。虽然分表是数据优化的高效形式,但是也可以考虑其他的方式哦。问题描述:通过那些不同方式实现数据查询优化解决方案:从以下几个设计角度提升查询性能:在利大于弊的情况下增加冗余字段(满足条件:1.这个字段不经常进行修改;2.这个字段在查询的时候不可或缺);拆分表(将使用频率高的字段和使用频率低的字段拆分开成不同的表,增加查询效率);尽量使用非空约束...
2021-08-30 15:32:23
466
原创 let和var的区别
在使用var的过程中,var声明的变量全局有效,并且字段可以被重新赋值,然后覆盖之前的数据,容易造成全局污染。let的话和const一样是es6新增的声明对象类型.let声明的变量块级作用域的特性,同一个作用域中不能用let重复声明.let声明的变量或对象可以在后续的操作中对这个值进行修改const的话,一般不需要变化的对象可以用const声明,并且不允许对const声明的字段或者对象内部进行修改....
2021-03-30 18:33:43
99
原创 JavaScript中什么类型是引用传递,什么类型是值传递?如何将值类型的变量以引用方式的传递?
简单点说,对象是引用传递,基础类型是值传递,通过将基础类型包装成引用的方式传递.但是javascript中没有引用传递只是传递引用.
2021-03-30 18:19:20
220
原创 nodejs中的this指向问题
认知错误- 指向自身this的第一个认知错误就是容易把this理解成函数自身。其实this在定义的期间是无法确定的,只有当函数执行时才能确定this到底指向谁,实际this最终指向是条用他的对象。- 指向函数作用域对this的第二种误解就是this指向函数的作用域。在nodejs环境下,有如下代码:function foo(){ let a = 2; this.bar(); // TypeError: this.bar is not a function}functio
2021-03-11 17:32:33
641
原创 1.新建本地项目第一次通过git推送至远程仓库
1、在新建好的项目下进行git初始化git init2、设置添加远程仓库的地址git remote add origin xxxxxxx(远程仓库地址)3、切换到开发需要的远程仓库(默认master分支)git checkout -b 远程分支4、将远程仓库与本地同步git pull --rebase origin 开发分支5、查看当前分支git branch -a // 查看远程和本地所有分支git branch -r // 只查看远程分支6、将本地代码加入本地仓库
2020-12-30 21:02:26
258
原创 nodejs针对json对象的遍历
1.遇见的对象级别的json数据eslint不提倡使用for-in,而使用Object.keys(对象).forEach(对象索引 => {}):Object.keys(result).forEach(resultKey => { let keys = result[resultKey]; for (let key of keys) { name= key.name;
2020-09-16 16:03:17
3966
原创 nodejs中将属性值封装成自己想要的json数据
1、通过对象数组的形式将需要的属封装成一个自己想要的json格式//我有属性let name = "yang";let like = "打篮球";//封装成自己想要的数据let data = { 'name': name, 'like': like}let ss_data = [data];//将对象再封装成数组//将数组再封装成对象,并添加名称let result_data = {'info':ss_data};console.log(result_data);结果
2020-09-15 17:30:17
501
原创 nodejs中对对象数组的嵌套的json格式进行解构
1、遍历数组用 for-of 遍历对象用for-in例如json数据:const data = { "yang": [ { "name": "张三", "like": "游泳" } ]}let name = null;let like = null;for(let da in data){ let keys = data[da]; for(let key of keys){
2020-09-15 17:18:07
1974
原创 求0-1000 之间的质数和
质数只能被1和自己本身整除的数,1不为质数。package cn.yang;/** * 0-1000之间的质数和 */public class Demo05 { public static void main(String[] args) { System.out.println(getSum()); } private static int getSum() { int sum = 0; for (int i = 2;
2020-06-13 23:24:46
466
原创 js多种方式实现验证码的切换
1.点击图片切换验证码页面1:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>验证码切换</title> <script> //第一种:点击图片执行切换 window.onload = function (){ //获取图片对象
2020-06-13 23:18:04
2619
原创 mysql中varchar长度设置方法
mysql5.0以上varchar指定的长度是字符个数,不是字节数。英文一个字符占一个字节,UTF-8格式下中文一个字符占三个字节。
2020-05-29 22:42:56
1136
原创 2.读取对象文件中的数据储存到集合
实体类public class Student{ private String id; private String name; private Integer age; public Student(String id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Studen.
2020-05-12 22:54:32
559
原创 1、冒泡排序
原理:从数组的第一个数开始,依次跟后面的数进行比较(按升序进行比较),若前者大进行交换顺序,直到所有大的数冒泡的最后,然后形成从大到小的一个有序数组。package cn.yang;public class Demo2 { public static void main(String[] args) { int[] arr = {21,2,1,13,11,7}; ...
2020-04-30 23:31:28
140
原创 1、MySQL数据库索引
1、为什么要优化?系统的访问数据速度的限制就在于数据库的访问速度上;随着程序的运行,数据越来越多,处理时间相对就会变慢;数据放在次次磁盘上比内存上慢。2、如何优化?设计数据库时,数据库表、字段的设计,存储引擎利用好MySQL自身提供的功能,如索引等SQL语句的优化...
2020-03-10 00:37:55
100
原创 1、IO流序列化问题
这里写自定义目录标题标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入标题欢...
2019-09-29 15:01:38
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人