- 博客(333)
- 资源 (28)
- 收藏
- 关注
原创 高并发架构设计(三大利器:缓存、限流和降级)
高并发是指系统或应用程序在同一时间段内接收到大量并发请求的能力。具体来说,高并发环境下系统需要能够同时处理大量的请求,而不会出现性能问题或响应延迟在网站或APP的开发中,缓存机制是一个不可或缺的环节,可以提高网站或APP的访问速度,降低数据库压力。但在高并发环境下,缓存机制的作用更加明显,不仅可以有效减轻数据库的负载,还可以提高系统的稳定性和性能,从而给用户带来更好的体验。
2023-11-11 22:27:47 1158 13
原创 JavaScript常见参数验证
在JavaScript开发中,参数验证是非常重要的一环。它可以帮助我们确保函数的输入是有效的,从而避免潜在的错误和异常。本文将介绍一些常用的参数验证工具类和方法,以及如何使用正则表达式进行验证。
2019-07-27 15:31:01 18055 2
原创 $(function(){ }
(function(){ }是$(document).ready(function()的简写,相当于window.onload = function(){ } ,虽然这段jquery代码与javascript代码在功能上可以互换,但执行的时间不一样,前者页面框架加载完成就执行,后者页面中所有内容加载完成才执行。
2019-07-08 10:45:41 8939
原创 MySql存储引擎
此外,如果你正在使用的是MySQL 5.7或更高版本,并且表中有正在运行的查询或事务,你需要在切换期间暂停这些活动,以防止错误或数据不一致等问题。从MySQL8.0开始,它就可以被称为过时了 – MySQL已经确保在使用InnoDB时,MyISAM可以完成的所有工作都可以完成,因此目前,只有当您希望简单的COUNT(*)查询更快时,MyISAM才非常有用。根据你的业务需求和数据特点,选择适合的存储引擎。它的优点是速度快,占用的存储空间小,但缺点是数据的安全性不高,不支持事务,不支持外键等。
2019-05-08 11:15:23 1858
原创 TCP三次握手和四次挥手的全过程
一句话,主要防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误。如果使用的是两次握手建立连接,假设有这样一种场景,客户端发送了第一个请求连接并且没有丢失,只是因为在网络结点中滞留的时间太长了,由于TCP的客户端迟迟没有收到确认报文,以为服务器没有收到,此时重新向服务器发送这条报文,此后客户端和服务器经过两次握手完成连接,传输数据,然后关闭连接。
2019-04-17 09:33:14 485 1
原创 【经典算法】LeetCode28 找出字符串中第一个匹配项的下标(Java/C/Python3实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度朴素字符串匹配实现简单效率低,当模式串与母串不匹配时,需要多次比较O(1)KMP算法效率较高,通过预处理减少不必要的比较实现相对复杂O(N+M)O(M)标准库函数(如简洁易用,性能通常经过优化依赖外部库,可能不是最灵活的选择取决于实现取决于实现。
2024-04-26 23:49:29 989 2
原创 【经典算法】LeetCode 2739. 总行驶距离(Java/C/Python3/Go实现含注释说明,Easy)
方法优点缺点时间复杂度空间复杂度其他模拟法直观易懂可能存在冗余计算O(1)适合油量较少时,计算步骤明确数学法简洁高效需要一定的数学分析能力O(1)O(1)适用于大规模计算,直接得出结果模拟法通过循环来模拟汽车行驶和补充油的过程,直观易懂,但可能存在冗余计算,特别是在主油箱油量较大时。其时间复杂度与主油箱的油量成正比,空间复杂度为常数。数学法通过数学表达式直接计算出总行驶距离,避免了循环,代码简洁高效。但需要一定的数学分析能力来理解表达式的含义。
2024-04-25 20:10:19 570
原创 【经典算法】LeetCode 151. 反转字符串中的单词(Java/C/Python3实现含注释说明,中等)
方式优点缺点时间复杂度空间复杂度方式一直观且易于理解在 Java 和 Python 中可能需要额外的空间O(n)方式二递归实现相对复杂,可能导致栈溢出(在递归情况下)O(n)O(n)
2024-04-25 08:31:43 1136 7
原创 【经典算法】LeetCode 1170:比较字符串最小字母出现频次(Java/C/Python3实现含注释说明,中等)
方式优点缺点时间复杂度空间复杂度方式一不依赖内建函数,灵活性强,可适用于不同数据结构和需求代码量较大,实现相对复杂,需要手动处理字符频次统计和比较O(m + n)O(k),其中k是字符集大小方式二代码简洁,易于理解,利用内建函数简化操作依赖内建函数,可能不是最优解,合并字符串增加了空间和时间开销O(m + n)O(m + n)优化后的方式二避免了合并字符串的开销,直接在遍历过程中统计频次仍然依赖内建函数,但减少了不必要的合并操作O(m + n)
2024-04-24 19:52:08 774 3
原创 《内向者优势》:不要低估一个内向的人
本书完整名为《内向者优势:如何在一个外向的世界中获得成功》(原名:《The Introvert Advantage: How to Thrive in an Extrovert World》),是一本专为内向者撰写的自我成长指南,旨在帮助内向者了解自己的性格特点,发掘潜在优势,克服社交障碍,实现自我价值的提升。书中通过丰富的案例分析和实用建议,为内向者提供了在职场、人际关系、个人成长等方面的具体指导,让内向者深入地了解自身的特点和优势,建立强大的自信。玛蒂·奥尔森·拉尼。
2024-04-23 19:33:00 812 12
原创 【经典算法】LeetCode 35. 搜索插入位置(Java/C/Python3/Golang实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度方式一(二分查找)效率高,时间复杂度低需要数组有序O(log n)O(1)方式二(线性搜索)代码简单,容易理解时间复杂度较高O(n)O(1)
2024-04-23 08:30:00 1952 5
原创 【经典算法】LeetCode 69. x 的平方根(Java/C/Python3/Golang实现含注释说明,Easy)
方法优点缺点时间复杂度空间复杂度其他二分查找思路简单,直观易懂可能不是最优解,对于非整数平方根需要额外处理O(log x)O(1)适用于整数平方根计算牛顿迭代收敛速度快,通常很快能得到近似解需要选择合适的初始值和阈值近似O(1)O(1)适用于需要高精度或浮点数平方根计算。
2024-04-22 07:30:00 838 11
原创 MySQL中的当前读和快照读及其区别
当前读和快照读是MySQL中两种重要的读操作方式,它们在不同的场景下有着不同的应用。在选择使用哪种读方式时,需要根据具体的业务需求和场景来权衡数据一致性、并发性能以及幻读问题等因素。通过合理地使用这两种读方式,我们可以更好地保证数据库的事务隔离性和一致性。
2024-04-21 15:59:22 837 2
原创 【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度方式一不依赖内建函数,灵活性强代码量较大,实现相对复杂方式二代码简洁,易于理解依赖内建函数,可能不是最优解O(n)O(n) 或者O(1)
2024-04-21 15:42:48 838
原创 【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度快慢指针简洁高效,不需要额外空间(除了指针)不适用于需要找到环的起始节点或环的长度的情况O(n)O(1)哈希表容易理解和实现,能够检测环的存在需要额外的空间来存储访问过的节点O(n)O(n)
2024-04-20 23:12:33 574 6
原创 【经典算法】LeetCode 26. 删除有序数组中的重复项:(Java/C/Python3实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度方式一原地修改,满足题目要求代码稍微复杂一些O(n)O(1)方式二代码简洁,易理解不满足原地修改和O(1)额外空间的要求O(n)O(n)
2024-04-20 22:58:36 953 3
原创 浅谈:拼多多能翱翔于国内与海外电商蓝海之巅的原因
作者主页: 🔗精选专栏:🔗作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。一起学习Java、大数据、数据结构算法(关注,持续更新🤞。
2024-04-19 12:48:15 1105 17
原创 【经典算法】LeetCode 64. 最小路径和(Java/C/Python3/Golang实现含注释说明,Easy)
解法思路特点优点缺点时间复杂度空间复杂度朴素DP填充DP表,状态转移每个位置的状态取决于上方和左方直观易懂空间占用大O(mn)O(mn)滚动数组优化DP只用一维数组,通过循环更新节省空间,利用上一行的值节省空间编程稍微复杂O(mn)O(n)
2024-04-19 07:16:05 1425 9
原创 【经典算法】 leetcode88.合并排序的数组(Java/C/Python3实现含注释说明,Easy)
解题方式优点缺点时间复杂度空间复杂度其他注意事项从前往后双指针(原地修改)无需额外空间,原地修改逻辑相对复杂,需要正确处理合并细节O(m + n)O(1)需要确保nums1有足够空间从前往后双指针(需要额外空间)逻辑简单,易于理解需要额外空间存放合并结果O(m + n)O(m + n)适用于空间限制不严格的情况这两种方式都是解决合并两个有序数组问题的有效方法。选择哪种方式取决于具体的性能要求和内存限制。如果内存空间有限,或者希望避免额外的空间开销,可以选择原地修改的方式。
2024-04-18 13:56:53 1193 19
原创 【经典算法】LeetCode133克隆图(Java/C/Python3实现含注释说明,中等)
方式优点缺点时间复杂度空间复杂度DFS直观易理解可能需要较多递归调用栈空间O(V + E)O(V)BFS层次遍历需要额外维护队列O(V + E)O(V)
2024-04-17 08:30:00 1064 21
原创 【经典算法】LeetCode 136:只出现一次的数字(Java/C/Python3实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度其他异或运算代码简洁,效率高不直观,需要理解异或运算的特性O(n)O(1)适用于数字类型的题目哈希表思路直观,易于理解空间复杂度较高,需要额外的存储空间O(n)O(n)适用于各种数据类型的题目。
2024-04-16 15:07:30 1185 4
原创 【经典算法】LeetCode 215. 数组中的第K个最大元素(Java/C/Python3实现含注释说明,Medium)
最小堆快速选择算法优点- 简单易实现- 高效,能找到第k个最大或最小元素- 适用于动态数据流- 原地操作,不需要额外空间缺点- 空间复杂度较高- 平均情况下较高时间复杂度时间复杂度- 平均:O(nlogk)- 平均:O(n)- 最差:O(nlogk)- 最差:O(n^2)空间复杂度- O(k)- 平均:O(logn)- 最差:O(n)其他- 用于处理动态数据流- 快速选择是快速排序的关键步骤。
2024-04-15 20:14:29 705 4
原创 Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
工具类主要用途内部原理使用场景Semaphore控制访问某个或多个共享资源的线程数量基于AQS实现,维护一个许可计数器需要限制并发访问共享资源的场景,如连接池、线程池等允许一个或多个线程等待其他线程完成操作基于AQS实现,维护一个计数器用于协调一组线程的执行顺序,例如启动多个线程并行处理任务,并在所有任务完成后执行汇总操作让一组线程互相等待,直到所有线程都到达某个公共屏障点使用锁和条件变量实现,维护屏障的周期和计数器。
2024-04-15 11:49:45 775 11
原创 Java不同版本的多线程开发:进化之路
从Java的版本发展来看,多线程编程在Java中得到了不断的改进和增强。每个新版本都引入了新的工具和API,使得并发编程变得更加高效、灵活和易于使用。随着技术的不断发展,我们可以期待Java在未来继续为多线程开发带来更多的创新和突破。!!代码改变世界。
2024-04-14 13:58:48 789 13
原创 Java8 CompletableFuture:异步编程的瑞士军刀
阿里非典型程序员一枚 ,记录平平无奇程序员在大厂的打怪升级之路。一起学习Java、大数据、数据结构算法(
2024-04-14 13:38:07 810 1
原创 Java多线程中顺序打印
方法特点使用volatile关键字适用于简单的顺序控制,代码简单,但不适用于复杂的线程同步和互斥情况。使用Lock和Condition提供了更丰富的线程同步和互斥机制,并可以精确控制线程的等待和唤醒,适用于复杂的线程交互情况。使用Semaphore通过信号量来控制线程的获取和释放,并可以灵活地控制线程的顺序,适用于多种线程同步场景。
2024-04-13 23:46:49 888 19
原创 RocketMQ技术详解:从基础知识到内部设计原理
作为一款功能强大的分布式消息中间件,通过其高性能、高可用性和丰富的特性,为分布式系统的构建提供了强大的支持。Consumer在消费时,按照Message Queue的顺序进行消费,从而确保消息的顺序性。CommitLog是消息的存储日志,ConsumeQueue是消费者的消费队列,IndexFile用于快速定位消息。RocketMQ是一款由阿里巴巴开源的分布式消息中间件,它支持发布/订阅和点对点两种消息模型,能够处理大量的消息数据,并保证消息的可靠传输。一起学习Java、大数据、数据结构算法(
2024-04-11 17:24:58 1134 18
原创 你真是了解Java数组吗?
通过本文的介绍,读者应该对Java数组的定义、使用、底层存储原理以及与其他数据类型的转换有了更深入的了解。数组是Java中非常重要的数据结构之一,它允许我们存储相同类型的数据元素的集合,并可以通过索引来访问这些元素。需要确保数组中的对象类型是可序列化的,否则在执行序列化的过程中可能会抛出异常。数组的长度是固定的,而集合框架的长度是可变的。Java的数组是固定长度的,一旦分配了内存空间,其长度在运行时是不可改变的。通过索引可以直接访问数组中的元素。三维数组是数组的数组的数组,即每个元素都是一个二维数组。
2024-04-10 23:39:48 861 2
原创 AI技术创业有哪些机会?
在当今数字化时代,人工智能(AI)技术正不断地推动着各行各业的创新和变革。AI作为一项具有巨大潜力的技术,正在为创业者带来许多新的机会。本文将探讨AI技术创业领域中的机会,并通过具体的例子来说明它们。
2024-04-09 21:25:51 408 3
原创 【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
通过动态规划计算回文子串算法稳定可靠需要额外的二维数组存储状态O(n^2)O(n^2),中心扩展法通过扩展中心位置计算回文子串具有较高效率对空间的使用较低O(n^2)O(1)
2024-04-09 18:33:09 1179 15
原创 程序员如何搞副业
作为程序员,我们拥有多种多样的副业选择。通过学习新的技术领域、自主开发产品和应用、参与开源项目、写技术博客或者提供咨询和远程工作等多种途径,我们可以实现副业的成功。重要的是,需要不断地学习和探索,将自己的技术优势转化为副业的机会。逐渐地,我们可能会发现自己的副业成为了主要的收入来源,甚至成为了我们的创业项目。
2024-04-08 12:53:53 901 4
原创 【经典算法】LCR187:破冰游戏(约瑟夫问题,Java/C/Python3/JavaScript实现含注释说明,Easy)
方式描述优点缺点时间复杂度空间复杂度迭代模拟直接根据规则模拟整个游戏过程,依次淘汰成员直观和易理解当成员数目较大时,效率较低O(num^2)O(num)数学+迭代通过数学公式递推最终结果,逐步缩小问题规模时间效率高,不需要昂贵的删除操作需要数学知识,公式推导可能不够直观O(num)O(1)递归通过递归函数,从基础情况逐步返回最终答案代码简洁,易编写栈空间开销大,可能会栈溢出O(num)O(num)迭代改进递归方法的迭代版本,避免了栈溢出的问题。
2024-04-08 11:08:06 470 6
原创 Flink常见面试问题(附答案)
Apache Flink是一个开源的流处理和批处理框架,可以实现快速、可靠、可扩展的大数据处理。窗口是Flink中用于对无限数据流进行有界处理的机制。它将无限流切分为有限的、不重叠的块,并对每个窗口进行计算。。
2024-04-07 12:55:17 2305 7
原创 【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
递归法迭代+原地反转方法思路将链表划分为大小为k的子链表,递归处理使用循环迭代遍历链表,并在每次迭代中原地反转子链表时间复杂度O(n),每个节点被遍历一次O(n),每个节点被遍历一次空间复杂度O(n/k),递归调用栈的深度O(1),原地修改链表(如果递归栈的深度达到n/k,则创建了O(n/k)个递归调用栈帧)(不需要额外的空间,仅使用常数级别的指针变量和变量存储空间)优点实现简单,逻辑清晰不需要额外的递归调用栈,适用于大规模链表代码可读性好原地修改链表,不需要额外空间。
2024-04-07 09:03:34 459
原创 SpringBoot自动装配原理
配合@EnableAutoConfiguration注解使用时,它主要扮演的是配置查找器的角色。这个注解利用其自身的完整类名org.springframework.boot.autoconfigure.EnableAutoConfiguration作为搜索的关键词(Key),来定位并加载一组相关的@Configuration类。SpringBoot的自动装配主要依赖于Spring框架的条件配置(Conditional Configuration)和Java的配置类(Java Config)功能。
2024-04-05 10:01:14 351 2
ES简介 入门资料.pptx
2020-08-18
PulseSecure.dmg
2020-06-05
东北林业大学使用校园网设置.zip
2020-01-04
Mybatis_day01.pdf
2019-08-08
MyBatis第一天课堂笔记.docx
2019-08-08
JAVA知识点总结.pdf
2019-07-27
jquery-3.4.1.zip
2019-07-27
JAVA并发.pdf
2019-07-27
8030387_1545711327994_牛客特制名企春招实习备战攻略-技术篇.pdf
2019-07-27
3DPhotoWall_CSS3-master.zip
2019-07-27
3DphotosWall-master.zip
2019-07-27
4_字节跳动19春招研发第三次在线笔试-A卷_牛客网.html
2019-07-11
1python安装与项目搭建.doc
2019-07-11
23490书中算法.rar
2019-07-11
JAVAEE.docx
2019-07-11
数据库实验报告.rar
2019-05-21
学生信息管理系统 项目数据库设计说明书 .doc
2019-05-21
实验三 数据库的安全性和完整性控制.doc
2019-05-21
数据库系统原理-实验-2.doc
2019-05-21
mysql5.5安装.docx
2019-05-21
计算机算法设计与分析(第4版)-王晓东习题解答.pdf
2019-05-21
计算机算法设计与分析期末考试复习题.doc
2019-05-21
算法设计和分析题目和源代码.doc
2019-05-21
登录及注册模板源码.zip
2019-05-12
SSH整合手册
2019-05-03
Java经典面试题(答案解析)
2019-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人