51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
harmony
纯血
harmonyos
设计模式-工厂模式
工厂模式介绍工厂模式定义工厂方法(FactoryMethod)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。看下GOF为工厂模式的定义:“Defineaninterfaceforcreatinganobject,butletsubclassesdecidewh...
大家好我是佩奇
0回复
6935浏览
分布式数据库
开发语言
管程(Moniter): 并发编程的基本心法
在吃透Syncchronized原理中介绍了关于Synchronize的实现原理,无论是同步方法还是同步代码块,无论是ACCSYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的,那么这篇来介绍下什么是Monitor。所谓管程:指的是管理共享变量以及对共享变量的操作过程,让它们支持并发。翻译为Java就是管理类的成员变量和成员方法,让这个类是线程安全的。是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥...
大家好我是佩奇
0回复
7321浏览
开发语言
框架语言
设计模式-责任链模式
定义责任链模式(ChainofResponsibilityPattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。用通俗的话就是推卸责任某件事,我们去解决,找到A,结果A踢皮球,说这不关我的事,去找B解决,然后我们就去找B,结果B也说,这跟我没关系,快去找C,就这样,我们就被踢来踢去,这就是责任链模式的思...
大家好我是佩奇
0回复
7185浏览
微服务
容器
厉害了,线程池就该这么玩
预计阅读7分钟建议收藏后阅读,转发分享是前进的动力,原创不易在Java语言中创建线程有两种方式,分别是实现Runnable接口或者newThread()就可以了,但是实际上创建线程可不仅是创建对象这么简单。创建对象仅仅是在JVM的堆分配一块内存而已;而创建线程还需要和操作系统内核的API,然后操作系统还要为线程分配一系列资源。涉及内核切换,这个成本就很高。所以线程是一个重量级对象,要避免频繁的创建和销毁。所以问题来了,如何...
大家好我是佩奇
0回复
6565浏览
分布式数据库
微服务
RESTful 最佳实践
RESTfulAPI最佳实践RESTful是目前最流行的API规范,适用于Web接口规范的设计。让接口易读,且含义清晰。本文将介绍如何设计易于理解和使用的API,并且借助Dockerapi的实践说明。URL设计1.1动词+宾语它的核心思想就是客户端发出的数据操作指令都是「动词+宾语」的结构,比如GETarticles这个命令,GET是动词,articles是宾语。动词通常来说就是五种HTTP方法,对应我们业务接口的CRUD操作。而宾语就是我们要操作的资源,可以理解成...
大家好我是佩奇
0回复
6964浏览
微服务
容器
设计模式-状态模式(State)
设计模式状态模式允许对象在内部状态改变的时候改变它的行为,对象看起来好像修改了它的类。通俗地说就是把所有行为包装在不同的类状态对象里,每一个状态对象都是抽象状态类的一个子类。认识状态模式所谓对象的状态,通常指的就是对象实例的属性的值;而行为指的就是对象的功能,再具体点说,行为大多可以对应到方法上。状态模式的功能就是分离状态的行为,通过维护状态的变化,来调用不同状态对应的不同功能。也就是说,状态...
大家好我是佩奇
0回复
7244浏览
容器
微服务
Future:异步任务结果获取
我们之前说过如何正确创建线程池,我们详细介绍了怎么合理使用线程池,我们也只是介绍了ThreadPoolExecutor的voidexecute(Runnablecommand)方法,利用这个我们可以提交任务,让线程去消费处理,但是没有办法获取任务的执行结果。因为该方法没有返回值。而有一些场景我们需要获取任务的执行结果再判断逻辑。1.FutureTask介绍Java通过ThreadPoolExecutor提供的3个submit()方法和1个FutureTask工具类来支持获得任务执行结果的需求...
大家好我是佩奇
0回复
6375浏览
开发语言
分布式数据库
发生死锁怎么办
锁的定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。竞争的资源可以是:锁、网络连接、磁盘共享变量等一切可以称作是【资源】的东西。我们使用锁来保证线程安全,但是使用不当与滥用可能就会引起死锁。并发程序一旦死锁,一般没有特别好的办法,很多时候只能重启。所以我们一定要比避免死锁。简单例子举个不恰当的例子:现在岳不...
大家好我是佩奇
0回复
8102浏览
开发语言
容器
Redis 内存优化神技,小内存保存大数据
大家好,我是「码哥」,大家可以叫我靓仔。这次码哥跟大家分享一些优化神技,当你面试或者工作中你遇到如下问题,那就使出今天学到的绝招,一招定乾坤!❝如何用更少的内存保存更多的数据?我们应该从Redis是如何保存数据的原理展开,分析键值对的存储结构和原理。从而继续延展出每种数据类型底层的数据结构,针对不同场景使用更恰当的数据结构和编码实现更少的内存占用。为了保存数据,Redis需要先申请内存,数据过期或者内存...
大家好我是佩奇
0回复
6286浏览
开发语言
微服务
吃透synchronized实现原理
synchronized实现原理记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized。对于当时的我们来说,synchronized是如此的神奇且强大。我们赋予它一个名字“同步”,也成为我们解决多线程情况的良药,百试不爽。但是,随着学习的深入,我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效。随着JavsSE1.6对synchronized进行各种优化后,synchronized不会显得那么重。sy...
大家好我是佩奇
0回复
6442浏览
框架语言
容器
数据库系统设计概述(上篇)
数据库系统设计概述世界上只有两种开发人员,一种使用数据库系统的,一种开发数据库系统的。数据是系统最重要的信息。大部分系统都是对数据的管理。应用系统通过数据模型来构建现实世界,通过算法操作对象或数据结构,来改变数据模型的状态。数据被组织在操作系统文件中,我们通过数据系统来组织,查询,搜索,处理数据。本文将从数据库的发展、数据库的分类、常见数据库架构,数据库常见概念和技术等方面探讨这个我们接触最多...
大家好我是佩奇
0回复
7173浏览
开发语言
微服务
面霸篇:高频 Java 基础问题核心卷一(下篇)
续:面霸篇:高频Java基础问题核心卷一(上篇)Exception与Error区别?❝码老湿,他们的相同点是什么呀?Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception和Error体现了Java平台设计者对不同异常情况的分类。异常使用规范:◆尽量不要捕获类似Exception这样的通用异常,而是应该捕获特定异常◆不要生吞(swallow)...
大家好我是佩奇
0回复
5982浏览
开发语言
分布式数据库
设计模式-适配器模式1
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。场景分析比如我们的手机接口,小米6手机只有typec接口,同时用于听歌与充电。标准手机接口分别有3.5mm耳机接口跟typec充电接口。假如现在我们只有3.5mm的耳机要在小米6手机上听歌,那个就需要一个适配器将我们的3.5mm耳机适配到目标接口小米6的typec,从而实现听歌。适配器模式在生活中还是很常见的,比如你笔记...
大家好我是佩奇
0回复
6586浏览
框架语言
微服务
设计模式之观察者模式
设计模式之观察者模式观察者模式(有时又被称为模型(Model)视图(View)模式、源收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。源代码地址:https:github.comUniqueDongzerodesignstu主要角色◆主题接口Subject:管理所有的观察...
大家好我是佩奇
0回复
7292浏览
开发语言
分布式数据库
Java内存模型(Java Memory Model,JMM)
Java内存模型(JavaMemoryModel,JMM)今天简单聊聊什么叫做Java内存模型,不是JVM内存结构哦。JMM是一个语言级别的内存模型,处理器的硬件模型是硬件级别,Java中的内存模型是内存可见性的基本保证。从而为我们volatile实现内存可见性提供了基石。主要目的就是让Java程序员在各种平台下达到一致性访问效果JMM决定一个线程对共享变量的写入何时对另一个线程可见,尤其是在对共享变量的读写,修改后其他线程立刻内读取到,这个就是...
大家好我是佩奇
0回复
7272浏览
开发语言
框架语言
微服务
SpringBoot mybatisplus
springboot约定优于配置的思想让我们的开发更加专注,mybatisplus让orm开发更加有效率。MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。接下来我们开始整合springboot使用。首先创建springboot项目工程,基于2.1.4版本具体可以参考我的GitHub。mybatisplus模块。地址:https:github.comUniqueDongspringbootstudy在此之前我们通过maven来管理依赖◆拥有Java开发...
大家好我是佩奇
0回复
6662浏览
微服务
容器
设计模式-装饰器模式
装饰器模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式比生成子类更为灵活;它允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式属于结构型模式。UML类图◆Component:接口,定义一个抽象接口装饰对象与真实对象具有相同的接口,以便装饰器动态的添加职责。◆ConcreteComponent:接口的具体对象。◆Decorator:装饰类,继承了Component,从外类来拓展Component的功能并且...
大家好我是佩奇
0回复
6939浏览
开发语言
框架语言
Spring Boot使用@Async实现异步调用
SpringBoot使用Async实现异步调用异步调用对应的是同步调用,同步调用可以理解为按照定义的顺序依次执行,有序性;异步调用在执行的时候不需要等待上一个指令调用结束就可以继续执行。我们将在创建一个SpringBoot工程来说明。具体工程可以参考github代码https:github.comUniqueDongspringbootstudyasync模块pom依赖如下:<dependency><groupId>org.springframework.boot<groupId><artifactId>springbootstarter<artifactId><exc...
大家好我是佩奇
0回复
8318浏览
微服务
设计模式-单例模式
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。使用场景许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。实际场景又哪些?如下Windows的TaskManager(任务管理器)就是很典型的单例模式。我们是不能打...
大家好我是佩奇
0回复
9318浏览
框架语言
容器
SpringBoot与RabbitMQ详解与整合
RabbiMQ介绍一、使用场景RabbitMQ是一个消息中间件,所以最主要的作用就是:信息缓冲区,实现应用程序的异步和解耦。RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。AMQP,即...
大家好我是佩奇
0回复
1.0w浏览
开发语言
分布式数据库
暂无内容
1
46
47
48
49
50
51
52
53
54
80
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅