java日常开发笔记和开发问题记录

Bean 对象中的属性都定义成包装类型

比如整型定义成 Integer 而不是 int,Integer 可以为 null,可以区分出未赋值 null 和 0 的情况,而 int 是基本类型不能赋值为 null,除非是确定知道值或者定义枚举里(方便直接用 == 比较)。

如果是 Integer 即使为 null 也可以直接set值的,而如果是 int 设置为 null 的值时就会报 NullPointerException 空指针异常。所以平时定义 Bean 对象时,本身 Bean 就需要经常 get、set,直接定义成包装类型可以避免报错和每次 set 前额外的判断。

DO对象额外字段

数据库 DO 对象一般会跟数据库字段一一对应,但是比如特殊的查询条件、联表查询之类的,可能想要往 DO 里存一些在当前表中不存在的字段,这种情况就可以借助如下注解:@TableField(exist = false) 来定义额外的字段。

maven 部署快照版本

开发调试中的时候定义一个模块为快照版本,需要在版本号后面加上-SNAPSHOT(必须是大写),如果小写snapshot,maven会认为其是releases版本。

数据库操作

不要循环去查db,禁止在 for 循环中去查db。多表查询建议不要联表,sql尽量建单化,需要联表的场景可以自己单个查出来再到代码中去做关联。

跑项目里的所有单测

可以直接在 test 目录下右键 run 'Tests' in xx 就可以跑所有的用例,还可以跑代码覆盖率。

java开发问题记录

IntelliJ IDEA 快捷键

  • 全局搜索:双击 shift、ctrl + shit + F
  • 当前搜索:ctrl + F
  • 当前替换:ctrl + R
  • 代码向后缩进:选中需要缩进的代码 + tab键
  • 代码向前缩进:选中需要缩进的代码 + shift + tab键

mac 上安装 Itellij IDE

之前安装过的话要卸载干净了才能再装最新的,否则装上新版会打不开。卸载可以在终端里一次输入下面4条删除命令:

bash 复制代码
# 第1条
rm -rf ~/Library/Logs/JetBrains/IntelliJIdea*

# 第2条
rm -rf ~/Library/Application\ Support/JetBrains/IntelliJIdea*

# 第3条
rm -rf ~/Library/Caches/JetBrains/IntelliJIdea*

# 第4条
rm -rf ~/Library/Preferences/jetbrains.idea*

Address already in use 报错

杀死占用端口进程再重新运行,mac 上杀死端口:

bash 复制代码
# 查出占用要杀死端口的 PID
lsof -i:8080

# 通过 PID 杀死进程
kill -9 ${查出来的PID}

IDEA跑单测报错 Command line is too long

实测有用的彻底解决此报错的方法:直接给 JUint 设置 shorten command line。

IDEA避免包被自动引入全部

IDEA导入包时避免编辑器自动引入全部 import xxx.xx.,将 Settings - Editor - Code Style - Java - Imports 中的 Class count to use import with '' 和 Names count to use static import with '*' 默认的5、3改大点比如:50、30。

IDEA多个文件Tab显示成多行

IDEA默认的打开文件Tab是单行显示的,文件名太长时同时打开多个文件时切换会很不方便,可以设置 File - Settings - Editor -Editor Tabs,去掉 Show tabs in single row 勾选,下面的 Tab limit 可以调整显示的 tab 数量,一般可以调到 20,这样多个 Tab 时会直接多行排列,切换和查找的时候都很方便。

IDEA终端Esc快捷键冲突

IDEA中使用命令行通过 i 进入编辑模式修改好后,没办法按Esc键退出,原因是和IDEA快捷键冲突了,可以在 Settings 设置里把 Esc的快捷键删掉就可以了。

人人都是码农:AI时代,零基础也能学会编程!关于作者:从美工、前端开发一路成功转型Java后端的野生码农 ‍,分享UI转前端、前端转Java、全栈开发、AI人工智能和码农搞钱副业...

相关推荐
juniperhan3 分钟前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink
ID_180079054735 分钟前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
c++之路25 分钟前
C++23概述
java·c++·c++23
专注API从业者1 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
摇滚侠2 小时前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
keep one's resolveY2 小时前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
天空属于哈夫克33 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠3 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌3 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局3 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化