51CTO首页
AI.x社区
博客
学堂
精品班
直播训练营
企业培训
鸿蒙开发者社区
WOT技术大会
AIGC创新中国行
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
2024年软考
PMP项目管理
软考资讯
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO题库小程序
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方件
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
认证
技术团队
企业
服务设计思考:平台化
平台是一套完整的服务。也是一套内部自洽的系统。核心在于分离,业务与通用服务隔离,业务与通用功能隔离。总览目标:●对需求方:快速响应。可以敏捷地进行需求迭代。●对第三方业务方:以产品的方式提供服务。所见即所得。所有功能对业务方透明。●对测试方:简易明了的测试方式。利于自动化测试,灰度测试。●对运维方:持续集成,自动化编排,自动化部署。●数据方:提供多维度,详尽的服务数据。可以给数据方提供简便的数...
大家好我是佩奇
0回复
2210浏览
分布式数据库
开发语言
高性能解决线程饥饿的利器 StampedLock
概览在JDK1.8引入StampedLock,可以理解为对ReentrantReadWriteLock在某些方面的增强,在原先读写锁的基础上新增了一种叫乐观读(OptimisticReading)的模式。该模式并不会加锁,所以不会阻塞线程,会有更高的吞吐量和更高的性能。跟着“码哥字节”带着问题一起来看StampedLock给我们带来了什么…●有了ReentrantReadWriteLock,为何还要引入StampedLock?●什么是乐观读?●在读多写少的并发场景下,StampedLock如何解决写线程...
大家好我是佩奇
0回复
1881浏览
微服务
分布式数据库
Tomcat 架构原理解析到架构设计借鉴(上篇)
Tomcat架构原理解析到架构设计借鉴Tomcat发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat作为JavaWeb开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而...
大家好我是佩奇
0回复
3201浏览
开发语言
微服务
经典 O(n²)比较类排序算法
经典O(n²)比较类排序算法查看完整代码可跳转GitHub:https:github.comUniqueDongalgorithms.git摘要:排序算法太多了,很多甚至连名字你都没听过,比如猴子排序、睡眠排序等。最常用的:冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、基数排序、桶排序。根据时间复杂度,我们分三类来学习,今天要讲的就是冒泡、插入、选择排序算法。十种常见的的排序算法可以分两大类:比较类排序:通过比较来决定元素的...
大家好我是佩奇
0回复
3199浏览
框架语言
开发语言
微服务
递归最佳解析
摘要:递归是一种应用非常广泛的算法(或者编程技巧)。之后我们要讲的很多数据结构和算法的编码实现都要用到递归,比如DFS深度优先搜索、前中后序二叉树遍历等等。所以,搞懂递归非常重要,否则,后面复杂一些的数据结构和算法学起来就会比较吃力推荐用户注册领取佣金很多人都遇到过,很多App在推广的时候都是这个套路。「萧何」引荐「韩信」加入刘邦阵营,「韩信」又引荐了那些年上铺的兄弟「韩大胆」加入。我们就可以认为「...
大家好我是佩奇
0回复
2248浏览
分布式数据库
微服务
9.队列-生产消费模式
队列:生产消费模式及线程池的运用向固定大小的线程池投放请求任务时,若果线程池中没有空闲资源了,这时候还有新的请求进来,线程池如何处理这个请求?拒绝请求还是排队?使用怎样的处理机制一般两种策略:●直接拒绝任务请求;●将请求排队,等有空闲线程的时候取出排队的请求继续处理。那如何存储排队的请求呢?这就是今天要讲的话题。其底层的数据结构就是今天我们要讲的内容,「队列」Queue。完整代码详见GitHub:https:gi...
大家好我是佩奇
0回复
2224浏览
开发语言
分布式数据库
容器
Tomcat 架构原理解析到架构设计借鉴(下篇)
续:Tomcat架构原理解析到架构设计借鉴(上篇)Tomcat为何打破双亲委派机制双亲委派我们知道JVM的类加载器加载Class的时候基于双亲委派机制,也就是会将加载交给自己的父加载器加载,如果父加载器为空则查找Bootstrap是否加载过,当无法加载的时候才让自己加载。JDK提供一个抽象类ClassLoader,这个抽象类中定义了三个关键方法。对外使用loadClass(Stringname)用于子类重写打破双亲委派:loadClass(Stringname,booleanresolve)pub...
大家好我是佩奇
0回复
2327浏览
框架语言
容器
Druid:通过 Kafka 加载流数据
开始本教程演示了如何使用Druid的Kafkaindexing服务从Kafka流中加载数据至Druid。在本教程中,我们假设你已经按照quickstart文档中使用microquickstart单机配置所描述的下载了Druid,并在本机运行了Druid。你不需要加载任何数据。下载并启动KafkaApacheKafka是一种高吞吐量消息总线,可与Druid很好地配合使用。在本教程中,我们将使用Kafka2.1.0。在终端运行下面命令下载Kafka:curlOhttps:archive.apache.orgdistkafka2.1.0kafk...
大家好我是佩奇
0回复
2153浏览
开发语言
框架语言
微服务
Tomcat 高并发之道原理拆解与性能调优(下篇)
续:Tomcat高并发之道原理拆解与性能调优(上篇)连接器之IO模型与线程池设计连接器主要功能就是接受TCPIP连接,限制连接数然后读取数据,最后将请求转发到Container容器。所以这里必然涉及到IO编程,今天带大家一起分析Tomcat如何运用IO模型实现高并发的,一起进入IO的世界。IO模型主要有5种:同步阻塞、同步非阻塞、IO多路复用、信号驱动、异步IO。是不是很熟悉但是又傻傻分不清他们有何区别?所谓的IO就是计算机内存与外部设...
大家好我是佩奇
0回复
5129浏览
开发语言
微服务
Tomcat 高并发之道原理拆解与性能调优(上篇)
上帝视角拆解Tomcat架构设计,在了解整个组件设计思路之后。我们需要下凡深入了解每个组件的细节实现。从远到近,架构给人以宏观思维,细节展现饱满的美。关注「码哥字节」获取更多硬核,你,准备好了么?上回「码哥字节」站在上帝视角给大家拆解了Tomcat架构设计,分析Tomcat如何实现启动、停止,通过设计连接池与容器两大组件完成了一个请求的接受与响应。连接器负责对外交流,处理socket连接,容器对内负责,加载Servlet以及...
大家好我是佩奇
0回复
2660浏览
开发语言
框架语言
这个开源组织里的项目都是精品
前言在开源中国里,不知道大家有没有留意到一个Java开源组织——Dromara?这个组织是由ApacheShenYu(前身是Soul网关)的作者创立,多位Java开源作者参与的一个Java开源组织。在开源中国社区,很多Java开源作者都是各自为战,独立运营项目。Domara组织的诞生就是为了联合Java开源的力量,共建社区,资源共享,共同推行中国Java开源事业的发展。目前Dromara社区拥有9个GVP项目,和一些Star数量很高的项目。这些开源项目社区都很...
gnt_xxy
0回复
2740浏览
开源
组件
重磅硬核 | 一文聊透对象在JVM中的内存布局(六)
8.数组对象的内存布局前边大量的篇幅我们都是在讨论Java普通对象在内存中的布局情况,最后这一小节我们再来说下Java中的数组对象在内存中是如何布局的。8.1基本类型数组的内存布局基本类型数组内存布局.png上图表示的是基本类型数组在内存中的布局,基本类型数组在JVM中用typeArrayOop结构体表示,基本类型数组类型元信息用TypeArrayKlass结构体表示。数组的内存布局大体上和普通对象的内存布局差不多,唯一不同的是在数组类型...
r660926
0回复
2788浏览
JVM
抓到Netty一个Bug,聊一下Netty是如何高效接收网络连接的(三)
3.RecvByteBufAllocator简介Reactor在处理对应Channel上的IO数据时,都会采用一个ByteBuffer来接收Channel上的IO数据。而本小节要介绍的RecvByteBufAllocator正是用来分配ByteBuffer的一个分配器。还记得这个RecvByteBufAllocator在哪里被创建的吗??在《聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)》一文中,在介绍NioServerSocketChannel的创建过程中提到,对应Channel的配置类NioServerSocketChannelConfig也会随着...
r660926
0回复
2655浏览
Netty
抓到Netty一个Bug,聊一下Netty是如何高效接收网络连接的(五)
5.doReadMessages接收客户端连接publicclassNioServerSocketChannelextendsAbstractNioMessageChannelimplementsio.netty.channel.socket.ServerSocketChannel{OverrideprotectedintdoReadMessages(List<Object>buf)throwsException{SocketChannelchSocketUtils.accept(javaChannel());try{if(ch!null){buf.add(newNioSocketChannel(this,ch));return1;}}catch(Throwablet){logger.warn("Failedtocreateanewchannelfromanaccept...
r660926
0回复
2921浏览
Netty
抓到Netty一个Bug,聊一下Netty是如何高效接收网络连接的(四)
4.啊哈!!Bug!!image.pngnetty不论是在本文中处理接收客户端连接的场景还是在处理接收客户端连接上的网络数据场景都会在一个do{....}while(...)循环readloop中不断的处理。同时也都会利用在上一小节中介绍的RecvByteBufAllocator.Handle来记录每次readloop接收到的连接个数和从连接上读取到的网络数据大小。从而在readloop的末尾都会通过allocHandle.continueReading()方法判断是否应该退出readloop循环结束连接的接收流程或者...
r660926
0回复
3074浏览
netty
设计模式之-降龙十八掌
温馨提示:本文代码较多且综合了好几种设计模式使用,建议收藏或者慢慢观看。代码区域可以左右滑动本文将综合抽象工厂、组合模式、装饰器模式、适配器模式、观察者模式等模式运用在本例子中。对于不熟悉这些模式的读者可以阅读历史文章学习加强自己的代码心法。完整代码在github:https:github.comUniqueDongzerodesignpatterns对应的com.zero.headfirst.verb包目录下。适配器模式首先我们从制造一个屏幕模拟器开始,模拟鸭子叫...
大家好我是佩奇
0回复
2445浏览
开发语言
框架语言
微服务
8.栈实现浏览器的前进后退
栈实现浏览器的前进后退当你一次访问1、2、3页面之后,点击浏览器的后退按钮就可以返回到2和1.当后退到1,点击前进按钮还可以继续查看页面2、3。但是当你退到2页面,点击了新的页面4,那就无法继续通过前进、后退查看页面3了。「我们如何实现这个功能呢?」什么是栈「栈」我们都知道Java虚拟机JVM就有『本地方法栈』『虚拟机栈』的划分,每个方法执行的时候都会创建一个栈帧用于存放局部变量表、操作数栈、动态链接、方法出口信...
大家好我是佩奇
0回复
2696浏览
分布式数据库
微服务
4.线性表之数组数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java语言中提供的数组是用来存储固定大小的同类型元素。你一定会说数组这么简单,有啥说的。嘿嘿嘿,里面包含的玄机可不一定每个人都知道。今天的疑惑来了…..数组几乎都是从0开始编号的,有没有想过「为啥数组从0开始编号,而不是从1开始呢?」使用1不是更符合人类的思维么?数组简介「数组是一种线性表数据结构,用一组连续的...
大家好我是佩奇
0回复
2361浏览
框架语言
微服务
欲善事先利器——IDEA 插件篇
工欲善其事,必先利其器,好鞋踢好球是非常合乎逻辑的事情。——《长江七号》同样的开场白,不一样的酒,不一样的故事。上篇《欲善事先利器——系统篇》已经推荐了一些个人常用的效率系统软件。觉得有帮助的,有共鸣的Rock一下。我们继续新篇——IDEA插件篇。用Eclipse的请原谅,本人已经好几年没用过Eclipse了,给不了你好的建议。以下插件插件直接在IDEA插件管理里面搜索安装:IDEACtrl+A输入"plugins"选择plugins选择marketp...
大家好我是佩奇
0回复
2861浏览
开发语言
微服务
6.单向链表实现的正确方式
文中涉及的代码可访问GitHub:https:github.comUniqueDongalgorithms.git上一篇《链表导论心法》讲解了链表的理论知识以及链表操作的实现原理。「talkischeap,showmethecode!」今天让一起把代码撸一遍,在写代码之前一定要根据上一篇的原理多画图才能写得好代码。举例画图,辅助思考。比如插入节点,在已知节点b的前面插入x废话少说,撸起袖子干。接口定义首先我们定义链表的基本接口,为了显示出B格,我们模仿我们Java中的List接...
大家好我是佩奇
0回复
1970浏览
微服务
容器
暂无内容
1
8
9
10
11
12
13
14
15
16
65
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅