其他
文章平均质量分 83
Archie_java
求知若饥,虚心若愚(stay hungry,stay foolish)
好记性不如烂笔头
展开
-
常见的七种加密算法及实现
**数字签名**、**信息加密** 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、`oauth` 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 **签名加密算法** 来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。## 正文### 1. 数字签名**数字签名**,简单来说就是通过提供 **可鉴别** 的 **数字信息** 验证 **自身身份** 的一种方式。一套 **数字签名** 通常定义两种 **互补原创 2024-05-01 16:16:54 · 1372 阅读 · 0 评论 -
每天一个摆脱if-else工程师的技巧——优雅的参数校验
在日常的开发工作中,为了程序的健壮性,大部分方法都需要进行入参数据校验。最直接的当然是在相应方法内对数据进行手动校验,但是这样代码里就会有很多冗余繁琐的if-else。throw new IllegalArgumentException("用户姓名不能为空");throw new IllegalArgumentException("性别不能为空");throw new IllegalArgumentException("性别错误");原创 2024-04-09 22:55:24 · 1085 阅读 · 0 评论 -
面试官:如何实现10亿数据判重?
以 Java 中的 int 为例,来对比观察 BitMap 的优势,在 Java 中,int 类型通常需要 32 位(4 字节*8),而 BitMap 使用 1 位就可以来标识此元素是否存在,所以可以认为 BitMap 占用的空间大小,只有 int 类型的 1/32,所以有大数据量判重时,使用 BitMap 也可以实现。所以数据库去重显然是不行的。而使用集合也是不合适的,因为数据量太大,使用集合会导致内存不够用或内存溢出和 Full GC 频繁等问题,所以此时我们的解决方案通常是采用布隆过滤器来实现判重。原创 2024-03-28 22:28:39 · 760 阅读 · 0 评论 -
计算机世界的“十六进制”为什么如此重要
在计算机世界中,十六进制扮演着不可或缺的角色。它以其紧凑的表示形式、与二进制的天然对应关系以及在各个领域的广泛应用,成为了计算机科学中的一把重要工具。总体而言,计算机需要十六进制并非偶然,它是一种为了更好地满足人类理解和处理数据的需求而产生的工具,为计算机科学的发展和应用提供了便利和支持。原创 2024-03-28 22:26:40 · 1586 阅读 · 0 评论 -
希腊字母表及读音
序号大写小写国际音标中文读音意义1Ααa:lf阿尔法角度;系数2Ββbet贝塔磁通系数;角度;系数3Γγga:m伽马电导系数(小写)4Δδdelt德尔塔变动;密度;屈光度5Εεep`silon伊普西龙对数之基数6Ζζzat截塔系数;方位角;阻抗;相对粘度;原子序数7Ηηeit艾塔磁滞系数;效率(小写)8Θθθit西塔温度;相位角9Ιιaiot约塔原创 2024-03-20 21:40:05 · 360 阅读 · 0 评论 -
Velocity Engine基础
回到顶部Velocity是一个基于Java的模板引擎,可以通过特定的语法获取在java对象的数据 , 填充到模板中,从而实现界面和java代码的分离!Velocity Template Language (VTL) , 是Velocity 中提供的一种模版语言 , 旨在提供最简单和最干净的方法来将动态内容合并到网页中。简单来说VTL可以将程序中的动态数展示到网页中注释非解析内容 , 引用和指令。原创 2024-03-17 00:08:12 · 2014 阅读 · 0 评论 -
第三方消息推送回调Java app消息推送第三方选择
由于最先集成的是极光,因此根据官方给的推送设备区分方式中,选择了使用标签tag来进行区分管理方式,其接口提供了设置和清理标签, 每次设置会覆盖上次的结果,当然这个需要和极光后台进行交互,是异步返回的。5、由于其接口没有使用免费和付费区分,对于接口的访问没有限制,从使用的情况来看,经常会出现不准的情况,并且设置标签的效果其实是添加,导致业务需要改变标签时,需要先清除在设置,然而接口又经常出问题,导致这部分也是一塌糊涂了;如果想使用不受免费版本限制特性的推送服务,可以联系平台提供的商务对接,购买付费版本。原创 2024-03-14 22:12:59 · 505 阅读 · 0 评论 -
为什么前后端都需要进行数据校验?
前端和后端各自的数据完整性校验是相辅相成的。前端校验可以提供即时反馈和优化用户体验,减轻后端服务器压力;后端校验是最终的安全防线,确保数据的完整性和一致性。通过前后端的数据完整性校验机制的结合,可以提供更可靠和安全的应用程序。原创 2024-03-14 21:42:16 · 1388 阅读 · 0 评论 -
国内第三方移动推送对接调查:Android、IOS、Flutter,各种云推送、个推、极光、统一推送联盟
第三方移动推送对接,刚开始是移动端发起的。在开会讨论这个对接时,心里突然很迷茫,为什么要做第三方移动推送对接?我们自己为什么不能做移动推送?话说,项目里目前所使用的推送就是自己做的。但是在App离线情况下,消息就收不到了。想起来了,这是最最重要的问题,是为了在离线的情况下,App还能收到通知和消息。如果不是因为这个,这个对接可以不做。因为手机端的app层不出穷太多了,为了给手机省电,用户会主动把运行在前端的app给咔嚓掉…虽然咔嚓掉,但是在有信息的情况下,用户还是希望能够收到信息。原创 2024-02-04 12:23:04 · 1463 阅读 · 0 评论 -
浏览器兼容video视频播放的多种方法&视频在浏览器播放格式,视频浏览器播放格式演示
对于老版本的IE可以通过HTML5shiv来使不支持HTML5的浏览器支持HTML新标签video和audio标签。主要解决HTML5提出的新的元素不被IE6/IE7/IE8识别,这些新元素不能作为父节点包裹子元素,且不能应用CSS样式。让CSS 样式应用在未知元素只需执行 document.createElement(elementName) 即可实现。html5shiv的工作原理也就是基于此。原创 2024-01-28 22:16:22 · 4027 阅读 · 0 评论 -
抖音直播原理解析-如何在 Web 中播放 FLV 直播流
Media Source Extensions API(MSE)媒体源扩展 API 提供了实现无插件且基于 Web 的流媒体的功能,不同于简单的使用video元素,video元素对于开发者来说完全是一个黑盒,浏览器自己去加载数据,加载完了自己解析,解码再播放,这个过程中开发者无法进行任何操作。利用 MSE API 开发者可以自定义获取流媒体数据并且还可以对数据做一些操作。MSE 的兼容性如下图所示。可以发现 MSE 的兼容性还算可以,IE 11 都支持。原创 2024-01-25 22:36:11 · 4145 阅读 · 1 评论 -
手机的ip地址是固定的吗,每个手机ip地址一样吗?
简单点说,路由器开启了“DHCP功能”,会自动给连接路由器网络的设备自动分配IP地址,这包括有线网络和无线网络;当设备开启了DHCP功能之后,在路由器开启了DHCP功能的前提下,就会自动接收路由器分配的IP地址,不需要用户手动设置静态IP地址,用通俗的话来形容“DHCP”,它可以省去用户手动设置IP地址的过程。原创 2024-01-25 22:23:23 · 3661 阅读 · 0 评论 -
优秀的代码都是如何分层的——阿里开发规范
总的来说业务分层对于代码规范是比较重要,决定着以后的代码是否可复用,是否职责清晰,边界清晰。当然这种分层其实见仁见智, 团队中的所有人的分层习惯也不同,所以很难权衡出一个标准的准则,总的来说只要满足职责逻辑清晰,后续维护容易,就是好的分层。最后,如果你的团队有更好的分层,或者上面所描述的有什么错误的地方还请留言指正一下。原创 2024-01-13 23:30:23 · 1118 阅读 · 0 评论 -
科普:什么是“东数西算”?
数”指数据,“算”是算力,即对数据的处理能力,“东数西算”是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部,优化数据中心建设布局,促进东西部协同联动。简单说就是把东边产生的数据拿到西边来储存,在西边进行数据分析和计算,然后再把结果传到东边。那“东数”为什么要“西算”呢?1.数据的储存和计算是需要大量的设备的,这东西就会占用大量的地,众所周知,东边经济发展的块,这占地成本很高,因此把储存和计算中心放到西部,可以降低成本,增加西部的就业和发展。原创 2023-12-28 21:57:53 · 1012 阅读 · 0 评论 -
火山引擎,不走寻常路的底气
转载:https://baijiahao.baidu.com/s?在大模型热的当下,火山引擎选择了一个与众不同的角度——为需要训练大模型的企业提供最好的机器学习平台。这包括,支持万卡级大模型训练、微秒级延迟网络,让大模型训练更稳更快。而对于“火山引擎做不做大模型”这个问题,火山引擎的总裁谭待回答的很巧妙:“国内有数十家做大模型的企业,大多已经在火山引擎云上。我们将接入多家大模型,为企业和消费者提供更丰富的AI应用”。一切的一切,都显示出,火山引擎是一个不走寻常路的云计算企业。原创 2023-12-23 21:04:13 · 256 阅读 · 0 评论 -
Java Comparator多属性排序
自然排序通常情况跟equals保持一致,e1,e2是类C的元素,如果e1.compareTo(e2) == 0 那么e1和e2 equals的结果也是true。因为有的时候它俩结果一致,比如刚好就只有一个属性排序的时候,但多数情况下,二者是不一致的。比如有多个排序属性的时候。有的时候获取的数据需要在内存排序,需要根据List中T对象的属性p1,p2,p3等进行排序,该怎么写呢?这种规则掌握了,管它几个属性排序,管它什么升序降序,通通解决。多个属性,按不同的升降序规则,就变的非常简单了,只需要在下面的。原创 2023-12-16 20:26:29 · 233 阅读 · 0 评论 -
储存容量单位:Bit, Byte, KB, MB, GB, TB , PB, EB, ZB, YB等的关系
有趣的是从 Wikipedia 看到的单位英文在「十进位」与「二进位」不同进制之间所使用的英文单字是不太一样的,例如我们常讲 30GB 会唸成 30 Gigabytes,不过正确的唸法应该是 Gibibytes 才对,不过大家都随便念、随便写,反正差不多、听的懂就好,我想唸过计算机概论的人自己都会知道 1GB = 1024 MB 吧,如果唸成 Gibibytes 搞不好还会被笑没知识!这样大的数据单位估计在未来的五年内是无法达到的,不过我相信假以时日人类的需求一定能够达到或者超越CB级。原创 2023-12-10 15:12:05 · 2486 阅读 · 0 评论 -
了解气体报警器的工作原理及传感器类别&&ppm, ppb, ppt介绍
PPM、PPB和PPT是浓度单位,常用于描述溶液或气体中的微量物质的含量。PPM (Parts Per Million,百万分之一):PPM是指物质在一百万份中的含量,表示为每百万份。例如,1PPM表示每一百万份中有1份的含量。PPB (Parts Per Billion,十亿分之一):PPB是指物质在十亿份中的含量,表示为每十亿份。例如,1PPB表示每十亿份中有1份的含量。PPT (Parts Per Trillion,万亿分之一):PPT是指物质在万亿份中的含量,表示为每万亿份。原创 2023-12-03 16:48:05 · 185 阅读 · 0 评论 -
上位机和plc有啥区别&PLC是什么(超级详细)
上位机是指用来控制和监视下位机或其他终端设备的计算机系统,通常用于自动化控制、数据采集和处理、远程监控等领域。它与下位机(如PLC控制器、测量仪器等)相对应,通常是由一台个人计算机或工业计算机、相应的软件、通信和输入输出设备构成的,可实现对下位机进行全面的控制、监视和数据处理。上位机通常被用于许多不同的应用场景,例如自动化控制、智能制造、机器人控制、交通管理、能源管理、环境监测、医疗设备监测等等领域。原创 2023-11-29 21:10:52 · 10566 阅读 · 0 评论 -
图片分辨率与大小的关系
而图片的分辨率则是指单位面积内的像素数量,即像素密度,单位是dpi(dots per inch,像素点/英寸)。真正决定图片分辨率的,是图片单位面积里的像素数量,即图片像素密度。真正决定图片分辨率的,是图片单位面积里的像素数量,即图片像素密度。图片的尺寸和分辨率都是描述图片的清晰度,图片的尺寸x图片的分辨率=图片的像素。图片的尺寸和分辨率都是描述图片的清晰度,图片的尺寸x图片的分辨率=图片的像素。一、描述的对象不一样:图片的尺寸主要描述为图片的像素个数,而分辨率则描述是像素在单位空间中的密度表现。原创 2023-09-02 20:07:28 · 992 阅读 · 0 评论 -
40亿个QQ号,限制1G内存,如何去重?
位图(BitMap),基本思想就是用一个bit来标记元素,bit是计算机中最小的单位,也就是我们常说的计算机中的0和1,这种就是用一个位来表示的。所谓位图,其实就是一个bit数组,即每一个位置都是一个bit,其中的取值可以是0或者1像上面的这个位图,可以用来表示1,4,6:如果不用位图的话,我们想要记录1,4,6 这三个整型的话,就需要用三个unsigned int,已知每个unsigned int占4个字节,那么就是3*4 = 12个字节,一个字节有8 bit,那么就是12*8 = 96个bit。转载 2023-08-19 12:36:46 · 126 阅读 · 0 评论 -
教你实现第三方登录
OAuth是一项协议,它为用户资源的授权提供了一个安全、开放而简易的标准,OAuth的授权不会使第三方触及到用户的账号信息(比如密码),因此OAuth是相对安全的。而OAuth2.0就是OAuth的延续,不过2.0更加关注客户端开发者的简易性。原创 2023-07-22 16:05:34 · 2278 阅读 · 0 评论 -
大文件上传下载实现思路,分片、断点续传代码实现
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。转载 2023-07-22 11:17:07 · 243 阅读 · 0 评论 -
一文读懂字符编码
我们知道计算机的世界只有0和1,如果没有字符编码,我们看到的就是一串"110010100101100111001…",我们的沟通就好像是在对牛弹琴,我看不懂它,它看不懂我。字符编码就好比人类和机器之间的翻译程序,把我们熟知的字符文字翻译成机器能读懂的二进制,同时把二进制翻译成我们能看懂的字符。以下是百科对字符编码的解释。原创 2023-07-07 23:22:37 · 257 阅读 · 0 评论 -
商品库存的扣除过程中如何防止超卖?
假设,商品的剩余库存stock_remaing 为100,客户A下单20,客户B下单30,在并发扣库存的时候,可能存在超卖。由于没有研究过redis源码,对于这种方式参考了大牛的回复,答案是可以使用redis的事务性扣减余额,但在CAS机制上比mysql没有优势,高性能是因为其内存存储的原因,带来的副作用是数据有丢失风险。在抵扣库存的时候,有的人提议不执行select,计算,set三段式的操作,直接扣减的方式,并且对于扣减到小于零的情况作了判断。,根据事务的特性,在并发修改的时候,可能会出现。转载 2023-06-22 13:44:43 · 176 阅读 · 0 评论 -
你见过哪些目瞪口呆的 Java 代码技巧?
如果你所在的项目是一个很牛的项目,比如淘宝这类的项目,我可以在满足业务需求的情况下,和业务沟通,使用什么样的技术能更好的帮助业务创造收益,比如说下单的时候要进队列,可能几分钟之后订单状态才能处理完成,但是会让用户有更流畅的体验,赚取更多的访问流量,那么我相信业务愿意被技术驱动,会同意订单的延迟问题,这样便是技术驱动业务。看了这部分代码以后,你可能会问,那逆向转化会有什么用呢?上边的代码,从逻辑上讲,是没有问题的,只是这种写法让我很厌烦,例子中只有两个字段,如果有 20 个字段,我们要如何做呢?转载 2023-06-10 16:34:53 · 260 阅读 · 0 评论 -
【网络安全】Content Security Policy (CSP) 介绍
内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。转载 2023-06-03 18:26:52 · 2074 阅读 · 0 评论 -
Java在控制台输出带颜色字符的2种方式详解
想到一个问题能不能改变控制台得字体颜色,让一些想要得数据高亮显示,其他的数据依旧原模原样显示查出来。例如:在数组中将非0 得数据高亮显示出来,其他的不变。这样得话数据是不是就能很好得高亮展示出来了呢?(只是个人兴趣爱好,没什么实际作用。这边采用一些控制方法,然后通过判断去控制是否要去高亮。下面是一些查询方法。转载 2023-04-10 23:07:03 · 1881 阅读 · 0 评论 -
ModBus通讯协议(Java代码实例)
返回数据:01 03 20 00 23 18 60 00 00 05 9D 00 02 FD A0 00 00 00 1E 00 00 02 59 00 00 00 1D 00 00 0C 1C 00 00 13 88 40 3C。根据厂商提供的文档,找到我们需要采集的数据都在哪些寄存器中,如下图所示,我们要的电量数据是存储在寄存器地址 0048H - 004FH这个范围里的,一共8个寄存器。上面已经是一个正常的Modbus-RTU通讯应答,现在开始分析这个发送和接受数据是如何进行的。原创 2023-03-29 23:33:06 · 3874 阅读 · 0 评论 -
数据模型 同比 环比_同比和环比计算公式?
一、同比增长计算公式:1、同比增长率=(本期数-同期数)÷同期数×100%例子:比如说去年3月的产32313133353236313431303231363533e4b893e5b19e31333365666237值100万,本年3月的产值300万,同比增长率是多少?本题中,同比增长率=(300-100)÷100=200%2、当同期数为负值的情况,公式应当完善如下:同比增长率=(本期数-同期数)÷ |同期数|×100%例子:比如说去年3月的产值100万,本年3月的产值50万,同比增长率是多少?.原创 2022-05-31 23:06:08 · 3071 阅读 · 0 评论 -
Grammarly:最优秀的日常英文写作辅助工具——论文英文校验
使用Grammarly也有一些心得,在此分享给大家。1,Grammarly是什么?Grammarly是一款在线语法纠正和校对工具,支持Windows、Mac、iOS和Android等多个平台。它能够检查单词拼写、纠正标点符号、修正语法错误、调整语气以及给出风格建议等;对学术写作来说,Grammarly还可以帮助查重。2,Grammarly有哪些功能?2.1, 检查单词拼写2.2, 纠正标点符号被遗漏的逗号,Grammarly会帮你补上2.3, 修正语法错误2.4, 调整语气Gramma原创 2022-05-14 16:09:57 · 5099 阅读 · 0 评论