java
文章平均质量分 70
HolyCode_
理论不懂就实践,实践不会就学理论!
天道酬勤,恒者能胜!
展开
-
windows11 开发环境资源整理
Java Development Kit (JDK)MavenGradleNode.jsnpm (Node Package Manager)GitGitHub DesktopVisual StudioJetBrains 系列MySQLPostgreSQLMongoDBFigmaAdobe XDPythonRubyVisual Studio CodeMicrosoft LearnPluralsightYouTube原创 2024-08-28 01:35:32 · 155 阅读 · 0 评论 -
强大的编辑器 Cursor,免费集成了 ChatGPT-4
最近,有一个编辑器火上了天,他就是 Cursor,免费集成了 openAI 的 gpt-4,不需要科学上网,重点是免费。就在上一周是 AI,集体亮相的一周,ChatGPT-4、new-bing、文心一言、Claude 等等,一一体验过这些工具,能明显感觉到作为 CV 工程师的焦虑。看起来这个编辑器是比较简单,重要是实用,能给人带来强大的助力,真的要感叹技术改变生活,恐怕以后各个开发工具都会集成 AI 进来,实现智能化时代。AI 时代来临,还不会利用工具帮助你工作,很容易就会被淘汰了。原创 2023-03-26 00:44:34 · 3140 阅读 · 2 评论 -
Eclipse memory analyze 内存分析
Eclipse 菜单文件→打开堆转储 => 选择 hprof 文件,如 java_pid3524.hprof。window -> preferences 勾选。Eclipse 菜单窗口→打开透视图→内存分析器。原创 2023-03-04 17:40:24 · 320 阅读 · 0 评论 -
jmh测试实践(针对不同准备数据测试)
通过不同准备数据进行测试。原创 2022-11-19 21:01:51 · 186 阅读 · 0 评论 -
guava常见用法整理(不定期更新)
guava场景用法整理,持续更新原创 2022-11-15 08:02:17 · 587 阅读 · 0 评论 -
删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。下面贴一下官方解答,实际上可以使用快慢指针一次循环解决。输入:head = [1,2], n = 1。输入:head = [1], n = 1。进阶:你能尝试使用一趟扫描实现吗?输出:[1,2,3,5]链表中结点的数目为 sz。原创 2022-11-13 16:47:55 · 456 阅读 · 0 评论 -
按序打印
有三个线程会被异步启动。输入 [1,2,3] 表示线程 A 将会调用 first() 方法,线程 B 将会调用 second() 方法,线程 C 将会调用 third() 方法。输入 [1,3,2] 表示线程 A 将会调用 first() 方法,线程 B 将会调用 third() 方法,线程 C 将会调用 second() 方法。请设计修改程序,以确保 second() 方法在 first() 方法之后被执行,third() 方法在 second() 方法之后被执行。输入:nums = [1,2,3]原创 2022-10-23 18:32:49 · 175 阅读 · 0 评论 -
java 6种常用控制线程方式整理
【代码】java 6种常用控制线程方式。原创 2022-10-22 00:15:53 · 422 阅读 · 1 评论 -
IntelliJ IDEA 2022.3 EAP (Ultimate Edition) 版本体验
版本信息:macOS 11.1Cores: 16。原创 2022-10-17 23:47:44 · 1442 阅读 · 0 评论 -
flink TestHarnessUtil框架源码初析
这里的output方法,已经在前面setup初始化,替换为MockOutPut(org.apache.flink.streaming.util.AbstractStreamOperatorTestHarness#setup),所以在执行function的process方法时,结果会保存在org.apache.flink.streaming.util.AbstractStreamOperatorTestHarness#outputList。底层用到了 java.util.Arrays#deepEquals。原创 2022-10-11 22:19:02 · 515 阅读 · 0 评论 -
flink TestHarnessUtil框架源码初析
这里的output方法,已经在前面setup初始化,替换为MockOutPut(org.apache.flink.streaming.util.AbstractStreamOperatorTestHarness#setup),所以在执行function的process方法时,结果会保存在org.apache.flink.streaming.util.AbstractStreamOperatorTestHarness#outputList。底层用到了 java.util.Arrays#deepEquals。原创 2022-10-11 22:19:02 · 515 阅读 · 0 评论 -
美团 CAT 本地执行抛No such file or directory
本地执行,cat.logEvent抛 No such file or directory。看源码,这里可以通过设置环境变量解决 CAT_ENABLED=false。原创 2022-10-09 00:11:03 · 313 阅读 · 0 评论 -
电话号码的字母组合
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。digits[i] 是范围 [‘2’, ‘9’] 的一个数字。输入:digits = “23”输出:[“a”,“b”,“c”]输入:digits = “2”输入:digits = “”这里采用队列的方式处理。原创 2022-10-03 21:12:47 · 139 阅读 · 0 评论 -
最接近的三数之和
给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。输入:nums = [-1,2,1,-4], target = 1。输入:nums = [0,0,0], target = 1。假定每组输入只存在恰好一个解。和求三数之和非常类似,双指针。原创 2022-10-03 19:24:41 · 117 阅读 · 0 评论 -
flink中vcore概念怎么理解?
这是因为集群中可能不是所有的机器都是同一种规格的,有的cpu处理能力强,有的弱。假设性能强的一个physical core计算能力相当于弱的3倍,这个时候,可以指定处理能力强的那个cpu一个physical core为3个vcore,而弱的一个physical core为1个vcore,分配资源的如果需要提供6个vcore,那计算能力强的那个只需要提供2个physical core即可,达到了负载均衡的效果,更加合理的利用了资源。原创 2022-09-22 22:59:04 · 1024 阅读 · 0 评论 -
IntelliJ IDEA 2022.2 (Ultimate Edition) plugin插件开发
不用添加plugin configution 配置,直接点击gradle run plugin脚本即可。这里默认创建的iml文件module type有问题,需要修改为PLUGIN_MODULE。升级org.jetbrains.intellij 版本到最新1.9.0版本,避免采坑。可能因为github请求超时导致如下报错,忽略即可。替换为aliyun镜像加快构建速度。原创 2022-09-11 18:07:13 · 2715 阅读 · 1 评论 -
整数转罗马数字
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。例如, 罗马数字 2 写做 II ,即为两个并列的 1。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。解释: M = 1000, CM = 900, XC = 90, IV = 4.I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。解释: L = 50, V = 5, III = 3.转载 2022-09-03 00:18:56 · 172 阅读 · 0 评论 -
x 的平方根
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。...原创 2022-08-28 18:46:03 · 167 阅读 · 0 评论 -
四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 ...原创 2022-07-12 01:00:53 · 255 阅读 · 0 评论 -
三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 ...转载 2022-07-10 12:16:20 · 126 阅读 · 0 评论 -
罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下原创 2022-07-10 11:14:22 · 554 阅读 · 0 评论 -
字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“123” ->原创 2022-07-10 11:12:45 · 337 阅读 · 0 评论 -
加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 ...原创 2022-07-09 16:48:15 · 125 阅读 · 0 评论 -
Z 字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入:s = “PAYPALISH原创 2022-07-09 12:09:57 · 143 阅读 · 0 评论 -
螺旋矩阵 II
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 ...原创 2022-07-09 00:54:18 · 129 阅读 · 0 评论 -
最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。示例 3:输入:s = “luffy is still joyboy”输出:6解释:最后一个单词是长原创 2022-07-09 00:29:28 · 152 阅读 · 0 评论 -
最大子数组和
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23提示:1 ......原创 2022-07-08 00:41:57 · 1423 阅读 · 0 评论 -
盛最多水的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height = [1,1]输原创 2022-07-07 00:28:46 · 184 阅读 · 0 评论 -
Java8 新特性实战
Oracle 于 2014 发布了 Java8(jdk1.8),诸多原因使它成为目前市场上使用最多的 jdk 版本。虽然发布距今已将近 7 年,但很多程序员对其新特性还是不够了解,尤其是用惯了 Java8 之前版本的老程序员,比如我。为了不脱离队伍太远,还是有必要对这些新特性做一些总结梳理。它较 jdk.7 有很多变化或者说是优化,比如 interface 里可以有静态方法,并且可以有方法体,这一点就颠覆了之前的认知; 数据结构里增加了红黑树;还有众所周知的 Lambda 表达式等等。本文不能把所有的新特性原创 2022-06-26 22:09:44 · 459 阅读 · 0 评论 -
基准测试神器JMH实践-各类map性能对比
最近同事线上提交发布了一个变更,导致平响涨了几ms,仔细看了变更后发现只是一个map的put和get逻辑,这里使用的方式有点奇怪,key为string类型,但是其实是一个枚举转换而来,value是Double类型这里怀疑map是string类型导致,因为这里key是一个枚举转换而来,所以感觉是使用enummap类来使用性能更好,但是这里毕竟只是猜想,所以需要科学的数据来验证 , 这里就搭了下JMH环境来验证,分别来验证几种类型的性能情况:环境搭建可以参考:https://zhuanlan.zhihu.com原创 2022-06-12 20:11:07 · 347 阅读 · 0 评论 -
Spring使用@Async注解
https://www.cnblogs.com/wlandwl/p/async.html原创 2020-09-01 00:27:53 · 210 阅读 · 0 评论 -
JDK11变化详解,JDK8升级JDK11详细指南
https://www.jianshu.com/p/81b65eded96c原创 2020-08-30 16:03:29 · 832 阅读 · 0 评论 -
深入Spring Boot:利用Arthas排查NoSuchMethodError
http://hengyunabc.github.io/spring-boot-arthas-NoSuchMethodError/原创 2020-08-30 15:47:24 · 185 阅读 · 0 评论 -
关于intellij14的web项目导入lib丢失以及上传资源图片等无法访问的问题
关于intellij14的web项目导入lib丢失以及上传资源图片等无法访问的问题原创 2016-03-03 23:12:42 · 4464 阅读 · 0 评论 -
java 基础知识(不定期更新)
1.面向对象的特征有哪些方面?抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理原创 2017-11-29 23:09:56 · 478 阅读 · 0 评论 -
idea 设置重复代码检测
有时候因为代码存在多个版本的原因,必然会存在重复代码,如果需要暂时忽略检测,可以在如下的地方设置:原创 2018-06-16 21:24:30 · 18545 阅读 · 1 评论 -
idea如何只格式化自己写的代码而不影响到其他人的代码?
原创 2018-11-18 14:30:09 · 2945 阅读 · 4 评论 -
Java初始化顺序(回顾一下)
1 无继承情况下的Java初始化顺序:class Sample{ Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); }}class转载 2015-04-18 16:11:04 · 538 阅读 · 0 评论 -
Java程序员,面试必读
面试是一个“简单”而又“复杂”的事情,正因为它具有“简单”和“复杂”的双重性质,才使我们对这个问题不敢掉以轻心。介绍如何面试,有时候甚至可以写一本书,而有时候,你什么都不准备却可以面试成功。 因为,面试的成功与否完全取决于主考官,因此,这门学问的主要科目就是研究主考官的招聘心理。 我们研究好主考官的招聘心理,自然就可以做到“知己知彼”了。 本小转载 2012-07-18 09:10:54 · 915 阅读 · 0 评论 -
IntelliJ使用指南—— 导入Eclipse的Web项目
通常一个团队中可能有人用eclipse,有人用intelliJ,那么经常会出现需要导入别人用eclipse建好的web项目。而IntelliJ提供了多种项目类型的导入方式,其中就有eclipse。 在初始窗口中点击Import Project,在文件树中选择你的项目,打开导入窗口,选择Eclipse选项,点击下一步 选择你的项目名称,可以选择下方的Open转载 2016-03-03 18:24:29 · 45385 阅读 · 13 评论