当前位置: 首页 > news >正文

IDEA 中的奇技淫巧

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)。以及红黑树…

相关文章:

IDEA 中的奇技淫巧

IDEA 中的奇技淫巧 书签 在使用ctrlalt方向键跳转时,或者追踪代码时,经常遇到的情况是层级太多,找不到代码的初始位置,入口。可以通过书签的形式去打上一个标记,后续可以直接跳转到书签位置。 标记书签:c…...

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab) 目录 LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.LSTM-KDE的长短期…...

CMakeLists.txt语法规则:部分常用命令说明三

一. 简介 前面几篇文章学习了CMakeLists.txt语法中 add_executable命令,add_library命令,aux_source_directory命令,include_directories命令,add_subdirectory 命令的简单使用。文章如下: CMakeLists.txt语法规则&…...

android init进程启动流程

一,Android系统完整的启动流程 二,android 系统架构图 三,init进程的启动流程 四,init进程启动服务的顺序 五,android系统启动架构图 六,Android系统运行时架构图 bool Service::Start() {// Starting a service removes it from the disabled or reset state and// imme…...

利用爬虫解决数据采集难题

文章目录 安装为什么选择 BeautifulSoup 和 requests?安装 BeautifulSoup 和 requests解决安装问题 示例总结 在现代信息时代,数据是企业决策和发展的关键。然而,许多有用的数据分散在网络上,且以各种格式和结构存在,因…...

智慧粮库/粮仓视频监管系统:AI视频智能监测保障储粮安全

智慧粮库视频监管系统是一种基于物联网、AI技术和视频监控技术的先进管理系统,主要用于对粮食储存环境进行实时监测、数据分析和预警。TSINGSEE青犀智慧粮库/粮仓视频智能管理系统方案通过部署多区域温、湿度、空气成分等多类传感器以及视频监控等设施,对…...

经验浅谈!伦敦银如何交易?

近期,伦敦银价格出现很强的上涨,这促使一些新手投资者进入了市场,但由于缺乏经验,他们不知道该怎么在市场中交易,下面我们就从宏观上介绍一些方法,来讨论一下伦敦银如何交易。 首先我们要知道,要…...

信息系统项目管理师(高项)_习题杂记

1.GB/T16260-2006《软件工程产品质量》系列标准: 1)GB/T16260.1-2006《软件工程产品质量第1部分:质量模型》,提出了软件生存周期中的质量模型; 2)GB/T16260.2-2006《软件工程产品质量第2部分:…...

CMakeLists.txt 简单的语法介绍

一. 简介 前面通过几个简单地示例向大家演示了 cmake 的使用方法,由此可知,cmake 的使用方法其实还是非常简单的,重点在于编写 CMakeLists.txt,CMakeLists.txt 的语法规则也简单,并没有 Makefile 的语法规则那么复杂难…...

AI时代:人工智能大模型引领科技创造新时代

目录 前言一. AI在国家战略中有着举足轻重的地位1.1 战略1.2 能源1.3 教育 二. AI在日常生活中扮演着重要角色2.1 医疗保健2.2 智能客服2.3 自动驾驶2.4 娱乐和媒体2.5 智能家居 三. AI的未来发展趋势 总结 前言 随着AI技术的进步,新一代的AI技术已经开始尝试摆脱依…...

为什么 IP 地址通常以 192.168 开头?(精简版)

网络通讯的本质就是收发数据包。如果说收发数据包就跟收发快递一样。IP地址就类似于快递上填的收件地址和发件地址一样,路由器就充当快递员的角色,在这个纷繁复杂的网络世界里找到该由谁来接收这个数据包,所以说:IP地址就像快递里…...

【HEC】HECRAS中的降雨边界

目录 说明HEC-RAS网格降雨模型与HEC-HMS的比较HECRAS 降雨边界2D Area降雨边界添加降水边界条件调整2D Flow Area特性添加入渗网格数据创建土地覆盖层创建土壤层创建入渗层指定几何图形关联具有空间变化的网格降水数据Point点数据Gridded网格化数据Constant恒定值蒸散和风数据...

搜索算法系列之三(插值查找)

前言 插值查找仅适用于有序数据、有序数组,和二分查找类似,更讲究数据有序均匀分布。 算法原理 插值查找(interpolation search)是一种查找算法,它与二分查找类似,但在寻找元素时更加智能化。这种算法假设数据集是等距的或者有…...

前端奇怪面试题总结

面试题总结 不修改下面的代码进行正常解构 这道题考的是迭代器和生成器的概念 let [a,b] {a:1,b:2}答案 对象缺少迭代器,需要手动加上 Object.prototype[Symbol.iterator] function* (){// return Object.values(this)[Symbol.iterator]()return yeild* Object.v…...

NPM--最新淘宝镜像源地址

最新淘宝镜像源地址: 原来的 https://registry.npm.taobao.org 已替换为 https://registry.npmmirror.com 查看镜像源 npm config get registry 更换为淘宝最新镜像源 npm config set registry https://registry.npmmirror.com...

vue3中实现地区下拉选择组件封装

1组件文件 新建一个文件夹内&#xff0c;包含inde.vue,index.ts,pac.json这三个文件 index.vue文件 <template><el-cascaderv-model"data":options"pcaData":style"{ width: props.width }":placeholder"props.placeholder&quo…...

责任链模式案例

需求背景&#xff1a; 请你设计一个员工休假审批流程&#xff0c;当员工的休假天数<1时&#xff0c;由直接领导审批&#xff0c;休假天数<2时&#xff0c;分别由直接领导、一级部门领导审批&#xff0c;休假天数>3时&#xff0c;分别由直接领导、一级部门领导、分管领…...

Android NDK开发(二)——JNIEnv、jobject与jclass关系

本文主要讲解Android NDK开发中JNIEnv、jobject与jclass的相关知识&#xff0c;并用c和c两种语言实现了jobject和jclass。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感兴趣的读者…...

机器学习入门:sklearn基础教程

Scikit-learn&#xff08;简称sklearn&#xff09;是Python中最受欢迎的机器学习库之一&#xff0c;它提供了丰富的机器学习算法和工具&#xff0c;适用于各种任务和场景。本文将为您介绍sklearn的基础知识和常用功能&#xff0c;带您踏入机器学习的世界。 1. 安装与导入 首先…...

26 | 备库为什么会延迟好几个小时?

在官方的 5.6 版本之前,MySQL 只支持单线程复制,由此在主库并发高、TPS 高时就会出现严重的主备延迟问题。 coordinator 就是原来的 sql_thread, 不过现在它不再直接更新数据了,只负责读取中转日志和分发事务。真正更新日志的,变成了 worker 线程。而 work 线程的个数,就是…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...