用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-盛最多水的容器 盛水最多的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3, 2026-02-27 leetcode #算法
leetcode-两数之和 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例 1: 输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nu 2026-02-27 leetcode #算法
VS Code 开发环境配置指南 在日常开发中,合理配置 VS Code 能够显著提升开发效率。本文记录了一些实用的 VS Code 配置技巧,帮助你打造更舒适的开发环境。 代理配置基础代理设置由于某些扩展插件需要访问外网资源,我们需要为 VS Code 配置网络代理: 123{ "http.proxy": "http://127.0.0.1:7890"} 使用本 2025-08-13 IDE > 开发环境 #vscode #开发工具 #配置
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 #好奇