自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

任天柳

路漫漫其修远兮,吾将上下而求索!

  • 博客(144)
  • 资源 (2)
  • 收藏
  • 关注

原创 备忘录模式

在设计模式系列文章是阅读《设计模式之禅》之后自己新的加上在项目中的应用于思考,想要系统深入学习的朋友还是建议学习一下《设计模式之禅》,这本书中通过例子讲的更加循序渐进,也更容易理解。

2023-08-07 08:11:37 683

原创 浅谈Java中的函数式编程

Java是一门面向对象的高级语言,在Java中对象才是一等的公民。但是为什么从jdk1.8开始也开始通过Lambda表达式以及函数式接口支持函数式编程,这是因为函数式编程的流行以及他切实的在解决一些当前存在的问题。函数式编程为什么流行以及Java中提供了哪些基础的支持,在这篇文章中我们娓娓道来!

2023-08-07 07:33:50 212

原创 OpenAI文档翻译——插件模式是怎么个事

GPT的插件是怎么回事?此种模式对于未来的商业会带来哪些改变

2023-05-20 17:21:25 658

原创 OpenAI文档翻译——在不通的场景下如何更好的设计ChatGPT提示词

OpenAI能够掌握上下文并通过不同的表示方式重新进行表述。在下面的例子中让他为小孩子总结一段相对较为专业的火星介绍,我们能看到他给出了一个小孩子较为容易理解的回答。这表明OpenAI确是有很强的文本理解处理能力:给一个二年级的学生总结一下:木星是离太阳第五远的行星,也是太阳系中最大的行星。它是一颗气体巨星,质量是太阳的千分之一,但却是太阳系中所有其他行星总和的2.5倍。木星是夜空中肉眼可见的最明亮的天体之一,自古以来就为古代文明所知。

2023-04-16 14:17:52 731

原创 OpenAI文档翻译——场景的模型以及差异

OpenAI API由一系列的不同价格不同能力的模型来提供服务。你也可以通过微调模型对原有模型进行一定的训练从而解决特定领域的一些问题。模型描述GPT-4基于GPT-3.5改进而来,可以更好的理解和生成文本内容或是代码GPT-3.5基于GPT-3改进而来,可以更好的理解和生成文本内容或是代码DALL.E可以根据提示词生成图像,并根据提示词上下文对生成的图像进行修改Whisper将引擎转换成文本Embeddings一组可以将文本转换成数字的模型Moderation。

2023-04-16 14:06:22 666

原创 OpenAI文档翻译——搭建第一个自己的ChatGPT应用

这篇主要是讲了重头到位创建一个基于OpenAI API的应用程序的过程,同时给出了Node.js、Python版本的实例代码。应用程序的构建总体来说是很简单的就是一个接口调用,前提是我们需要提供密匙。如果想要获取更好的结果返回一个是可以给模型提供一些列子从而更好的帮助他理解我们想要干什么,还有一个就是调整参数,来控制生成结果的离散性。示例中给出的模型是通用模型,如果想要针对特定场景给更多的示例进行训练,则可以采用微调模型。目前国内在调用的时候可能要麻烦一些主要是网络问题以及密匙的生成。

2023-04-16 13:58:12 3004

原创 OpenAI文档翻译——核心概念(提示词、令牌、模型)

OpenAI API几乎可以应用于任何涉及理解或生成自然语言、代码或图像的任务。它提供了一系列适合不同任务的不同算力的模型来适应各种任务,这个能力也支持你去调节自己定义的模型。而不同类型的模型可以用于从内容生成到语义搜索和分类的所有事情。关键概念。

2023-04-16 13:48:56 933

原创 Spring中的AOP翻转的使用与在事务管理中的表现

Spring框架应该是作为Java开发耳熟能详的一个,并且要能够熟练掌握。但是里面知识点的零碎可能随着时间的流逝,一些知识也会变的陌生起来。Spring这一系列的文章主要是将自己对Spring的一些认识梳理一下,其中这篇文章讲的主要是AOP相关的。在很早的时候也写过一篇将IOC容器的文章,供君参考,他从Java原生的事务讲起,引入为什么要进行事务,以及原生的事务管理有哪些缺点,我们通过怎么样的方法来进行改进——代理。

2022-09-16 22:04:30 350

原创 Spring中的IOC控制翻转容器使用与总结

创建类,让这个类作为工厂Bean,实现接口FactoryBean实现接口里面的方法实现的方法中返回的Bean类型。

2022-09-16 19:59:47 328

原创 Java中的正则表达式是什么该怎么用?

正则表达式不止存在于Java中,在诸多的语言中都有而且语法相似几近相同,他主要用于编程中的文本处理。底层算法的主轴采用的是转态转移算法,当然也匹配有各种词法、语法解析。解析出来的各种规则构成了状态,根据一定的规则形成一个状态链也可以理解理解为是条件链,如果这些条件通过则说明通过正则表达式中指定的规则找到了我们目标字符串。//匹配一段文字中的所有英文单词 String context = "2005年6月,在Java One大会上,Sun公司发布了Java SE 6。

2022-08-25 12:57:25 284

原创 Java中的锁机制——中断与Synchronized

在多线程的并发下为了保证资源的安全性我们需要对资源的相关操作进行限制,这个限制就是通过锁机制实现,锁本质上就是通过在系统对一个资源做出标记,这个标记代表着一定的读写权限,那个线程拿到了这个标记其他的线程就需要进行等待。从锁的性能来讲我们可以将锁分为悲观锁、乐观锁;从使用的表现形式上来看又可以分为偏向锁、轻量级锁、重量级锁,为了最求达到最佳的性能,通常这种锁会搭配进行使用。...

2022-08-14 21:41:11 678

原创 Volatile应用与底层原理

由于CPU与内存之间速度的不一致所以设置了一种中间机制——缓存,不同的操作系统他们关于缓存的实现又是多样的,Java为了屏蔽操作系统的一些底层差异就设计了一种操作的规范——JMM(Java内存模型),JMM并不是物理存在的,他是逻辑上的一种概念。JMM有三大特性——可见性、原子性、有序性。个人感觉这与数据库底层的原理实际上有相似之处,说白了都是对数据的操作呗。源码到最终的执行会经过编译器优化重排、指令并行重排、内存系统的重排。那么应该按照什么样的顺序来判断重排以及如何重排呢?...

2022-08-12 13:54:55 176

原创 Future与CompletableFuture

Future与CompletableFuture的比较与使用

2022-08-09 09:43:51 998

原创 8、ByteBuf与ByteBuffer的区别

在Java的NIO中实现异步其中的一个关键就是利用ByteBuffer进行数据的缓冲,ByteBuffer进行缓冲的时候在读写数据之间需要进行切换。ByteBuf是Netty中又实现的一个与ByteBuffer功能相似的组件。这两个组件都应该是较为简单的,这里主要讲他们的实现机制以及如果要是面临大量数据读写的时候应该怎样使用。一、ByteBuffer原理ByteBuffer本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(数组),他是通过几个关键的属性来协调读写流进行使用的:capaci

2022-05-04 23:19:38 1236

原创 7、深究NIO中的零拷贝

一、零拷贝概述零拷贝说起来似乎是一个很高大上的东西,但是理解了之后也就那么会事,挺简单的。了解NIO中的零拷贝之前需要知道计算机在运行的过程中是分为两种状态的——用户态、核心态。这两个概念是操作系统的范畴,他们之间的切换越少越好因为会带来上下文切换的开销。还有一个就是这里说的零拷贝并不是真正意义上的一次拷贝操作都没有而是指不会发生用户态到内核态的之间的拷贝。下图中传统模式的标记为红色的两种拷贝就是这样的拷贝所以说他是很浪费资源的。有关此流程图中的线上链接为:https://www.processon.co

2022-05-04 23:17:13 220

原创 6、我眼中的Netty—源码剖析

一、总体概述每一部分的源码剖析在第一步都应该关联Netty设计模型中对应的步骤,以求知识达到连贯!先对各个模块的源码有一个跟踪理解,最后需要通过自己的语言来描述一下Netty运行的一个完整流程,这一部分将成为一个主要的知识成果输出。1、源码流程概述1、最初的时候通过Group的相关方法穿件两个Gruop,这里面关键的就是他们的构造函数是一个多态的通过一层层的调用扩开发的灵活性、可用性EventLoop是如何保证单线程执行的如果要是BossGroup中包含多个EventLoop处理的机制是什

2022-05-04 23:14:45 164

原创 5、我眼中的Netty—编解码器

一、编解码器使用概述期初使用Netty的时候感觉Netty很复杂需要做很多东西,随着学习的深入到编解码器这一部分主键的感觉实际上Netty在网络编程的场景中确实是为我们简化了很多的操作。一个是各种网络通信类型之间的交换升级还有一个的话就是我们不再需要关注资源的释放以及在NIO场景下的资源详细监听。我们业务开发人员主要关注的是编写Handler即可。同样在Netty的编解码器模块中他的使用也可以看成是对特定类型Handler的使用,有关编解码器可以大概分为两种——编码器、解码器。这两种类型的他们顶层对应的就

2022-05-04 23:12:51 298

原创 4、我眼中的Netty—EventLoop与EventLoopGroup

在Java的NIO中有Selector、Channel、Buffer三大组件。其中Selector组件是用来监听挂载到他上面的Channel的事件,当Selector监听到相关感兴趣的时间之后回交给其他的Selector或是线程/线程池来处理。在Netty中EventLoop以及他的相关类为我们做的就是这个操作,可以简单的理解他整合了Selector以及要执行具体任务的线程池。这句话说得仅仅是一个笼统的概念,具体的实现我们通过先来的文章来娓娓道来。1、EventLoop初始化源码剖析EventLoo.

2022-05-04 23:09:11 396

原创 3、我眼中的Netty—ChannelHandler以及ChannelPipeline

这篇文章讲的是的ChannelHandler、Context、Pipeline、SockeChannel相关的核心组件关系以及以及使用技巧上的验证,有关的代码以及在实操的这一篇文章讲过了,这里聚焦于此部分技术概念的验证。1、ChannelHandler体系结构描述Channel相当于是搭起来客户端与服务端之间通信的一个管道,不过在客户端与服务端之间是存在编码解码以及业务相关的处理的,而这些处理我们程序猿是可以干预的,可以干预的这些过程都都是发生在与Channel板顶的Pipeline中。Pipeli.

2022-05-04 23:06:28 303

原创 2、我眼中的Netty—实操

在Netty学习过程中一些有代表性的示例以及应用场景实现思路!

2022-05-04 23:03:31 199

原创 1、我眼中的Netty—初识

“我眼中的Netty”这一系列的文章,着重通过自己的语言来描述自己对Netty核心概念的认识。这其中不对概念做一板一眼的定义与记录。其中在”初始“的章节中,主要介绍Netty的原由,以及Netty的设计模型。一、BIO网络编程1、同步&异步与阻塞&非阻塞的区别联系这两组概念个人理解为是一个是道的层面一个是术的层面,同步&异步为道,阻塞&非阻塞为术。道的层面可以理解一个调用在没有得到结果前不会返回这就是同步,如果是异步的话就是调用会立即返回继续向下执行,被调用这通过状.

2022-05-04 23:00:57 323

原创 PMP—敏捷管理

1、重视的是:个人以及互动而不是过程和工具;可用的软件而不是完整的档案;客户合作而不是合同谈判;应对变更而不是遵循计划2、PMP是一个有力的组织根据行业的时间经验总结出的一套可行的项目实施标准,他结构化、并且涵盖方方面面;在这样一个强约束的规范中,工具的约束力大于人,所以在他的架构中可能是以工具为本位的;敏捷的思想要求的是借用工具以人为本位,而工具不做强力约束。敏捷项目的实施跟像是一定形式的乌托邦,就拿团队以及甲乙方合作这件事情来说,他是需要两情相悦,一个巴掌拍不响。在敏捷中不为了做文档而作为文档,为了用

2022-03-26 10:49:41 1611

原创 Mybatis怎么用看这里就够了

Mybatis的融合使用通常在项目中使用Mybatis的时候我们只需要写一个Mapper接口以及复制一个对应的xml文件,这是一位其他的框架——SpringBoot已经帮我们做好了一些重复性的操作,以及伴随着Mybatis—Plus的诞生我们通过代码自动生成整个开发更是简单。但是如果不能了解Mybatis的原始操作那么对Mybatis这一技术的应用就也达不到轻车熟驾。今天就是想通过这篇文章从Mybatis的手动挡说到的他自动挡——SpringBoot+Mybatis,在说到L3级别的无人驾驶——Myba

2022-03-21 10:23:44 1659

原创 我终于到清楚了Mybatis的运行机制

Mybatis源码Mybatis是我们常用的一个框架,主要用于数据库的操作,在以往的文章中已经写过Mybatis的源码分析、以及操作。在今天的这篇文章中,主要用自己的语言描述一下自己对于Mybatis源码的认识与理解,不去做具体的源码分析,具体的源码分析可以参考:Mybatis原理六大步骤详细解析_码涤生的博客-CSDN博客一、Mybatis源码概述在说Mybatis源码之前我们先来阐述一下Mybatis使用的几种过程与方法,Mybatis的使用我们可分为注解类型以及xml形式,在使用Mybat

2022-03-20 11:36:54 1070

原创 PMP学习心得(11-13章)

1、在初级的项目管理中,质量管理应该做到的个人理解是应当在项目初期梳理起来对项目实施过程中的工作的有效性,避免一头脑的开发而最后在进行测试直接交付给用户或是实施,而应该是划分成一系列的小阶段,从而确保楼不会一下塔掉。质量管理的最高境界应该是不依靠检查排查问题而是减少错误的发生,这就需要对项目的标准以及需求由精准的把控。2、项目的成果不仅仅体现在成果或者说是项目的成员是直接可以投入生产的,而是需要去培养的,这一点观念要扭转过来,在项目中也应该有意识的去培育团队,好的团队也是项目成功的重大前提。3、风险是一

2022-03-17 16:13:04 195

原创 Mysql中锁的分类与使用

在前面一系列关于Mysql的博文中讲述了Mysql的底层存储机制,以及在此之上的redo、undo日志和基于这些底层结构之上的索引以及事务控制。其中对事务的控制就是在多并发场景下的问题,在Mysql的机制中对多并发的控制还有一个重要的手段就是锁机制。一、锁的概述锁如果是从操作类型上分的话可以分为读锁、写锁,这里说的读写锁的概念与我们Java中的是相似的,可以理解为是共享锁以及独占锁。从粒度上分可以分为行锁、页锁、表锁,平常中我们使用最多的是行锁与表锁,这里面说的主要指的是锁的作用范围的一个大小,锁作.

2022-03-13 21:23:31 2171

原创 PMP8-9章

1、需求是客户方提出的一个自身的需求,范围则是在客户需求的基础上描述出我们最终要交付的成果,在项目的实际交付中合理的细化项目范围可以避免项目中的坑——客户不断变化与新增的需求。2、管理质量的过程就是不断的改进质量的过程,在正规的项目中可能就是自测与专业测试了;质量的提升在于质量的控制而非是质量的控制——对产品的检测。项目中的重点还是应该放在如何使得项目的质量做好,而非是检测出来在回锅重造。3、在DY的项目上应该就是颠倒过来的所做的接口几乎全靠测,这样就颠倒了“预防胜于检查”;在项目的前期阶段确定好需求与

2022-03-13 17:51:06 237

原创 Mysql牛客SQL语句练习

一、核心关键点的使用1、Mysql排序mysql默认采用升序的排序——ASC,如果要使用降序排序则使用DESCselect t.title,avg(s.salary) as avgfrom titles tinner join salaries s on t.emp_no = s.emp_nogroup by t.titleorder by avg desc;2、窗口函数的使用窗口函数是在Mysql之后版本出现的,可以理解为他可以在数据流的过程中对数据进行处理。处理过程中可以按照一定的规

2022-03-13 14:30:09 1424

原创 Mysql索引的创建于修改

有关索引的操作1、常看当前系统中默认的引擎show variables like ‘default_storage_engine’;2、查看表的引擎——通过看创表语句create table t1(id int) engine=MyISAM;3、建表的时候指定存储引擎create table t1(id int) engine=MyISAM;4、CREATE创建索引ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引;CREATE INDEX可对

2022-03-12 21:28:22 574

原创 通俗易懂成体系的Mysql索引优化

有关索引的机制中我们已经在《话说Mysql索引机制》 中介绍过,在这篇文章中主要想要讲述的是Mysql的常见引擎以及索引的分类、常规的索引优化建议与背后的底层机制。关于优化建议与底层机制的时候主要还是介绍原来的话说Mysql索引机制来说的,所以可以先看一下前一篇文章!一、Mysql中的引擎与索引分类个人理解引擎就是Mysql一种系统的环境或者说就像是汽车的引擎,这个引擎我们是可以替换的,然而不同的汽车引擎会给汽车提供一些不同的特性,这个特性就可以类比于我们的索引。下面首先先从Mysql的结构上入手说.

2022-03-12 21:25:16 1212

原创 Mysql中Join查询使用与原理

在Mysql中我们最终的一个操作就是查询,查询中又要当属join的应用,这里我们在SQL的层面介绍join的7中产寻区别于数据的覆盖范围,但是不同的DB他的join使用可能略有不同。eg:Mysql中是无法使用外连接查询。这个文章中的内容都来自与B站周阳老师,记录这个笔记主要也是为了加深一下自己的认识。一、概述与建表语句1、概述在Mysql中如果对join的类型不说明则默认采用的内连接——inner join。关于join这几种情况的使用通过下面的这张图以及后边的示例语句就没有什么问题了,但是他在.

2022-03-08 17:44:00 2971

原创 查询分析explain的使用

查询分析explain的使用在了解索的具体使用之前我们想了解一下MySQL中用于性能分析的工具Explain,这里面的语法是很简单的重点在于要理解其中各个字段的含义,便于可以在后面的分析中能够读懂其中的含义并加以分析。1、id表明执行顺序,id越大优先级越高优先被执行,id值相同的情况下,从上到下执行2、select_type标识出的是查询的类型,需要重点理解一下SIMPLEPRIMARYDERIVED——from中包含的子查询SUBQUERY ——在select或

2022-03-08 11:12:00 296

原创 话说Mysql索引机制

索引是数据库中非常重要的一部分,网上有关索引的资源也有很多,但是更多的都是在讲索引怎么用,很多号称是Mysql高阶的教程也可以说仅仅只是讲了Mysql索引的八股文,我们往往对于Mysql索引的机制不能够很好地理解。这里的这两篇文章是承接《大话Mysql底层事务机制》、《话说Mysql的底层存储结构》这两篇文章而来,在前边的两个文章说在掌握具体知识的基础上用自己的语言描述了自己对Mysql数据库底层存储结构的认识以及在此结构之上结合Redo、Undo日志的事务机制。这里说的索引实际上也是在理解Mysql存储.

2022-03-08 10:08:34 413

原创 PMP心得(5~7章)

商业文件重要需要着重复习成本计算为重点,关键的技术没必要学的太深因为目前还用不上1、项目集中间的项目是有项目依赖的,所以要放在一起进行管理。项目组合是为战略服务的,一个产品线我们就可以理解为是一个项目组合,项目组合包含有与项目有关的经营部分2、项目管理是聚焦于——做项目该做的全部工作,在团队管理中应该就也叫明确目标吧,同时这个项目范围的划定与区分也是为了项目可以最终被顺利验收。3、范围管理计划与需求管理计划是其余工作的一个基础,在两个的基础上我们就可以进行需求的收集与整理,得到的需要实现的需..

2022-03-03 16:32:12 122

原创 PMP学习心得(1~4章)

1、项目经理应该与时代以及国家、行业的角度挂钩2、团队的协助应该使得将团队的成员转起来,形成多部门协同理解分工与写作的一个区别2/23(1—4)1、项目整合站的层次应该是更高一点,是为了实现某一个大的目标(战略)而进行的一系列操作,这些操作就是项目、项目集或是子项目整合,他会对中间的一些项目或是内容做一些取舍;而项目集是项目之间存在一定的依赖所以要进行一定的整合,开一同开展实施。前者可以理解为是道,而后者需要关注的术层面的。2、迭代型声明周期他的变化更像是不得不的,其中的一些变化是需要在前期的实施

2022-03-03 16:30:57 134

原创 大话Mysql底层事务机制

以往已经总结过Mysql底层实现上的一些细节,上一篇的文章也用通俗的语言说了一些自己对Mysql底层存储实现上的认识与理解。这篇文章就在原来的基础上来说一下基于redo、undo日志实现的数据安全存储、以及结合存储机制和版本链等技术对Mysql事务的实现。在文章中主要是分为两部分一个是redo、undo日志的结构、关键属性的相关计算,Mysql事务以及隔离级别实现的原理!课堂笔记:(3条消息) Mysql二——事务控制背后的redo、undo以及MVCC_任天柳-CSDN博客思维导图:https://.

2022-03-03 16:23:06 630

原创 话说Mysql的底层存储结构

有关Mysql底层存储结构前面已经写过一篇文章,当然这文章主要是基于听爪哇课程之后做的笔记,过了一段时间之后有重新看一遍,就用通俗的话说一下自己对这一块的理解。过往笔记:(23条消息) Mysql基础底层存储原理与Mysql的索引分类与实现_任天柳-CSDN博客文章导图:Mysql上 | ProcessOn免费在线作图,在线流程图,在线思维导图一、概述现在我们讨论的是Mysql的存储,通常我们是在cpu中处理数据,但是由于成本以及存储特性最终数据的保存又一定是要到磁盘的。CPU的运行速度与IO读.

2022-02-28 22:41:12 928

原创 ArrayList使用remove()移除元素失败

List使用remove移除元素失败

2022-02-27 09:34:02 916

原创 三分钟理解Java权限修饰符

Java中的权限修饰符应该是Java入门的一个知识点,但是最近竟然多多少少感觉有些模糊不清,那么你真的指导他的权限范围吗?里真的了解的很清楚吗?这篇文章就是为了告诉自己,我理解清楚了,不怂了。Java的权限修饰符总共有四个private、default、protected、public,其中default是默认的一个访问修饰符,在使用的时候我们可以省略不写。private很好理解就是只有类内部才可以访问,而public可以理解为所有的地方都可以访问。内部类的已有属性可以被他的外部类访问:如果是同

2021-12-27 15:54:28 138

原创 Java集合——HashMap源码

Java集合知识图谱:https://www.processon.com/view/link/61bf27a17d9c087834f1d352问题:链表中的key放的到底是什么,Hash值吗,hash会有冲突吗,hash生成的原理是什么map中的阈值是如何确定下来的,意义是什么一、二三树2-3树是一种绝对平衡多叉树,在这棵树中他的任意一个节点的左右节点高度是相同的。2-节点表示节点中保存一个元素,3-节点则表示节点中保存两个元素。二、红黑树1、红黑树的五大概念每个节点要么是红色.

2021-12-19 20:43:23 927

深入理解Java虚拟机——Java内存区域与内存溢出异常.xmind

这是自己读《深入理解Java虚拟机》时候用XMind建立的思维导图,目的是为了能够帮助自己整理、梳理相关的知识以及方便自己日后的回顾,帮助自己建立起关于JVM的知识体系,里边也有一些对相关内容的补充,通过备注的形式展现。

2020-04-04

深入理解Java虚拟机——Java发展史.xmind

这是自己读《深入理解Java虚拟机》时候用XMind建立的思维导图,目的是为了能够帮助自己整理、梳理相关的知识以及方便自己日后的回顾,帮助自己建立起关于JVM的知识体系,里边也有一些对相关内容的补充,通过备注的形式展现。

2020-04-04

空空如也

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

TA关注的人

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