用Jdk17的风格书写代码 我想通过Java不同版本的编程特性去解决一下开发中会遇到的问题,帮我们快速理解和学习新特性,后续我会不断的收集和补充这些问题,目前比较可惜的是我还没有对不同的jdk版本的单元测试代码进行banchmark…… Q1:在给定的字符串中取出出现次数Top3的字母,但是可能会出现并列情况,所以我们的结果应该是[k=[char1,chat2,……],……] A:jdk8之前 123456789 2023-08-12 java #练习
代码美学 最近我写的代码被同事code review时一直被吐槽,而我发现确实存在各种各样的问题,所以我打算把这些都给记录下来,以后不断改进 1.正确的命名 有一句老话说的好:计算机科学有两件难事,一是缓存失效,二是取名。我对第二点深有体会,所以我记录了一下取名的一些规范 尽量避免使用单个字母去给变量命名,这会使变量失去相关信息12345678910public sealed class People 2022-08-13 Others #规范
leetcode-easy 两数之和,梦开始的地方 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例 1: 输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums 2025-06-04 leetcode #算法-简单
Python 中 yield 关键字起什么作用? 要理解yield的作用,我们首先需要理解 可迭代对象(iterable) 和 迭代器(iterator) 的概念。千万不要混淆可迭代对象、迭代器和生成器! 可迭代对象与迭代器创建一个列表后,我们可以逐个读取它的元素,这个过程称为迭代: 123456>>> a = [0, 1, 2]>>> for i in a:... print(i)012 所有可以用 2025-06-03 python #python
Python Monkey Patching Python 是一种典型的动态脚本语言,不仅支持动态类型,其对象模型本身也是动态的。Python 中的类是可变的,方法不过是类的一个属性,因此我们可以在运行时修改它们的行为。这种技巧被称为 Monkey Patching(猴子补丁),这个名字可能源于 “游击补丁”(Guerrilla patch),意思是“偷偷地修改代码”。 什么是 Monkey Patching?简而言之,Monkey Patc 2025-05-31 python
python元类 在 Python 中,一切皆对象,类也不例外。我们通常认为类是用来创建实例的“模版”,但实际上,类本身也是对象。也就是说,类是由某种机制动态生成的,这个机制就是 元类(metaclass)。 一、类也是对象当你使用 class 关键字定义一个类时,Python 会根据这个类的描述信息,创建一个对象。这个对象本身就是一个“类”,但它也是某个元类的实例: 12345678910>>> 2025-05-29 python #好奇
如何去使用python的typing.Annotated 在最近的开发中,我越来越多地使用 Pydantic 来进行字段校验。而在使用 Pydantic 的过程中,类型注解(type hint)几乎是必不可少的。其中一个经常出现的类型工具就是 typing.Annotated。 起初,我在阅读 官方文档 时对它的用途感到困惑,看了半天也没搞懂它到底是做什么用的。后来在网上查阅了一些资料,终于理解了它的基本用途和背后的设计理念。于是,我决定将自己的理解总结 2025-05-28 python #好奇
Springboot应用镜像构建 容器 ——云原生的基石 一个SpringBoot应用的上云其实很简单,我们只需要将打出来的jar包放入一个带有jdk环境的Docker基础镜像中运行起来就行。但是如果我们深入思考真的是这样吗?简单的复制jar包在容器中运行总是会比运行解压之后的文件多一些的开销,而在容器化环境中,这种开销是很明显的。另一个问题是,把应用程序的代码和它的所有依赖放在Docker镜像的一个层中并不是优雅的做法,由于 2022-11-20 spring #cloud native