IDEA 中的奇技淫巧

server/2024/12/23 0:02:42/

IDEA 中的奇技淫巧

书签

  • 在使用ctrl+alt+方向键跳转时,或者追踪代码时,经常遇到的情况是层级太多,找不到代码的初始位置,入口。
  • 可以通过书签的形式去打上一个标记,后续可以直接跳转到书签位置。
    • 标记书签:ctrl+shift+数字标记为书签。
      • 普通书签: ctrl+F11
    • 跳转书签:ctrl+数字 跳转到书签位置。
    • 所有书签:alt+2 显示所有书签

image-20240428195520636

插件

  • CamelCase
    • 下划线,驼峰,大小写快速转换。
  • Easy Javadoc
    • 快捷生成类,方法的JavaDoc注解。
  • Easy Code
    • 快捷生成实体对象,mapper对象等
  • GenerateAllSetter
    • 快捷调用一个对象的setter或者getter方法。
  • Git Commit Template
    • git提交模版
  • Git Config
    • 管理多个git账号。项目空间下使用同一个git账号
  • JRebel
    • 代码热更插件。支持新增方法和字段
  • Json Helper
    • Json可视化,格式化,转义。
  • Key Promoter X
    • 快捷键提示,统计,快捷定义快捷键。
  • Mybatis Log Free
    • sql格式化
  • Swagger Tools
    • 根据javaDoc生成swagger注解。

调试

  • 评估表达式
  • 丢弃当前帧
  • 强制返回

image-20240428224226665

  • 即时修改调试数据(选中变量按F2)

    image-20240428224942670

字段断点(反射无效)

  • 当读写字段时,字段断点会命中。通过反射读写不会命中

image-20240428225735807

异常断点(排除框架异常)

  • 捕获空指针异常,同时排除spring框架中的空指针异常。用于在排除代码时不知道具体异常位置,可通过异常断点定位。

image-20240428222204552

条件断点(源码中执行自定义代码)

  • 指定时间内连接zk超时,使用【条件断点+评估功能】重连,避免报错无法启动。

image-20240428223529627

过滤器

  • 实例过滤器
    • 当前this的id等于指定id才命中
  • 类过滤器
    • 当前this.getClass()等于指定Class 【子类不行】
  • 合格次数
    • 命中指定次数才生效

image-20240428220308254

其他技巧

  1. maven无法获取远程仓库的最新代码

    • maven设置中勾选始终更新快照

      image-20240428230228010

  2. 项目编译代码慢或报错内部错误或者报错OOM。

    • 修改编译时的堆内存大小

      image-20240428230412096

  3. ctrl+[或者] 按层级跳转代码块

  4. 在类中搜索方法 ctrl+F12

  5. ctrl+alt+[或者]在多个项目中快捷切换

代码

  • list和map指定初始容量,避免扩容。

    • list是不够用时再去扩容,所以初始容量设置为原始list的大小即可。即不需要额外容量。

    • 一般使用HshMap,扩容因子0.75,数据达到75%就会开始扩容。所以map的初始容量就是【原始容器大小/ 0.75 + 1】,就能保证在不扩容的情况下的使用最小空间,达到最高利用率。

      • 例:我有一个list有16个元素,现在要转为map。【16/0.75+1 = 22】,即初始容量设置为22就不会扩容,且容量最小。22*0.75 = 16.5,只有当存入第17个元素时才需要扩容。

      • 如何验证正确性:googleguavacom.google.common.collect.Maps#newHashMapWithExpectedSize就是如此计算。

        image-20240428232205272

  • 常用容器 【不可修改】

    • Collections.emptyList() 空list
    • Collections.emptyMap() 空map
    • Collections.singletonList(new Object()) 单值list
  • List.contains() 仅contains场景,可以转换为set进行contains操作。效率比list高。

    • list.contains内部是遍历,O(n)
    • set.contains内部是hashMap的contains。使用哈希表,通过equals+hashCode实现。时间复杂度为O(1)。以及红黑树…

http://www.ppmy.cn/server/23019.html

相关文章

opencv 配置

一、基本情况 opencv 4.9.0 vs 2022 二、配置过程 三、简单代码 // opencv454学习#include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace std;int main() {Mat src imread("D:/images/test.png");imshow("in…

日本宇宙航空研究“Int-Ball2”自由飞行相机机器人采用的Epson IMU

IMU有助于飞行的稳定控制和电池充电的自动对接- 精工爱普生公司&#xff08;TSE:6724&#xff0c;“Epson”&#xff09;很高兴地宣布&#xff0c;日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;选择了爱普生M-G370系列的惯性测量单元&#xff08;IMU&#xff09;&…

Docker资源控制管理

目录 一.CPU 资源控制 1.定义 2.cgroups四大功能 &#xff08;1&#xff09;资源限制&#xff1a;可以对任务使用的资源总额进行限制 &#xff08;2&#xff09;优先级分配&#xff1a;通过分配的cpu时间片数量以及磁盘IO带宽大小&#xff0c;实际上相当于控制了任务运行优…

代理设置方法 ubuntu git

目录 ubuntu设置代理方法 git 中 ubuntu设置代理方法 &#xff08;1&#xff09; .bashrc中写 或者 &#xff08;2&#xff09; 当自己的 虚拟机选择default switch&#xff0c;保持了虚拟机与本机的联通性&#xff08;host模式好像&#xff09;&#xff0c;这时&#xff0…

《动手学深度学习(Pytorch版)》Task01:初识深度学习——4.22打卡

《动手学深度学习&#xff08;Pytorch版&#xff09;》Task01&#xff1a;初识深度学习 深度学习介绍AI地图深度学习任务图片分类物体检测和分割样式迁移人脸合成文字生成图片文字生成无人驾驶 案例&#xff1a;广告点击完整过程 QAQ&#xff1a;机器学习的可解释性&#xff1a…

Go语言中,常用的同步机制

在 Go 语言中,保证多线程(或者更准确地说,多协程)有序执行,主要依赖于协程间的同步机制。Go 提供了几种工具来帮助开发者控制协程(goroutine)的执行顺序,确保数据的一致性和操作的原子性。下面是一些常用的同步机制: 1. 使用通道(Channel) 通道是 Go 中协程间通信…

CCF-CSP真题题解:201403-2 窗口

201403-2 窗口 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 15;int n, m; struct Window {int x1, y1, x2, y2;int id; } w[N];int get(int x, int y) {for (int i n; i; i--)if (x > w[i].x1 &&…

Linux I2C(二) - I2C软硬件架构

1&#xff0c;I2C的总线拓扑 2&#xff0c;I2C S/W topology linux kernel I2C framework使用如下的软件拓扑抽象I2C硬件&#xff08;我们可以一起领会一下其中的“设备模型”思想&#xff09;&#xff1a; 1&#xff09;platform bus&#xff08;/sys/bus/platform&#xff0…