码上腾飞
码龄8年
关注
提问 私信
  • 博客:180,061
    180,061
    总访问量
  • 316
    原创
  • 1,704,814
    排名
  • 11
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-05-17
博客简介:

Frankltf的博客

查看详细资料
个人成就
  • 获得37次点赞
  • 内容获得9次评论
  • 获得186次收藏
  • 代码片获得112次分享
创作历程
  • 1篇
    2021年
  • 67篇
    2020年
  • 90篇
    2019年
  • 97篇
    2018年
  • 61篇
    2017年
成就勋章
TA的专栏
  • java
    62篇
  • 前端
    3篇
  • php
    23篇
  • openresty/nginx/lua
    13篇
  • 算法
    18篇
  • linux
    19篇
  • 架构
    37篇
  • 数据库
    12篇
  • go
    3篇
  • 管理
    8篇
  • 开源选集
    6篇
  • 容器
    5篇
  • 推荐
兴趣领域 设置
  • 大数据
    hadoophivespark
  • 后端
    spring架构
  • 服务器
    linux
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

《技术的正宗与野路子》

“要把知识梳理成系统的结构,要让头脑中的知识层次清楚,为此,我们需要阅读恰当的东西,需要不断地练习,需要克服种种困难。成长没有捷径可走。需要的是一个一个坚实的突破。”--- http://zhangtielei.com/posts/blog-programmer-learn.html...
原创
发布博客 2021.06.03 ·
203 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

自定义同步器

自定义同步器假如你想要实现一个自定义同步器,官方推荐的做法是将继承了AQS类的子类作为自定义同步器的内部类,而自定义同步器中相关的操作只需代理成子类中对应的方法即可。往下用一个简单的例子看看如何实现自己的锁,由于同步器被分为两种模式,独占模式和共享模式,所以例子也对应给出。独占式独占模式采取的例子是银行服务窗口,假如某个银行网点只有一个服务窗口,那么此银行服务窗口只能同时服务...
原创
发布博客 2020.12.08 ·
444 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ProtoBuf 与 JSON性能比较

序列化:ProtoBuf 与 JSON 的比较 !介绍ProtoBuf 是google团队开发的用于高效存储和读取结构化数据的工具。什么是结构化数据呢,正如字面上表达的,就是带有一定结构的数据。比如电话簿上有很多记录数据,每条记录包含姓名、ID、邮件、电话等,这种结构重复出现。同类XML、JSON 也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将...
原创
发布博客 2020.12.08 ·
1667 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

spring AOP

AOPAOP面向切面编程,生成目标方法所属类的代理类。代理类和目标类的关系:代理类继承目标类,并重载了目标类的方法。代理类重载方法体里加入了切面业务逻辑和目标类方法的调用。用户如何使用:从容器中获取目标类,实际上是获取代理类的实例, 代理类实例调用重载了父类的方法,就实现了AOP。AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,...
原创
发布博客 2020.12.05 ·
170 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

ElasticSearch之分词器edge_ngram和ngram的区别

ElasticSearch一看就懂之分词器edge_ngram和ngram的区别1 year agoedge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。这里,我们统一用字符串来做分词示例:字符串edge_ngram分词器,分词结果如下:{...
原创
发布博客 2020.11.16 ·
964 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

进程缓存Caffeine

简介对于用户来说,响应的快慢是判断一个系统的重要指标,缓存就是必不可少的优化工具,在一个高并发的场景中往往占有着非常重要的角色,所以开发人员需要根据不同的应用场景来选择不同的缓存框架,比如分布式缓存redis,或者进程缓存GuavaCache。收存储的元素,而GuavaCache是一款非常优秀的进程缓存框架,很好的提供了读写和自动失效的功能。而今天要介绍的进程缓存Caffeine,...
原创
发布博客 2020.11.07 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

struct -- 结构体

struct -- 结构体structGo语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:type person struct { name string age int}看到了吗?声明一个s...
原创
发布博客 2020.10.27 ·
298 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

`main`函数和`init`函数

main函数和init函数Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个package中每个文件只写一个init函数。Go程序会自动调...
原创
发布博客 2020.10.26 ·
269 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

go函数传值、传引用以及函数作为值类型

传值与传指针当我们传一个参数值到被调用函数里面时,实际上是传了这个值的一份copy, 当在被调用函数中修改参数值的时候,调用函数中相应实参不会发生任何变化,因为数值变化只作用在copy上。为了验证我们上面的说法,我们来看一个例子package mainimport "fmt"//简单的一个函数,实现了参数+1的操作func add1(a int) int { a = ...
原创
发布博客 2020.10.26 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

go new和make

Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。简单来说,new只分配内存,make用于slice,map,和channel的初始化。内置函数new按指定类型长度分配零值内存,返回指针,并不关心类型内部构造和初始化方式。内置函数make对引用类型进行创建,编译器会将make转换为目标类型专用的创建函数,以确保完成全部内存分配...
原创
发布博客 2020.10.26 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

粘包和拆包

粘包和拆包产生粘包和拆包问题的主要原因是,操作系统在发送TCP数据的时候,底层会有一个缓冲区,例如1024个字节大小,如果一次请求发送的数据量比较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就形成了粘包问题;如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送。如下图展示了粘包...
原创
发布博客 2020.10.23 ·
267 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Spring Boot中使用WebSocket总结

简介所谓WebSocket, 类似于Socket,它的作用是可以让Web应用中的客户端和服务端建立全双工通信。在基于Spring的应用中使用WebSocket一般可以有以下三种方式:• 使用Java提供的@ServerEndpoint注解实现• 使用Spring提供的低层级WebSocket API实现• 使用STOMP消息实现使用Java提供的@ServerEndpoint注...
原创
发布博客 2020.10.22 ·
546 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

防盗链

什么叫防盗链说白了防盗链就是说这种加了防盗链签字的URL,而经过签名的URL能跟网络服务器的安全性体制相辅,进而将URL的应用管理权限限定在客户的APP,与此同时第三方平台即便取得URL也没法开展再次应用和散播。即选用服务端程序编写,根据URL过虑技术性保持的避免盗链的手机软件。何时必须提升防盗链(1)推流推流全过程中必须提升防盗链,由于客户的直播间码ID非常容易被第三方平台故意...
原创
发布博客 2020.10.21 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java的JIT

什么是JIT:JIT编译器(just in time 即时编译器),当虚拟机发现某个方法或代码块运行特别频繁时,就会把这些代码认定为(Hot Spot Code 热点代码,为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,完成这项任务的正是JIT编译器。目前主要的热点 判定方式有以下两种:基于采样的热点探测:采用这种方法...
原创
发布博客 2020.10.17 ·
223 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++指针和引用及区别

1、指针和引用的本质(是什么)(1)指针是存放内存地址的一种变量,特殊的地方就在它存放的是内存地址。因此,指针的大小不会像其他变量一样变化,只跟当前平台相关——不同平台内存地址的范围是不一样的,32位平台下,内存最大为4GB,因此只需要32bit就可以存下,所以sizeof(pointer)的大小是4字节。64位平台下,32位就不够用了,要想内存地址能够都一一表示,就需要64bit(但...
原创
发布博客 2020.10.16 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

GO GC 垃圾回收机制

go语言垃圾回收总体采用的是经典的mark and sweep算法。• v1.3以前版本 STW(Stop The World)golang的垃圾回收算法都非常简陋,然后其性能也广被诟病:go runtime在一定条件下(内存超过阈值或定期如2min),暂停所有任务的执行,进行mark&sweep操作,操作完成后启动所有任务的执行。在内存使用较多的场景下,go程序在进行垃圾回收...
原创
发布博客 2020.10.16 ·
169 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言GMP模型

进程、线程、协程进程:进程是系统进行资源分配的基本单位,有独立的内存空间,单切换代价极高,进程间通信也比较麻烦线程:线程是CPU调度和分派的基本单位,线程依附于进程,与其他线程共享进程的资源,仅有自己的(程序计数器,一组寄存器的值,和栈),线程切换代价小(但是线程之间的切换可能会设计用户态和内核态的切换),由于共享进程资源,所以线程之间通信比较方便。协程:协程是一种用户态的轻量级...
原创
发布博客 2020.10.16 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

鸭子类型

那什么鸭子模型?鸭子模型的解释,通常会用了一个非常有趣的例子,一个东西究竟是不是鸭子,取决于它的能力。游泳起来像鸭子、叫起来也像鸭子,那么就可以是鸭子。动态语言,比如 Python 和 Javascript 天然支持这种特性,不过相对于静态语言,动态语言的类型缺乏了必要的类型检查。Go 接口设计和鸭子模型有密切关系,但又和动态语言的鸭子模型有所区别,在编译时,即可实现必要的类型检查...
原创
发布博客 2020.10.16 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

go defer

最近看到一道Go语言的面试题,如下:package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func(...
原创
发布博客 2020.10.15 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

go中的package和main关系

• 在Go语言中,和java的main是有所区别的,具体区别如下:在java中,任何一个java文件都可以有唯一一个main方法当做启动函数在go中,则是任何一个package中,都可以有唯一一个带有main方法的go文件也就是说,一个package下,只能有一个main方法,不管是在那个文件中,但是只能有一个,这个package是按照文件夹区分的• go run其实是执行一个e...
原创
发布博客 2020.10.15 ·
2184 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏
加载更多