笔记
文章平均质量分 71
zygswo
不积跬步,无以至千里
展开
-
程序猿成长之路之socket篇-socket通信原理简介
socket(套接字)是网络传输的一种工具,它是介于应用层与传输层之间,了解过七层OSI协议的同学应该知道,socket是基于TCP/IP协议进行网络传输的。原创 2024-03-12 17:27:09 · 467 阅读 · 0 评论 -
程序猿成长之路之密码学篇-分组密码加密模式及IV(偏移量)的详解
想要了解分组加密模式的小伙伴不妨看看这篇文章原创 2023-08-11 16:27:21 · 1176 阅读 · 0 评论 -
程序员成长之路心得篇——高效编码诀窍
就高效编码心得扯扯淡原创 2023-08-01 17:29:35 · 204 阅读 · 0 评论 -
程序猿成长之路番外篇-如何理解牛顿迭代法及如何使用牛顿迭代法求数的平方根
想知道如何使用数学语言 + java实现算术平方根的计算吗?这篇文章不妨看一看原创 2023-05-27 19:17:39 · 1231 阅读 · 3 评论 -
程序猿成长之路之密码学篇-AES算法密钥编排介绍
AES密钥编排算法原创 2023-05-18 17:17:29 · 219 阅读 · 0 评论 -
程序猿成长之路之密码学篇-AES算法介绍
开始我和你们的AES算法之旅原创 2023-03-28 11:08:56 · 1905 阅读 · 0 评论 -
程序猿成长之路之密码学篇-DES算法详解
干货来啦,des代码详解(有代码版),各位大佬多多捧场原创 2023-03-05 19:18:19 · 586 阅读 · 0 评论 -
程序猿成长之路之密码学番外篇-----DES算法密钥获取详解
DES算法介绍之密钥获取讲解原创 2023-02-26 11:36:59 · 360 阅读 · 0 评论 -
程序猿成长之路之密码学番外篇-----字符串(ascii)转二进制
想了解如何用位运算快速实现8、10、16进制转2进制吗?想了解如何实现字符串转二进制吗?这篇文章可能适合你原创 2023-01-06 15:51:49 · 1428 阅读 · 2 评论 -
程序猿成长之路之密码学篇-DES介绍
加解密算法基础篇-des算法介绍原创 2022-12-06 21:26:38 · 2041 阅读 · 0 评论 -
程序猿成长之路之密码学篇-密码学简介
密码学爱好者请入原创 2022-11-23 16:59:17 · 1488 阅读 · 0 评论 -
程序猿成长之路番外篇之前后端加解密(rsa+aes混合加解密算法)
想了解前后端加解密的知识吗?这篇文章可能适合你原创 2022-10-05 21:47:27 · 1657 阅读 · 0 评论 -
每日一个技术点之rpc
什么是rpc:rpc-remote procedure call 即远程过程调用,为了方便客户端/服务端实现函数的调用,而产生的一种通信机制。rpc有什么用:为不同机器上服务间的通信提供了可能,为后续微服务间的通信提供支撑。rpc关键技术:1. socket通信 2. 序列化和反序列化 3. nio(多路复用io)rpc实现原理:1. 客户端服务发起请求,将要调用的方法和参数序列化 2. 通过socket 发给服务端 3. 服务端反序列化调用本地服务 4. 调用服务后就序列话结果并返回 5. 客户端反原创 2022-08-16 00:01:08 · 613 阅读 · 0 评论 -
每日一个技术点之动态代理
cglib和jdk 动态代理的区别?cglib 用的是asm字节码框架,而jdk用的是反射机制,这就导致了cglib创建对象慢但执行速度快 jdk创建对象快,但执行相对较慢经过反编译发现jdk 动态代理是创建了一个继承了Proxy类的代理类并实现了接口,($class0 extends Proxy implements interfaceA )其中class0中聚合了很多接口中的方法,通过method.invoke反射机制实现调用。cglib 动态代理无需依赖接口,而需要依赖cglib库,但是jdk原创 2022-08-15 23:57:11 · 116 阅读 · 0 评论 -
蓝桥杯决赛题目分析之皮亚诺曲线
蓝桥杯决赛皮亚诺曲线两点间路径算法解析原创 2022-05-08 21:35:29 · 997 阅读 · 3 评论 -
简单算法之矩阵运算
简单矩阵运算原创 2022-05-01 16:58:52 · 500 阅读 · 0 评论 -
程序猿成长之路番外篇-- ConcurrentHashmap介绍
concurrentHashmap介绍、hashmap缺点的介绍,concurrentHashmap底层代码解析原创 2022-04-30 18:52:13 · 390 阅读 · 0 评论 -
程序猿成长之路之Redis(6)-- redis数据结构之bitmap类型介绍
Bitmap 又称位图,是redis中的一种数据结构,它的出现对于redis来说具有什么意义,它具有哪些作用,它又是如何使用的?它的实现机制又是什么?下面就让我们来走进bitmap的世界。Bitmap介绍什么是bitmap?在文字说明之前,先来看一张图这个在二进制里表示数字7 (00000111)2 = (7)10那么这个在bitmap中表示什么呢?它在bitmap中表示6,7, 8号位上都为1,也就是说6, 7, 8号位上都有数据。【注意:bitmap低位在左,高位在右】总结:bit.原创 2022-03-06 12:57:37 · 8278 阅读 · 4 评论 -
程序猿成长之路之Redis(5)-- redis数据结构之hash类型介绍
redis hash类型是什么?与java hashmap 有什么异同点?hash扩容什么原理?redis hash有哪些命令?原创 2022-02-12 16:05:35 · 8484 阅读 · 0 评论 -
算法题之迷宫中任意位置走任意长度的所有路径查询【原创题,非官方题目】
迷宫大家都知道是可以用通过dfs(深度优先算法)进行解决,现在问题如下:小明参加了一个迷宫游戏,这个游戏有这样一个规则:小明只能向上下左右方向任意走n步(可以走回头路),现在需要知道这任意的n步所能覆盖的点的范围和这n步所有的路径基本原理经过推理,任意走n步(可以走回头路)有一个规律,那就是所有点构成的图形是一个旋转45度的正方形,如下图所示并且从图上可以发现一个规律就是不管从哪个点走,走n步后走到的点的个数为(n+1)^2, 经过测试这个规律是正确的。那么现在问题又来了,如何去获取这些点的坐.原创 2022-02-03 20:01:44 · 589 阅读 · 0 评论 -
蓝桥杯简单题之十六进制转八进制(JAVA版)
春节第一天闲着无聊打算找个蓝桥杯的题目练练手,诶嘿,这就找到一题,话不多说,上题题目题目很好理解,就是要输入n个数,将其从十六进制转成八进制。一般的做法也如这里提示所说。要先转成10进制后转成八进制,但我认为先转成10进制会浪费计算机的算力并且提高了算法的时间复杂度,这种转换是完全可以进行优化的。我的优化算法思路我的算法是直接将16进制转乘8进制,算法有如下几点要求:输入的内容为字符串,这样可以进行大数运算最多只能使用一重for循环,以降低算法的时空复杂度。返回的值也为字符串下面来.原创 2022-02-01 19:03:43 · 1050 阅读 · 5 评论 -
程序猿成长之路番外篇--hashmap介绍
最近在网上看hashmap的相关源码,发现基本的知识有所介绍,但有些地方还是讲的不够透彻,所以我打算再给大家分享一下我的理解。1. 基础知识介绍HashMap大家都知道这是java中常见的数据结构,用途广泛,比如可以用作传参的容器,也可以用于spring中bean的管理。它继承了AbstractMap类,是map的后代,所以我们常常可以用向上造型进行创建实例。如:Map<Type1, Type2> map = new HashMap<>();此外,在括号内还可以传入参.原创 2022-01-03 21:53:25 · 3797 阅读 · 0 评论 -
程序猿成长之路之Redis(4)-- redis数据结构之string类型介绍
序言学过java的同学应该都知道,string在java语言中主要是指字符串类型,并且这不属于java基本数据类型之中。而在redis中,string类型是什么呢?它的常见使用场景有哪些?常见的命令有哪些?什么是redis的string类型?String 类型在redis 中由两部分组成,一部分是key也就是键,另一部分是value,也就是值,redis将键和值进行绑定,通过key查找value 的值。String类型的使用场景用于共享session 、验证码等需设置超时时间数据的存储Se.原创 2021-12-18 20:59:26 · 5325 阅读 · 0 评论 -
程序猿成长之路之Redis(3)-- redis数据结构介绍
序言正如前文redis介绍所言,redis数据结构种类较多,可以应用于较多场景,如抽奖系统、分享打赏、购物车管理、公共好友推荐等。那么具体来说redis有哪些数据结构,不同的数据结构又有什么不同特征呢?图解redis 数据结构Redis 常见的数据结构有:String类型,典型的键值对,通过key查询value的值。常见的函数有set、get、setex、setnx、mset等,常用于存储不需要复杂处理且数据量不大的数据Hash类型, 典型的对象类型,可以比作一个类,通过key(可以理解为.原创 2021-12-12 22:15:15 · 4025 阅读 · 1 评论 -
程序猿成长之路之Redis(2)-- redis安装
Redis安装在启动Redis服务之前,先了解一下Redis相关可执行文件的主要作用(1)redis-server -------Redis服务器(2)redis-cli -------Redis命令行客户端(3)redis-benchmark ---------Redis性能测试工具(4)redis-check-aof ----------AOF文件修复工具(5)redis-check-dump --------RDB文件检查工具使用vmware打开虚拟机:或者使用xs原创 2021-12-11 21:32:08 · 1858 阅读 · 0 评论 -
程序猿成长之路之Redis(1)-- redis介绍
什么是redis?Redis 是目前最为流行的开源的、包含多种数据结构、用于在高并发、强请求压力下辅助关系型数据库的缓存数据库。Redis和常用的关系型数据库完全不一样:关系型数据库(如Mysql、Oracle)的存储空间是服务器的硬盘而redis则是使用服务器的内存,这也造就了redis的优缺点。(查询速度快但存储容量小)此外,查询数据方式也不同,传统关系型数据库通过sql命令查询,而redis则是采用操作系统命令行进行操作。关系型数据库通过表和记录的形式存储数据,但是在redis中一切都通过原创 2021-12-11 21:19:48 · 1352 阅读 · 0 评论 -
如何通过设计模式实现递归算法
最近沉迷于设计模式无法自拔,又于近期灵机一动想到一个自己觉得不错的想法特此来分享下。话不多说,直接上餐!这个设计模式解释起来比较简单,首先类a和类b都实现了一个公共的接口,然后相互依赖,之后在两个类中都重写公共接口的方法,最后再在这两个方法中互相调用彼此的公共接口方法就可以实现循环递归,下面是代码。// 求1到10的乘积public interface I1 {public int loop();}public class A1 implements I1{private int loop原创 2021-07-26 22:26:28 · 266 阅读 · 0 评论 -
vue开发之组件设计
什么是组件?以前我们写重复的代码时总是复制黏贴,一方面会增加代码量,降低执行和开发效率,另一方面也会增加维护的负担。现在好了,有了组件,我们可以将重复的代码进行封装以便于重复使用。1. 创建组件const compo1 = Vue.extend({ //组件的模板有且只能有一个根元素,否则会报错,因此最好将多个元素 放到div或其他容器中 template: ‘<p>my name is {{name}}</p>’, //组件的data区域必须是个函数而不是对象.原创 2021-04-10 16:44:49 · 703 阅读 · 0 评论 -
作为一个前端新人,开发vue遇到的坑
今天练习vue的时候突然发现页面上mustache内容总是闪现了一下就消失了,很好奇原因于是想了一下解决方案- 方案一:使用v-cloak试过了,发现没解决问题,在css头上标记[v-cloak]{ display:none; }然后再在相应dom元素加上v-cloak标记之后ctrl+s运行还是有问题。- 方案 二:vue项目自带的vue实例千万别删除别删除别删除!!!<div id='app'></div>后来发现是因为删了这玩意导致页面加载出现问题。.原创 2021-04-10 16:20:05 · 144 阅读 · 0 评论 -
求数值数组中连续和最大的子数组
好久没写算法了,今天就拿这道简单的题练一练手。分析原理首先需要找到不为负的第一位,记为 i,(注意:要考虑数组都为负数的情况,这时候就得一个一个比较)之后再从 i 之后计算后面连续求和,并找到该位置下后面连续求和的最大值,记为 high 并及时记录下末尾的下标,记为 endIndex ,合并计算,将 array[i] + endIndex 求出当前位置的连续求和最大值,之后通过比较即可找到连续求和最大的子数组,并记录下开头和末尾下标。代码/** * 获取数字数组中的最大子数组(.原创 2021-01-23 17:01:23 · 324 阅读 · 0 评论 -
聊聊敏捷开发
什么是敏捷开发敏捷开发是将一个复杂的程序设计过程分成分成若干个较为简单的子项目,使得每个子项目都具有可运行、可集成的特点。并且在整个过程中系统处于可使用状态,可以理解为分布式、自下而上式编程。敏捷开发的特点简洁化以人为中心而不是以文档为中心(强调沟通协调的作用)允许项目中合理的需求变化,提高了项目开发的容错性研发高效,由于各个子项目都具有可运行能力和可集成性,就使得开发可以朝着分布式的方向发展,这无疑可以提升开发效率。高质量研发及时反馈,降低修改成本敏捷开发方法极限编程(xp)通原创 2021-01-12 00:19:06 · 157 阅读 · 0 评论 -
聊聊微服务
导语:本文新手向,涉及的内容比较基础。什么是微服务?百度了一下,大部分的定义是这样的: 基于分布式设计思想,可以独立运行的服务并且在遇到故障时可以实现故障的自动化迁移。解释一下, 微服务就是将原来的单体应用(war,jar包等)中根据需要拆分成多个子系统,每个子系统可以分别在不同的服务器上独立的运行,至于故障的自动化迁移这个则需要考虑Redis的哨兵机制。(之后会发文详细介绍),如果还不清楚的小伙伴可以看看如下的图(自己画的)为何要使用微服务?提到这点就得说说微服务的好处了。首先,单体应用耦.原创 2020-12-15 21:54:03 · 207 阅读 · 0 评论 -
【原创】通过Android自带的工具实现当前定位 + 2步搞定getBestProvider返回null的问题
通过Android自带的工具实现当前定位 + 2步搞定getBestProvider返回null的问题今天用Android自带的LocationManager和Location类实现定位,然而中间却出了点问题,那就是getBestProvider在真机上测试返回null值。查阅了很多方法都没有效果,于是我自己灵机一动想出了较好的解决办法。基本代码如下import .... //导入包就不...原创 2020-03-12 17:13:17 · 2000 阅读 · 4 评论