首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文读懂《Effective Java》第43条:返回零长度数组集合不是null

对于一个返回null 不是零长度数组或者集合方法,客户端几乎每次用到该方法都可能会忘记写专门处理null 返回代码,进而导致NPE。...在返回值这种级别上担心性能问题是不明智,除非分析表明这个方法是造成性能问题真正源头 对于不返回任何元素调用,每次返回同一个零长度数组是有可能,因为零长度数组不可变不可变对象可能被自由共享...编写数组与集合返回推荐做法 返回空数组,可以使用集合实现类toArray()方法,例如:ArrayList.toArray(): private final List cheeseList...Collections.emptyList(); } else { return new ArrayList(cheeseList); } } 总结 简而言之,返回类型为数组集合方法...,没理由返回null,二是返回一个零长度数组或者集合

1.6K20

2021年11个最佳无代码低代码后端开发利器

上手简单,它有丰富API支持。它允许创建一个基于电子表格数据库不需要写代码麻烦。此外,它是一种快速和灵活方式来组织数据表(被称为基地)。 它包含诸如计算字段功能。...使用关系型数据库好处是,它可以帮助你一直保持一致。 关系型数据库SQL数据库是基于表数据库。它们有预先定义模式,并使用结构化查询语言(SQL)来定义和操作数据。...非关系型NoSQL数据库有动态模式。它们以文件集合多个集合形式存储数据。 在使用Supabase时,你将在其图形用户界面(GUI)中度过大部分时间。...它提供了一套有意见功能,并以NoSQL为基础。 NoSQL范式让你以集合文档形式存储数据。每个文档都包含字段。每个字段都有其独特数据类型。...Fauna是一个数据库即服务,可以很好地与无服务器应用程序配合。它不是一个传统数据库。它有自己查询语言,称为FQL。它提供灵活数据建模,并支持消除数据异常ACID事务。

12.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

骑上我心爱小摩托,再挂上AI摄像头,去认识一下全城垃圾!

垃圾GPS坐标通过简单gpsd接口从usb模块读取,将数据存储在Google Firestore实时数据库中,这样本地Google firebase SDK就被用于客户端应用程序开发。...应用程序 现代数据分析应用程序必须支持从任何设备和平台访问,实时数据访问则需要使用适当后端技术和能够支持用户查询数据模型。...我们选择Ionic+Angular进行前端开发和谷歌Firestore坐标实时数据库。...Google Firebase则可以让我们将每个GPS点左边作为一个嵌套集合/文档存储。...我们正在考虑使用GeoFire来支持地理查询,这将允许用户客户定义区域进行统计。 支持将数据导出到其他类型数据库。比如支持基于SQL历史数据查询

10.2K30

如何使用React和Firebase搭建一个实时聊天应用

Firebase提供了一些工具,如身份验证、数据库、存存储、分析等,来构建高质量应用。...使用Cloud Firestore来存存储和同步聊天室消息,并使用react-firebase-hooks/firestore来获取消息数据。...rooms集合变化,并在组件卸载时取消订阅。...每当rooms集合有新数据时,它会更新messages状态,使其包含最新聊天室消息。然后,它使用一个无序列表来显示每条消息,并使用Message组件来渲染每条消息内容。...您可以参考以下资料来了解更多细节和教程:React官方文档Firebase官方文档react-firebase-hooks库socket.io官方文档我正在参与2023腾讯技术创作特训营第四期有奖征文

42941

我们弃用 Firebase 了

Firebase:好地方 这个归谷歌所有的平台即服务(PaaS)使构建者做出了多项基础设施决策:内容交付网络、NoSQL 数据库事件处理程序和网络拓扑等等。...Firebase 实时数据库最初给人感觉相当具有革命性,特别是在 WebSockets 被广泛接受 Server-Sent Events 出现之前。...Firestore 文档 / 集合架构:它迫使人们仔细考虑数据建模。它还反映了一个直观导航方案。 Firestore关系数据也是如此。...Firebase CLI 限制相当严格: 对于像启用 Firestore 这么简单事情,你也只能通过仪表板完成,不能通过命令行。 firebase login:ci 有意禁止传递认证密钥。...我们计划在可伸缩性方面做更多研究,因为 SQL 数据库不能像 NoSQL 数据库那样增长。尽管如此,Supabase 来正是时候。

32.5K30

Flutter 2.8正式版发布了,还不来看看

此外,一些开发人员想要更多关于光栅缓存行为性能跟踪信息,以减少制作动画效果时的卡顿,这允许 Flutter 快速地昂贵、重复使用图片进行复用不是重新绘制。...服务,方便线上使用和体验 更方便构建认证和在实时查询 Firestore 数据 UI 界面 Flutter 中使用 Firestore Object/Document 映射支持进入 Alpha 版...通过生成代码,你可以以类型安全方式对数据进行建模,从而改进与文档集合交互语法: @JsonSerializable() class Person { Person({required this.name...这是一个「快速」通道,如果我们发现 dev 渠道相较于 beta 渠道有特别的需求和需求 beta 渠道无法满足,我们可能会改变 beta 渠道计划来满足 (比如,加速发布节奏降低我们该渠道执行测试和热修复级别...我们不提供该渠道支持,但我们针对它运行了一套全面的单元测试。对于不稳定构建感到满意贡献者高级开发者而言,这是适合他们渠道。

22.3K30

在Ubuntu 16.04上安装MongoDB(Xenial)

它主要用于非关系型数据库,面向文档数据库访问。就像Redis和Cassandra等数据库那样,它是不断壮大NoSQL运动一份子(尽管许多非关系型数据库之间也存在着巨大差异)。...此示例中使用example-useruser-data数据库具有只读权限,但对下面的“数据集合管理”部分中创建数据库exampleDB有读写权限。 创建一个新非管理员账户以输入测试数据。...退出mongo shell: quit() 有关访问控制和用户管理更多信息,以及数据库安全其他提示,请参阅MongoDB安全文档数据集合管理 MongoDB因易集成受到人们喜爱。...不指定查询的话,默认返回集合前20个文档: db.exampleCollection.find() 输出将类似于以下内容:{ "_id" : ObjectId("571a3e7507d0fcd78baef08f...该find方法还可以用于通过输入搜索项参数(以对象形式)来搜索特定文档字段,不是将其留空。

5.3K30

超实用!50+个ChatGPT提示词助你成为高效Web开发者(上)

Next.js是一个React框架,可以用来创建应用程序前端,Firebase可以用于后端,利用其各种服务,如Firestore数据库,Firebase Authentication进行用户管理,以及...Firestore:这是Firebase提供一个NoSQL数据库。你可以创建以下集合: - **Rooms**:用于存储酒店所有房间。...Supabase使用是PostgreSQL,这是一种关系数据库,与FirebaseFirestore(一种NoSQL数据库)不同。 a....Supabase数据库(PostgreSQL):你将使用表格不是集合。你可以为房间、预订和用户设置表格,并定义它们之间关系。...然而,如果你数据结构更加动态和灵活,或者你需要高度读写扩展性,FirebaseFirestore可能会更适合。 此外,你还应考虑你团队这两种技术熟悉程度。

52220

在CentOS 7上安装MongoDB

”部分中启用了基于角色访问控制,请创建一个用户管理员,其中包含用于数据库凭据: 1.打开mongoshell: mongo 2.默认情况下,MongoDB连接到一个名为test数据库。...当然,也可能不会引发异常,除非你尝试使用修改集合。有关更多信息,请参阅MongoDB命名限制。 4.创建一些简单数据实体插进测试数据库中。...输出将列出包含当前工作数据库数据所有集合: exampleCollection 7.使用find方法进行条件查询,查看集合exampleCollection中特定数据。...如果没有任何参数,则返回当前集合前20个文档: db.exampleCollection.find() 输出结果类似下面这样: { "_id" : ObjectId("571a3e7507d0fcd78baef08f...该find方法还可以用于通过输入搜索项参数(以对象形式)不是将其留空来搜索特定文档字段。

14.3K61

常见问题:并发

MongoDB使用多粒度锁[1],允许操作锁定全局,数据库集合级别,并允许各个存储引擎在集合级别下实现自己并发控制(例如,在WiredTiger中文档级别锁) 。...MongoDB使用读-写锁,允许并发读操作以共享方式访问资源(如一个数据库一个集合),但在MMAPv1中,单个写入操作采取独占(排它)访问方式。...对于MMAPv1 MMAPv1存储引擎在3.0版本系列中使用了集合级别锁,这是早期版本改进,在早期版本中数据库级别锁是最细粒度锁。第三方存储引擎可以使用集合级锁实现自己更细粒度并发控制。...l 用户身份验证对于使用 2.6用户凭据部署,需要在admin库上获取一个读锁。对于使用2.4模式进行用户凭据部署,身份验证会锁定 admin数据库同时也会锁定用户正在访问数据库。...在分片群集中,锁定应用于每个单独分片,不是整个群集; 即每个mongod实例独立于分片集群中其他实例并使用自己 锁。一个 mongod实例上操作不会阻止任何其他实例上操作。

1.5K30

谷歌Duet AI覆盖整个软件开发生命周期

然后将聊天机器人对话导出到Docs,借助‘帮助我写’,他和同事创建了一个大纲。他们表示,这有助于他们集中精力解决更棘手设计问题,比如如何缓存Firestore文档数据库查询。...— Megan O’Keefe, Google 接下来步骤是使用客户端查询Google Cloud数据库。...我们可以使用Duet AI代码完成来提示Duet AI在这里提供帮助,做出AI可以根据我打开文件内容和我数据库架构推断事情。它知道Firestore文档数据库】调用应该是什么样子。”...SQL查询中尤其如此。...Seroter强调,这不是一个通用模型。Duet生成式AI能够提供专业建议,因为它经过了Google Cloud文档和样本训练。

7800

Spring认证中国教育管理中心-Spring Data MongoDB教程二

虽然MappingMongoConverter可以使用附加元数据来指定对象到文档映射,但它也可以通过使用一些映射 ID 和集合名称约定来转换不包含附加元数据对象。...从任何 MongoDB 操作返回包含错误,记录抛出异常是很方便。...在开发过程中忘记这样做是很常见,然后最终得到一个看起来运行成功应用程序,实际上,数据库并没有按照您预期进行修改。...前面的示例旨在展示保存、更新和删除操作使用,MongoTemplate不是展示复杂映射功能。 前面示例中使用查询语法在“查询文档”部分有更详细解释。...从存储读取文档回域类型工作正常。id由于隐式ObjectId转换,通过它们查询文档可能很麻烦。因此无法以这种方式检索文档。对于这些情况,@MongoId提供实际 id 映射尝试更多控制。

2.6K20

MongoDB系列7:MongoDB存储引擎

·高吞吐量 WiredTiger使用“写时复制”,在文件更新时,WiredTiger将创建一个新文档副本,确定返回给用户是最新版本。...对于大多数读写操作,WiredTiger只使用数据库集合意向锁。 一些全局操作,通常是涉及多个数据库短时间操作,仍然需要全局锁(即实例范围)。...某些其他操作,如删除集合,则需要独占数据库锁。...除了一些元数据和诊断数据外,In-Memory存储引擎只在内存中维护数据,包括配置数据、索引、用户凭据等。 由于通过避免磁盘I/O,In-Memory存储引擎数据库操作延迟更低。...命名空间文件最大大小为2047MB。默认值为16MB,提供大约24000个名称空间。 enforced: 默认为false,表示禁止每个数据库拥有的数据文件最大限制。

2.2K60

IdentityServer Topics(1)- 启动说明

这些“in-memory”集合可以在宿主应用程序中进行硬编码,也可以从配置文件数据库动态加载。 但是,在设计时,只有托管应用程序启动时才会创建这些集合。...使用这些配置API可用于原型设计,开发和/测试时不需要在运行时动态查询配置数据数据库。 如果配置很少改变,这种配置方式也可能适用于生产方案,或者如果必须更改值,则需要重新启动应用程序并不方便。...测试存储 TestUser类在IdentityServer中模拟用户,凭据和声明。 TestUser使用与使用“in-memory”存储类似,因为它适用于原型开发和/测试。...AddJwtBearerClientAuthentication 使用JWT客户机认证支持。 缓存 客户端和资源配置数据经常被IdentityServer使用。...如果从数据库其他外部存储装载此数据,那么频繁地重新加载相同数据代价可能是昂贵。 AddInMemoryCaching 要使用下面描述任何缓存,必须在DI中注册ICache实现。

62530

常见问题:MongoDB基础知识

MongoDB数据库将其数据存储在集合(collection)中,不是表(table)。集合包含一个多个 BSON文档文档类似于关系数据库表中记录行。...每个文档都有一个多个字段 ; 字段类似于关系数据库表中列。 也可以看看: SQL到MongoDB映射图, MongoDB简介 如何创建数据库(database)和集合(collection)?...在MongoDB中您不需要为集合指定模式。虽然集合文档通常具有基本上同质结构,但这不是必需; 即,单个集合文档不需要具有一组相同字段。字段数据类型也可以在集合文档之间存在不同。...MongoDB将最近使用数据保存在内存中。如果您为查询创建了索引,并且您工作数据集适合内存大小,则MongoDB将从内存中进行查询。 MongoDB不会缓存查询结果,以便为相同查询返回缓存结果。...BSON 当客户端程序在MongoDB中组合一个查询时,它会构建一个BSON对象,不是一个字符串。因此传统SQL注入攻击并不是问题。更多细节和一些细微差别如下。

1.9K10

Flutter 移动端架构实践:Widget-Async-Bloc-Service

WABS 模式鼓励我们将所有状态管理逻辑都移动到数据层,我们马上将了解它。 数据层 在数据层中,我们可以定义 局部  全局 应用程序状态,以及修改它代码。...输入数据(读取):将来自Firestore文档键值流转换为强类型不可变数据Model。 数据输出(写入):将数据Model转换为键值,以便写入Firestore。...BLoC一样,该方法会向接收器添加值;但除此之外,它也可以异步返回一个值,抛出一个异常。...中显示了一个对话框,这不是很好,因为builder只应该返回一个控件,不是执行任何命令式代码。...无论如何,我发现BLoCs在使用Firestore构建app时效果非常明显,其中数据通过流从后端流入app。 在这种情况下,通常将流进行组合使用RxDart其执行转换,BLoC很擅长这个。

16K20

都 2020了,你该知道MongoDB优化策略了~

MongoDB和其它关系型数据库相比,例如 SQL Server 、MySQL 、Oracle 相比来说,相对较新,很多人不是很熟悉,所以很多开发、DBA往往是注重功能实现,忽视了性能要求。...推荐短字段名 与关系型数据库不同,MongoDB集合每一个文档都需要存储字段名,长字段名会需要更多存储空间。 ​...每个集合只有一个文本索引,但是它可以为任意多个字段建立索引。 文本搜索速度快很多,推荐使用文本索引替代集合文档多字段低效查询。 ​...使用findOne在数据库查询匹配多个项目,它就会在自然排序文件集合返回第一个项目。如果需要返回多个文档,则使用find方法。 ​...如果查询无需返回整个文档只是用来判断键值是否存在,可以通过投影(映射)来限制返回字段,减少网络流量和客户端内存使用。

2K21

MongoDB 常用命令

# MongoDB 常用命令 案例需求 数据库操作 选择和创建数据库 数据库删除 集合操作 集合显式创建(了解) 集合隐式创建 集合删除 文档基本CRUD 文档插入 文档基本查询 文档更新...# 集合删除 集合删除语法格式如下: db.collection.drop() db.集合.drop() 返回值 如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。...如果为真,则按顺序插入数组中文档,如果其中一个文档出现错误,MongoDB将返回不处理数组中其余文档。如果为假,则执行无序插入,如果其中一个文档出现错误,则继续处理数组中文档。...使用查询运算符指定选择筛选器。若要返回集合所有文档,请省略此参数传递空文档( {} )。 projection document 可选。指定要在与查询筛选器匹配文档返回字段(投影)。...【示例】 查询所有 如果我们要查询spit集合所有文档,我们输入以下命令 db.comment.find() db.comment.find({}) 这里你会发现每条文档会有一个叫_id字段,这个相当于我们原来关系数据库中表主键

1K20

Serverless单体架构崛起

减少认知负荷,这意味着每个开发者只需要了解代码一个子集,不是整个代码库。...称之为 BFD (Backend For Database) 多BSF后端。 数据库,也称为数据库及其查询机制。...最后是所需最小数据库数量(关系数据库和/文档数据库和/数据库和/搜索引擎) 如果我们重视简单性,还有改进空间。...你只需要在你BFF中编写查询,就完成了。 最著名BaaS无疑是Firebase,它提供了许多功能,如实时文档数据库、身份验证服务、数据库之上权限机制、文件系统存储等等。...然而,Firebase也有一些严重限制: Firebase 数据库,无论是 Realtime 数据库还是 Firestore,都是单模型数据库文档数据库)。

24510
领券