ArrayList使用的存储的数据结构 ArrayList的初始化 ArrayList是如何动态增长 ArrayList如何实现元素的移除 ArrayList小结 ArrayList是我们经常使用的一个数据结构...ArrayList是作为List接口的一个实现。 那么ArrayList背后使用的数据结构是什么呢? ArrayList是如何保证动态增加容量,使得能够正确添加元素的呢?...需要说明的是,本文所分析的源码引用自JDK 8版本 ArrayList使用的存储的数据结构 从源码中我们可以发现,ArrayList使用的存储的数据结构是Object的对象数组。...ArrayList如何实现元素的移除 我们移除元素的时候,有两种方法,一是指定下标,二是指定对象 list.remove(3);//index list.remove("aaa");//object 下面先来分析第一种...ArrayList小结 ArrayList是List接口的一个可变大小的数组的实现 ArrayList的内部是使用一个Object对象数组来存储元素的 初始化ArrayList的时候,可以指定初始化容量的大小
前言 一直想写一篇关于Maven的文章,但是不知如何下笔,如果说能使用,会使用Maven的话,一到两个小时足矣,不需要搞懂各种概念。那么给大家来分享下我是如何理解并使用maven的。...什么是Maven? Maven是一个用于项目构建的工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包,主要管理工作是:依赖管理,项目一键构建。 为什么要使用Maven?...说明:什么是本地仓库? 就是是由个人将常用到的jar包放入一个仓库中,已备自己在项目中使用,可从别人配置好的jar包仓库拷到自己本地目录,因为仓库一般很大,首次下载需要很长一段时间。...第二,象源代码包通常使用 artifactId 作为最后名称的一部分。典型的产品名称使用这个格式; version:项目产品的版本号。...─java└─com└─test└─demo ---- 注意上面加粗斜线的目录名,maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码
轻量级锁 Java的轻量级锁(Lightweight Locking)是Java虚拟机(JVM)中的一种优化机制,用于减少多线程竞争时的性能开销。...在Java中,synchronized关键字和java.util.concurrent.locks.ReentrantLock都可以导致重量级锁的使用,尤其是在高并发和激烈竞争的场景下。...需要注意的是,重量级锁的使用会带来较大的性能开销,因此在设计并发系统时应尽量通过减少锁竞争、使用更细粒度的锁、使用无锁数据结构等方式来避免重量级锁的使用。...偏向锁 在Java中,偏向锁(Biased Locking)是Java虚拟机(JVM)为了提高无竞争情况下的性能而引入的一种锁优化机制。...synchronizedMethod是一个实例同步方法,它隐式地使用this作为锁对象。lockedMethod是一个使用显式对象锁的方法,它使用lock对象作为锁。
它们有预先定义好的要求和响应,这让它们是自动化的重要选择。 瓶中信 无关年龄,我确信婚礼名单上每个人都有手机,这意味着该是Twilio上场的时候了。...(发送给客人的邮件数,稍后它会派上用场) 主要数据输入完成后,我使用gspread来遍历列表,并且发送短信给每一个具有与之相关联的手机号码的客人:Sheets.py import json import...接下来,我使用Flask作为我的web服务器,然后设置我的Twilio消息请求URL指向/messages url,并创建简单的if语句来解析回复 (yes, no):hello_guest.py @app.route...有些是显而易见的,例如当婚礼网站 (自然,由Heroku提供动力) 上线的时候发送通知短信,分享礼物列表以及其他我至今仍然感到骄傲的事。...我已经计划建立一个更加完整的解决方案,带有进度的数据可视化、语音基础并更少依赖于CLI脚本,但是时间更重要些。总的来说,我很高兴它的工作方式。没有通讯系统是完美的。
本文首发于政采云前端团队博客:我在工作中是如何使用 Git 的 https://www.zoo.team/article/how-to-use-git image.png 前言 最近在网上有个真实发生的案例比较火...莫慌,按照下面我讲的四个步骤走,保证你可以顺利使用 Git 进行拉取代码! 下载 Git 下载地址 (https://git-scm.com/downloads) ,选择自己系统对应的版本下载即可。...Git简介 在介绍 Git 的相关操作前,我觉得非常有必要了解 Git 的由来,以及 Git 是用来解决什么问题的。...这种方式,给本次的提交做一个信息的记录。这样,想应用更改的时候,先通过 git stash list 查看一下所有的暂存列表。...这里分享一个我自己常用的别名设置,把以下配置替换到 .gitconfig 文件里的 [alias] 所属的区域,然后就可以愉快的使用了~ [alias] st = status -sb co = checkout
分享一下我是怎么使用枚举的 一、介绍 对于java枚举不陌生了,直接上代码 二、代码 使用了一个接口,用来规定一下里面的字段,统一下好处理 package com.banmoon.test.enums;...} package com.banmoon.test.enums; import lombok.AllArgsConstructor; import lombok.Getter; import java.util.Arrays...通常是某张表的一些状态值,如果一张表里面有多个状态值,我们可以这样写一个常量类,里面放置每一个字段的枚举类 package io.yunshuo.dataset.enums; import io.yunshuo.commons.tools.exception.RenException...; private final Integer code; private final String msg; } } 三、最后 没什么技术含量的,...就是分享一下,我是这样使用枚举的 我觉得挺清晰明了的 我是半月,你我一同共勉!!!
Intent 意图,这个和Activity的意图要区分开,我觉得说成是行为可能更妥当,表示去做什么。 多说无益,我们还是进入实操环节吧。...进行JSON数据格式化,然后我们需要设置数据类的名称,这里输入Wallpaper,因为我们需要使用Moshi,将JSON数据直接转成数据类,所以这里我们点击Advanced,如图所示: 这里默认是...Retrofit一开始是支持Gson转换的,后面增加了MoShi的转换,Moshi拥有出色的Kotlin支持以及编译时代码生成功能,可以使应用程序更快更小。...这个故事我也是听说的,你可以自己去求证,下面继续。...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务
我在注释中以逗号分隔的方式列出了所有的表名,然后编写了第一张表的删除 SQL 查询,以及整个删除命令的连接光标使用。...我在 IntelliJ 和 Sublime Text 中使用了 Co-pilot 插件。我发现 IntelliJ 插件在推荐上更具智能,尤其是在处理其他文件中的类定义的上下文时。 4....我的目标是为其添加个性化的视觉效果,以及在组件顶部增添一些附加的文字。尽管文档详细地介绍了如何用新组件替换原有组件,但并没有明确地提到如何在保留原功能的情况下进行扩展。...于是,我向 ChatGPT 提出了问题: 如何在 react-flow 中创建自定义边,这条边是粗大的紫色线条,并且末端有一个大箭头 以下是我收到的答复: import React from 'react...最后,尽管并未使用 cola 布局,我还是达成了我的目标,我的问题得到了解决。 近期,我打算在 Kafka 集群和 OpenSearch 服务之间建立消息连接。
使用 typing 中的 List、Set、Tuple 的栗子 from typing import Optional import uvicorn from fastapi import FastAPI...[ 0, 3 ] } 假设里面的元素传了非 int 且无法自动转换成 int typing 的 List、Set、Tuple 都会指定里面参数的数据类型 而 FastAPI...会对声明了数据类型的数据进行数据校验,所以会针对序列里面的参数进行数据校验 如果校验失败,会报一个友好的错误提示 使用 list、set、tuple 的栗子 用 Python 自带的 list、set...、tuple 类,是无法指定序列里面参数的数据类型,所以 FastAPI 并不会针对里面的参数进行数据校验 @app.put("/items/{item_id}") async def update_item...要充分利用 FastAPI 的优势,强烈建议用 typing 的 List、Set、Tuple 来表示列表、集合、元组类型
流的读取或写一般是一次性的操作,数据在读取过程中不会有缓存,这也就意味着没有办法自己随便移动到想要读取的位置,要实现这个功能也就只能先缓存 java中的channel有哪些?....png 图和内容来之维基百科 Selector是干啥的?...使用SelectionKey来表示一个SelectableChannel用Selector注册了,在Selector内部会维护三种selection key的集合 key set表示使用了本Selector...实际上可以只用一个线程来管理所有的channel selector使用示例 //创建selector Selector selector = Selector.open(); //使用Selector...得到的结果即是否为ACCEPT事件 //通过这种方式即实现了注册,表明当前channel需要监听的是 read 事件,如果对多个事件感兴趣,那么可以使用 SelectionKey.OP_READ |
前言 Hi,大家好,我是麦洛,今天带大家来了解一下我最近使用的uniCloud,简单谈一谈我的一些理解,这篇文章主要向大家介绍一下以下内容 什么是Serverless 在介绍什么是Serverless...云数据 uniCloud同时支持阿里云和腾讯云,它们的数据库大体相同,有细微差异。阿里云的数据库是mongoDB4.0,腾讯云则使用自研的文档型数据库(兼容mongoDB 4.0版本)。...那么如何操作数据库云函数操作数据库是较为传统的开发方式,使用nodejs写云函数、使用传统的MongoDB的API操作云数据库。 客户端访问云数据库,称为clientDB。...uniCloud.database(); db.collection("table1").doc("5f79fdb337d16d0001899566").remove() 查询数据 单表查询 db.collection('list...结合我最近使用的情况,来谈谈我认为的uniCloud的优缺点 优点 简化了传统开发模式,提高了轻应用的开发效率 一定程度上降低了企业的人工成本,后端可以少招人....
首先必须说的是,Moshi 这个框架也算是 Jake 大神的良心之作了,无论从功能上,还是从使用的角度,这个框架值得推荐。...其实如果我们不看 Moshi 和 KS 的实现,我们单纯猜测他们要如何解决这一难题的话,无非就是使用 Kotlin 反射或使用注解处理器等方法来获取到 Kotlin 类的主构造器,以及它的参数类型和参数名...Moshi 和 Kotlin.serialization 的对比 这二者从能力上,对 Kotlin 的支持其实差异不大,下面我简单它们适合的场景。...KS 的优势是支持 Kotlin 的 Multiplatform,对于需要多平台移植的 Kotlin 代码,使用 KS 显然更合适。...Moshi 的优势是兼容 Java ,毕竟 Kotlin 的代码 90% 仍然跑在 Jvm 甚至 Android 上,所以如果你的 Kotlin 代码与 Java 代码混合运行在 Jvm 上面,那么考虑使用
Moshi Moshi是一个将JSON转换成Java或者Kotlin对象的库。很多人把Moshi类比GSON3.0,然而Moshi比GSON有更多的优点。...这是一段用Moshi进行转换的Kotlin代码 val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java...RxJava RxJava是 ReactiveX API的一个Java实现,它用链式调用的方式代替了原有Java的编程思维。...AndroidKTX Android KTX是一个把Android API用Kotlin封装起来的库。这个库的目标是让Android API使用起来更友好。...KTX改变了开发者使用Android API的方式,如果你的项目使用的是Kotlin,那么它应该成为你的核心库之一。 Dagger 没有Dagger的排行榜不完整。
$ jmod list java.base.jmod 命令行列出了 模块 java.base.jmod 中所有文件(.class文件, .dat, .jar, .cfg, .dylib 等 )共 5761...个文件: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/jmods$ jmod list java.base.jmod|wc -l...5761 我们来看下都有哪些包里面的类: 我们把 java.base.jmod中的所有文件list放到文件中: val lines = File("/Users/jack/java/java.base.jmods.txt...的您。...您的支持,是我源源不断的写作的动力! 如果您有任何问题,欢迎随时与我交流~ ----
也就是说C是依赖于A,B两个节点的,改变了A的值,我们可以获取到B的下拉选项的值,注意了这个时候用户是没有选择B的值的,也是就说B是空的,所以是算不出来C的下拉选项的值的。...当然要求最短路径就得要求图是无闭环的,如何判断图存在闭环可以参考我的另一篇文章拓扑排序及其实际应用。 ...实际代码中还会涉及到递归,在这次开发中我感受最深的一点遇到复杂问题,一定要分析和规划清楚找到问题的本质,偏离了问题本质就可能用很复杂的代码实现了。 ...动态联动问题的经过总结我给出的步骤 1.计算每个节点到主节点的最远距离,(这个其实是图的最短路径的变种)。 ...2.找出所有最远距离是1的节点,这些节点是需要联动的,而其它最远距离不为无穷大的节点是需要清空的。
大家好,又见面了,我是你们的朋友全栈君。 本文章只为了方便查阅。 文章目录 Kotlin简介 Kotlin与Java的异同 1.函数 2....简介 Kotlin是一种针对Java 平台的新编程语言。...Kotlin 是务实的、安全的、简洁的,与Java可互操作,意味着它专注于使用已经证明过的解决方案处理常见任务,防止常见的像NullPointerException这样的错误,支持紧凑和易读的代码,以及提供与...不可变变量 Kotlin: val answer = 0 val: 不可变引用。使用 val 声明 的变量不能在初始化之后再次赋值。它对应的是 Java 的 final 变量。...与 Java 不同的是,Kotlin 中的 throw 结构是一个表达式,能作为另一个表达式的一部分使用: val percentage = if (number in 0..100
1、HTTP 是如何使用 TCP 连接的; 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,TCP/IP 是全球计算机及网络设备都 在使用的一种常用的分组交换网络分层协议集。...TCP 是通过端口号来保持所有 这些连接的正确运行的。端口号和雇员使用的电话分机号很类似。...这里需要我们注意的是,有些连接共享了相同的目的端口号,有些连接使用了相同的源 IP 地址,有些使用了相同的目的 IP 地址,但没有两个不同连接所有的 4 个值都一样。...TCP 慢启动 TCP 数据传输的性能还取决于 TCP 连接的使用期(age)。TCP 连接会随着时间进行自 我“调谐”,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输 的速度。...,接下来我分几个内容给大家讲述 HTTP 对连接上的处理。
Java 内置的注解 上面的两个自定义注解用到了 @Retention, @Target,它们其实是 Java 内置的注解,方便我们使用。...@FunctionInterface : Java SE 8 出现的,用于通知编译器,这个类型是 function 接口 @SuppressWarning:抑制错误,可以用于标记整个类、某个方法、某个属性或者某个参数...,用于告诉编译器这个代码是安全的,不必警告 强烈建议最小范围使用这个注解,一旦你在一个比较大的范围抑制错误,可能会把真正的问题掩盖了 @SuppressWarning 支持的参数如下及使用方式见这篇...@Author 时没有指定 name = XXX,则会默认为 “shixinzhang”。...总结 黑科技、低性能 使用注解往往可以实现用非常少的代码作出匪夷所思的事情,比如 ButterKnife。 但被人诟病的是,运行时注解需要使用大量 Java 反射而引起较为严重的性能问题。
为什么我们要在项目中使用ESLint ESLint可以校验我们写的代码,给代码定义一个规范,项目里的代码必须按照这个规范写。...怎么在项目中预处理错误,eslint-loader来帮忙 我希望在项目开发的过程当中,每次修改代码,它都能够自动进行ESLint的检查。...因为我们的项目是基于webpack的,项目里的代码都是需要经过babel去处理的。...所以一般来说,我们用webpack和babel来进行开发的项目,都会指定它的parser使用babel-eslint。...里面就会马上报错,此刻我猜想terminal的内心活动应该是:“TMD,写的什么烂代码,天天写bug气得我每次脸都涨的通红”~~~ 幸运的是,机器是没有感情的,我们却可以嗨皮地立马定位到错误,然后把它改掉就可以了
准备 通过某歌搜索关键词:java+word+导出,我立马得出了很多成熟的方案,通过横向、纵向比较,再结合本次报告样式比较多、用户可灵活选择不同模块导出的特点,最终,我决定使用Freemarker 动态替换模版数据来导出...至于导出文档的最终格式,有两种选择: ? 那到底使用doc还是docx格式的文档? 每当人生当中每次面临选择我都很慎重。...最终我选择使用docx格式(原因文末会讲),但是为了让大家有更多的选择,满足更多的业务场景,借此机会,小明会分别给大家介绍使用freemarker导出word文档两种格式的方式。...思路 FreeMarker是一个基于Java的模板引擎,最初专注于使用MVC软件架构生成动态网页。...注意:如果你使用的是Visual Studio Code开发工具,一定要检查你所使用的xml格式化插件,是否会优化你的xml标签 。比如:会变成。
领取专属 10元无门槛券
手把手带您无忧上云