自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Tensorflow-GPU工具包了解和详细安装方法

通过之前的文章学习,我们已经安装好了Anaconda和Tensorflow2.4,但是在后期的学习中,会涉及到神经网络的学习等数据量较大的操作,普通的tensorflow-cpu版本处理速度较慢,所以我们再安装一个更加强大的tensorflow-gpu版本,它可以调用conda的接口实现gpu运算的平台,利用显卡帮助我们运算程序,以提高后期学习中的程序处理速度,提高学习效率。

2024-06-16 08:19:33 802 1

原创 人工智能发展历程了解和Tensorflow基础开发环境构建

本文章将深入探讨人工智能发展历程,逐步延申到学习路径,再到动手搭建深度学习环境,逐渐进入人工智能的开发者世界.

2024-06-13 22:54:44 904

原创 Langchain:生态能力学习和智能代理体系对比

本文将继续延续Langchain专栏文章,本文将继续沿用文章风格,最简单易懂的语言讲解Langchain的智能体架构(Agent)、LangServe和Langchain.js,最后再对比SK之间的区别,逐渐深入学习Langchain的高级能力,帮助更好更快的接触大模型。

2024-05-17 23:55:43 415 4

原创 Langchain:数据连接封装、缓存封装和LCEL学习和探索

本文将继续延续Langchain专栏文章,本文将讲解Langchain的数据连接封装、缓存封装和LCEL,逐渐深入学习Langchain的高级能力,帮助我们更好更快的接触大模型。

2024-05-17 09:21:16 1150

原创 LangChain:模型 I/O 封装使用解析和感触

本文将继续延续Langchain专栏文章,本文将讲解Langchain的模型 I/O 封装。Langchain将不同的模型,统一封装成一个接口,方便更换模型而不用重构代码。

2024-05-12 23:46:43 812 11

原创 LangChain:大模型框架的深度解析与应用探索

在数字化的时代浪潮中,人工智能技术正以前所未有的速度蓬勃发展,而大模型作为其中的翘楚,以生成式对话技术逐渐成为推动行业乃至整个社会进步的核心力量。往近一点来说,在公司,不少产品都戴上了人工智能的帽子,各种高大上人工对话界面,作为一个已经工作8年的老程序员来说,一种压力感扑面而来,这使得我不得不去接受新的东西,在学习和使用Prompt、function-call和Rag后发现了一个对AI初学者极其友好的框架——Langchain,帮助我更好更快的使用大模型。

2024-05-12 07:29:29 1185 16

原创 Java高阶私房菜:JVM性能优化案例及讲解

JVM性能优化是一项复杂且耗时的工作,该环节没办法一蹴而就,它需要耐心雕琢,逐步优化至理想状态。“性能调优” 该词是那么的高大上,但其实工作中因投入产出比(ROI)的关系,我们经常不会过多投入到这个工作中,而是更多投入到其他ROI更高的环节上,或有金主爸爸的允许下直接升级设备/服务器的性能,那为什么我们还要大费周章的去讲JVM呢?因为JVM性能调优是性能提升的最后一步,当所有环节都无法加工优化时,就需要在这个环节操刀了,其次就是架不住面试馆的会问呀。

2024-05-04 23:24:04 1634 18

原创 Java高阶私房菜:新版JVM垃圾GC日志参数配置实战讲解

本文章主要讲述了JVM GC日志框架的介绍和参数详解,并结合实际工作中的经验讲解其使用场景,希望能给有需要的人给予帮助和启发。

2024-05-04 17:13:37 1053 7

原创 Java高阶私房菜:新版JVM常用诊断命令讲解和调试工具实战

该文章主要讲述了JVM的相关高频命令和生产环境中遇到线程死锁、死循环、内存泄漏等问题处理方案。

2024-05-03 23:58:16 612 3

原创 Java高阶私房菜:JVM分代收集算法介绍和各垃圾收集器原理分解

现在市面上充斥着许多对于JVM垃圾收集器教程,有零基础的,有专讲的 ... 这些教程或文章大都长篇大论的细扣字眼,内容繁多且没有重点,看过便会忘,本篇集结了9年老JAVA工作经验,专讲面试和工作中使用到的,一站式讲解,帮助你疏通学习脉络,少走弯路。

2024-05-02 15:04:03 1463 10

原创 Java高阶私房菜:JVM垃圾回收机制及算法原理探究

废话不多说,本文主要讲述什么是垃圾回收机制,以及核心的几种垃圾回收算法,逐步深入浅出讲解由来和应用场景。

2024-04-27 22:46:29 1486 4

原创 Java高阶私房菜:JVM类加载机制和双亲委派模型

在Java开发中,类加载子系统是一个至关重要的组成部分,这是Java开发者值得深入研究的重要主题之一。通过了解类加载器的结构和工作原理,我们可以更好地掌握Java开发中的核心概念和技术,并在实际项目中更加游刃有余。在文章中将提及类加载的高频面试题和案例,希望能给准备跳槽的小伙伴带来帮助,接下来让我们逐步深入了解JVM内部原理,探索里面的奥秘吧!

2024-04-25 23:57:16 1525 3

原创 服务运维篇-通过防火墙抵御渗透扫描

这段时间为应对渗透攻击(GFYL),各服务都要做好端口控制,为此分享和记录工作中的一个方法,希望对各位有这问题的人有所帮助。

2024-04-23 18:35:19 350 2

原创 JAVA高阶私房菜:JVM虚拟机核心概念及参数微调实验

JVM迄今为止都是程序员老生常谈的话题,实话说我每一次研究探索完后都会忘一次,但好在每次都有新的见解,再加上JDK每迭代更新一版都会有新的特性和改良,对此,我们就当温故知新,增进新的理解,弥补不足,在这里我们不讲大而全的知识,也不会讲老旧的知识点,主要围绕在工作和面试中最高频的点,聚焦于JDK9之后的关键内容进行剖析。

2024-04-21 16:17:41 1070 1

原创 Java高阶私房菜:高并发之线程池底层原理学习

以往我们需要获取外部资源(数据源、Http请求等)时,需要对目标源创建链接对象,三次握手成功后方可正常使用,为避免持续的资源占用和可能的内存泄漏,还需要调用目标对象close方法释放资源销毁对象。这一建一销的过程在开发阶段倒感觉不到什么影响,但在生产环境,投产阶段中成百上千的并发请求涌入,小小的不足被不断放大,严重可拖垮系统。为节省资源初始化时间,提高输出有效性,池化资源应运而生。接下来我将从由来到原理,到应用场景讲解线程池,希望给各位带来新的启发。

2024-04-20 23:56:09 1327

原创 Java高阶私房菜:快速学会异步编程CompletableFuture

为了使主程代码不受阻塞之苦,一般使用异步编程,而异步编程架构在JDK1.5便已有了雏形,主要通过Future和Callable实现,但其操作方法十分繁琐,想要异步获取结果,通常要以轮询的方式去获取结果,在JDK8后首次引入的CompletableFuture,简化异步编程复杂性,提供了函数式编程让代码更加简洁,可以在任务完成后做对应的callback回调处理。接下来,我带你一步步了解并掌握CompletableFuture。

2024-04-17 23:07:13 811

原创 Java高阶私房菜:深入解析多线程场景下ThreadLocal应用

相信小伙伴们在工作中有听说过Threadlocal,或者在实际项目中有大量的使用Threadlocal,有些人可能没用过,不过没关系,通过本文你就能从小白到高手蜕变,如果使用过,同样也能收获不一样的知识点。

2024-04-14 23:28:12 1273 1

原创 Java高阶私房菜:并发编程原理深度剖析

"Java并发编程"一直以来熟悉又陌生,还记得从刚接触时总能听到java的高级能力,也憧憬着自己有那么天能够写出优雅又实用代码来应对海量并发场景,但一路走下来,实际业务能使用上高并发场景的也比较少,对这块的理解就更少了。接下来,本文将带你逐步理解并发编程的核心要素,以及Java开发中常见的各种锁类型设计和性能分析,温故而知新,希望能给予新的启发。

2024-04-13 23:33:30 1092

原创 Java高阶私房菜:探索反射机制应用及高级场景

“反射”作为Java特性之一,为我们程序在运行时动态地获取类的信息、调用对象的方法和操作对象的属性提供了途径。并且通过使用反射,我们可以在编译期间未知具体类型的情况下,对类进行操作。接下来我们将系统重新回顾一下"反射",结合新的应用场景,温故而知新,希望能给予新的启发。

2024-04-13 16:00:07 1327

原创 浏览器指纹介绍及访客唯一标识实现

浏览器指纹(设备终端指纹)是通过浏览器对网站可见的配置来匿名识别浏览器,从硬件、操作系统、浏览器、网络等维度进行分析。浏览器指纹现在也比较多大厂都在使用:反欺诈,防止刷票脚本、机器人、异地可疑登录提示等,在注重用户隐私的情况下,进行一些数据分析,比如阿里云、淘宝等账号登录,常用设备和非常用设备登录是不一样的验证级别。

2024-04-07 22:51:35 443

原创 Java高阶私房菜:探索泛型之妙用

“泛型”(generics)作为Java特性之一,已经出现较长时间了,相信大家或多或少有接触过,接下来我们将系统重新回顾一下泛型,温故而知新,希望能有些新的启发。Java中的泛型作为V1.5后新增的特性,在JDK源码、中间件源码中有大量的使用,如果掌握了泛型将更容易理解源码,也提升代码抽象能力,封装通用性更强的组件。

2024-04-07 22:47:46 1092

原创 算法之美:缓存数据淘汰算法分析及分解实现

在设计一个系统的时候,由于数据库的读取速度远小于内存的读取速度,那么为加快读取速度,需先将一部分数据加入到内存中(该动作称为缓存),但是内存容量又是有限的,当缓存的数据大于内存容量时,就需要删除一部分数据,以加入新的数据。这时候需要设计一种淘汰机制,计算出哪些数据删除,哪些数据保留,常见的淘汰算法有FIFO、LRU、LFU等淘汰算法,接下来我们将一一讲解及实现。

2024-04-06 15:47:37 730

原创 数据结构篇:深度剖析LSM及与B+树优劣势分析

本文旨在探讨LSM的特性及其在实际应用场景中的作用,同时对其与B+树进行比较,以帮助更好地理解和运用这两种数据结构。

2024-04-06 00:36:52 1954 1

原创 数据结构篇:深度剖析跳跃表及与B+树优劣分析

本文旨在探讨跳跃表的特性及其在实际应用场景中的作用,同时对其与B+树进行比较,以帮助更好地理解和运用这两种数据结构。

2024-04-05 21:38:06 1577 3

原创 高并发场景下分布式事务处理方案探讨及代码实现

本文将深入探讨高并发场景下,分布式事务处理的方案。随着互联网的快速发展,对系统性能和稳定性的需求也日益增长,尤其在高并发场景下,分布式事务成为重中之重。在本文中,我将分享我对分布式事务的理论理解,并结合个别典型业务应用场景,最终通过代码实现来展示解决方案。希望通过这篇博客能够对读者在面对类似挑战时提供一些帮助和启发。

2024-04-04 22:56:39 1379

原创 高并发场景下的流量包扣减流程实现

在低并发场景下,直接通过RPC调用进行业务处理通常是一种简单而有效的方案。这种方法不仅省去了复杂的中间件和额外的通信开销,而且配合强一致性的业务逻辑,可以确保数据的一致性。然而,在高并发场景下,这种简单直接的方式可能会显露出其不足之处。

2024-04-02 23:39:57 467

原创 Redis中惰性策略的启发和流量包应用设计

在技术领域,许多中间件之所以获得巨大成功,部分原因在于它们所采用的思想之先进。这些思想解决了一个个世纪难题,接下来我将讲述一个我学习到的思想,并将其应用至工作中的案例。

2024-04-01 23:35:55 987

原创 Redission分布式锁介绍和配置引入

本人在实际项目用于确保Key一致性经常使用的一种加锁方式,帮助分布式环境中互斥访问。很多人问不用锁不是一样完成目标吗?但需要清楚的是这是在高并发的场景下,多节点同时访问缓存的场景,是一般单体项目所无法比拟的,使用锁方式可以控制并发访问,避免缓存击穿和雪崩等问题。(关于缓存击穿和雪崩等后续会出单独一篇文章讲述,敬请期待...),以下我记录了一般引入方式和使用方式。

2024-03-31 23:25:40 535

原创 数据结构篇:基础数据结构认识及编码实现

相信各位在大学数据结构课程便学习了栈、队列和链表的概念,在此我们从编码层面去理解其中的奥义。

2024-03-31 20:35:16 563

原创 算法之美:堆排序原理剖析及应用案例分解实现

这段时间一直在持续更新关于二叉树的专栏文章,我相信小伙伴们对于二叉树的基本原理已经有了初步的了解。接下来,我将会更深入地探究二叉树的原理,并且展示如何将这些原理应用到更广泛的场景中去。文章将延续前面文章的风格,尽量精炼明了,减少冗长的废话,旨在简洁清晰地阐述二叉树的原理及其应用。让我们一起深入了解,并探索其潜在的价值吧!

2024-03-30 20:22:34 1684 2

原创 算法之美:二叉堆原理剖析及堆应用案例讲解及实现

堆(Heap)是计算机科学中一类特殊的数据结构,通常是一个可以被看做一棵完全二叉树的数组对象。完全二叉树只有最下面两层节点的度可以小于2,并且最下层的叶节点集中在靠左连续的边界,只允许最后一层有空缺结点且空缺在右边,完全二叉树需保证最后一个节点之前的节点都齐全;对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1大顶堆是一种完全二叉树,其每个父节点的值都大于或等于其子节点的值,即根节点的值最大,每个节点的两个子节点顺序没做要求,和之前的二叉查找树不一样。

2024-03-29 23:50:40 1259

原创 算法之美:B+树原理、应用及Mysql索引底层原理剖析

在上一篇文章我主要讲解了B-Tree,学习要学牢,讲究举一反三,本篇我将继续讲解B+Tree原理及详细剖析Mysql的B+树应用

2024-03-28 23:36:16 1088

原创 算法之美:二叉树演进之多叉树及B-Tree树原理

在上篇文章我们了解了平衡二叉树的优势,了解到平衡二叉树能够对不平衡的节点施加旋转,使得树达趋于平衡,以提升查询效率,操作效率很高,与之同时也存在着不少的问题,例如我们在实际使用中会通常会将树加载到内存中,如果节点少的话倒没有什么问题,但节点一多,例如上百万的节点,则高度很大,这时候进行一次IO操作就会出现性能问题。关于此问题我们详细展开,平衡二叉树每个节点只存储一个键值和数据的,每个磁盘块仅仅存储一个键值和数据。

2024-03-27 23:52:54 865

原创 算法之美:二叉树演进之AVL平衡二叉树底层原理

在之前的文章中,我们初步了解了二叉查找树(又称二叉排序树),这使我们意识到使用特定策略的查询可以显著提高查找效率。本文将进一步探讨二叉树的演进。由于树相关算法较多且相对复杂,因为我后续将拆解讲述,细嚼慢咽。

2024-03-27 00:00:33 455

原创 分布式应用下登录检验解决方案

JWT 是一个开放标准,它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名。说白了就是通过一定规范来生成token,然后可以通过解密算法逆向解密token,这样就可以获取用户信息。生产的token可以包含基本信息,比如id、用户昵称、头像等信息,避免再次查库,可以存储在客户端,不占用服务端的内存资源,在前后端分离项目中经常使用。

2024-03-25 23:08:04 480

原创 Spring自定义注解防重提交方案(参数形式&Token令牌)

防重提交通常在需要防止用户重复提交表单或执行某些敏感操作时使用,以确保系统的数据一致性和安全性,本文章集结了通用场景下防重提交(参数形式&Token令牌),采用Java的特性(注解和AOP),配合Redis进行实现,使用方便有效。

2024-03-25 10:57:49 1005

原创 第三方支付流程设计及微信支付实现

商户平台对接支付系统使得平台具备了商业价值,支付系统包括了第三方支付和聚合平台,第三方支付是指具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,通过与银行支付结算系统接口对接而促成交易双方进行交易的网络支付模式,而聚合支付是相对第三方支付而言的,作为对第三方支付平台服务的拓展。第三方支付是介于银行和商户之间的,而聚合支付是介于第三方支付和商户之间。

2024-03-24 21:52:52 1116

原创 算法之美:揭秘中间件中的二分查找与树结构应用

平时写业务代码的时候很少写对应的算法,因为很少会在内存中存储大量数据,在需要比较大量数据的查找时,多会依赖的中间件,而中间件底层就应用了很多不同算法,尤其是树结构的查找存储算法,二分查找算法在树里面有大量应用。

2024-03-24 00:03:04 922 2

原创 冗余双写方案下数据一致性问题解决及延申问题处理方案

主要整理了采用冗余双写方案后的问题解决方案。

2024-03-23 22:59:58 1150 1

原创 分库分表场景下多维查询方案探究

在采用分库分表设计时,通过一个PartitionKey根据散列策略将数据分散到不同的库表中,从而有效降低海量数据下C端访问数据库的压力。例如,生成的短链码散列到不同的数据库抵御了海量消费者的访问压力,但在业务层面上,商家无法查询到自己旗下生成的所有短链码。定义hash对应的库表策略关系,每次生成库表位时,根据商家的唯一标识进行hash,找到固定的库表位,然后将短链写入该库表中。当商家查询时,同样根据商家的唯一标识进行hash,找到可能在的库表,采用笛卡尔积方式将数据查出,此种方式不触发全库表路由。

2024-03-21 23:31:53 319

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除