IDEA 中的奇技淫巧

news/2024/5/21 1:39:55

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个元素时才需要扩容。

      • 即使在指定容量时,hashMap的容量和阈值也不是指定值,因为在设置容量时,是hashMap内部是计算出当前值的最小2次幂。这样得出的容量,以及阈值。上面得出的结论不变,HashMap的构造函数容量公式依旧为【存储元素个数/0.75+1】;依旧是在使用最小空间下,不扩容的方案

      • 在这里插入图片描述

      • 如何验证正确性: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.mrgr.cn/p/57408574

相关文章

数据结构-二叉树结尾+排序

一、二叉树结尾 1、如何判断一棵树是完全二叉树。 我们可以使用层序遍历的思路,利用一个队列,去完成层序遍历,但是这里会有些许的不同,我们需要让空也进队列。如果队列里到最后只剩下空那么这棵树就是完全二叉树。具体的实现如下…

Hive Windows Functions 窗口函数

Hive Windows Functions 窗口函数 在 Hive 中,窗口函数(Window Functions)用于在查询结果中执行聚合、排序和分析操作,而无需将数据分组。窗口函数允许你在查询结果中的一组行上执行计算,而不会改变原始数据的行数&am…

鲁教版六年级数学上册-笔记

文章目录 第一章 丰富的图形世界1 生活中的立体图形2 展开和折叠3 截一个几何体4 从三个方向看物体的形状 第二章 有理数及其运算1 有理数2 数轴3 绝对值4 有理数的加法5 有理数的减法6 有理数的加减混合运算7 有理数的乘法8 有理数的除法9 有理数的乘方10 科学计数法11 有理数…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

sql注入中的替换技巧。

目录 1:注释的替换 2:空格替换 3:大小写混合绕过及双写绕过 4:等号的绕过 5:单双引号的绕过 1:注释的替换 注释在sql注入中非常重要,因为会使用它来闭合我们注入的sql语句。 当以get方式提…

ai直播-智能化视频直播-全程自动学,高效互动问答!

ai直播-智能化视频直播-全程自动学,高效互动问答! 普通人想要致富,光靠勤劳是不可能的,唯有抓住时代风口,才能铸造成功之路。 大家都知道,现在最赚钱的行业,直播和卖货,肯定是名列…

数据挖掘(一)数据类型与统计

前言 打算新开一个笔记系列,基于国防科技大学 丁兆云老师的《数据挖掘》 数据挖掘 1、数据类型与统计 数据统计 最大值,最小值,平均值,中位数,位数,方差等统计指标 df.describe() #当调用df.describe(…

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化:不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来,实体对齐的研究一直基于知识图谱是静态的假设&#xff…

4. 从感知机到神经网络

目录 1. 从感知机到神经网络 2. 最简单的神经网络 3. 激活函数的引入 1. 从感知机到神经网络 之前章节我们了解了感知机,感知机可以处理与门、非与门、或门、异或门等逻辑运算;不过在感知机中设定权重的工作是由人工来做的,而设定合适的&a…

深入Django:用户认证与权限控制实战指南

title: 深入Django:用户认证与权限控制实战指南 date: 2024/5/7 18:50:33 updated: 2024/5/7 18:50:33 categories: 后端开发 tags: AuthDecoratorsPermissionsGuardianRESTAuthSessionMgmtMFA 第1章:入门Django与设置 1.1 Django安装与环境配置 在…

深入理解TDD(测试驱动开发):提升代码质量的利器

在日常的软件开发工作中,我们常常会遇到这样的问题:如何在繁忙的项目进度中,保证我们的代码质量?如何在不断的迭代更新中,避免引入新的错误?对此,有一种有效的开发方式能帮助我们解决这些问题&a…

H5 处理点击元素高亮、自定义按钮、去除焦点边框

1、设置移动设备上点击元素时出现的高亮颜色 *{-webkit-tap-highlight-color: transparent; }2、如果你想要自定义按钮的样式,你可以使用 -webkit-appearance: none; 来移除按钮的默认样式 .button {-webkit-appearance: none;appearance: none; /* 兼容性更好的通…

如何创建window11虚拟机,超详细!!!

为什么要创建window11虚拟机,有了虚拟机,可以避免一些软件的危害,我们可以在虚拟机里,测试软件的安全性。当然你也可以在虚拟机里体验下流氓软件带来的快乐。众所周知,流氓软件会修改默认浏览器,将几款流氓…

OpenWRT有线桥接部署教程

前言 之前咱们讲到OpenWRT部署WAN实现PPPoE拨号上网和自动获取IP模式上网的办法: OpenWRT设置PPPoE拨号教程 OpenWRT设置自动获取IP,作为二级路由器 这一次,咱们尝试用OpenWRT有线桥接上一级路由器的教程。 可能有小伙伴敏锐地发现了&am…

金丝燕智能门锁技术支持

1、如何通过金丝燕App设置门锁? 在首页App首页,您可以通过点击门锁右上角设置按钮进入门锁设置页面,进行省电模式设置,开启通知,设备解绑等操作以下是门锁设置页面:2、 如何给让我的门锁连接网络? 第一步:点击金丝燕App首页右下角“+”号: 第二步:选择设备第三步:输入Wi-Fi信…

Docker-harbor

一、搭建本地私有仓库 1.1 下载Registry镜像 1.2 添加本地私有仓库配置 1.3 重启服务并运行Registry容器 1.4.容器的操作 1.4.1 拉取Nginx镜像并为镜像打标签 1.4.2 上传到私有仓库 1.4.3 列出私有仓库所有镜像 1.4.4 列出私有仓库的镜像的所有标签 1.4.5 先删除原有…

[uniapp] 配置ts类型声明

我想引进图片,但是报错 声明一下就行 TypeScript 支持 | uni-app官网 创建tsconfig.json文件,复制官网的配置 然后在随便一个目录下写一个随便名字的.d.ts文件 例如这样 保存就行 因为ts是默认扫描全部的,所以要按照官网的写法 把不必要的排除掉就行,免得浪费性能

e语言----让信息框弹出位置跟随窗口

提醒:调试不起效果,需要编译好才行本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18185605

单词反转字符串函数设计

简单设计一个以单词为个体的字符串翻转函数/*************************************************** file name:ReverseWorld.c* author :eon4051@163.com* date :2024/05/11* brief :单词反转字符串函数设计* note :None** CopyRight (c) 2024 eon…

Kettle连接Mysql数据库时报错——Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found

一、问题描述 当我们使用ETL工具Kettle需要连接Mysql数据库进行数据清洗操作,在配置好Mysql的连接串内容后,点击【测试】按钮时报错【错误连接数据库 [MysqlTestConnection] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to conne…