定期执行sudo apt update && sudo apt upgrade -y确保系统软件包为最新版本,修复潜在安全漏洞并提升兼容性;使用sudo apt autoremove清理不再需要的依赖包,sudo apt clean清除APT缓存,释放磁盘空间,减少系统资源占用。
优先使用Debian官方仓库的OpenJDK(如openjdk-11-jdk、openjdk-17-jdk),其稳定性与兼容性更有保障。安装命令示例:sudo apt install openjdk-11-jdk -y。若需特定版本(如Oracle JDK),可从官方网站下载tar.gz包,解压至/usr/lib/jvm目录后手动配置。
/etc/environment文件,添加以下内容(根据实际JDK路径调整):JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"PATH="$JAVA_HOME/bin:$PATH"source /etc/environment使变量生效。~/.bashrc文件,添加相同内容,仅对当前用户生效。echo $JAVA_HOME应显示JDK路径,java -version应输出正确版本信息。若系统安装了多个Java版本,可使用update-alternatives工具切换:
sudo update-alternatives --config java
根据提示选择对应版本编号,简化版本切换流程。
-Xms(初始堆大小)和-Xmx(最大堆大小)指定堆内存范围,建议两者设置为相同值(如-Xms2g -Xmx2g),避免堆内存动态调整带来的性能开销。-XX:NewSize(初始新生代大小)和-XX:MaxNewSize(最大新生代大小)(如-XX:NewSize=512m -XX:MaxNewSize=512m),并调整-XX:SurvivorRatio(伊甸区与幸存区比例,默认8:1:1,如-XX:SurvivorRatio=8),优化新生代垃圾回收效率。根据应用类型选择合适的垃圾回收器:
-XX:+UseG1GC启用,可设置-XX:MaxGCPauseMillis=200(最大GC停顿时间,单位毫秒)和-XX:InitiatingHeapOccupancyPercent=70(触发GC的堆占用率阈值),平衡吞吐量与延迟。-XX:+UseParallelGC启用,多线程并行回收,提升吞吐量。-Xss设置线程栈大小(如-Xss2m),默认值(1m)可能不足,导致StackOverflowError;若应用线程数较多,可适当减小(如-Xss1m)以节省内存。-XX:ParallelGCThreads设置(如-XX:ParallelGCThreads=4,建议值为CPU核心数的1-2倍);并发GC线程数通过-XX:ConcGCThreads设置(如-XX:ConcGCThreads=2),减少GC对应用线程的影响。new String()),尽量重用对象(如使用StringBuilder代替字符串拼接)。int、double)代替包装类型(如Integer、Double),减少自动装箱/拆箱的开销。HashMap(O(1)时间复杂度),有序数据用TreeMap(O(log n));频繁插入/删除用LinkedList(链表结构)。InputStream、Connection等,使用try-with-resources语句自动关闭。static Map)。WeakReference)或软引用(SoftReference)管理缓存,允许GC在内存不足时回收这些对象。ExecutorService(如Executors.newFixedThreadPool(10))管理线程,避免频繁创建/销毁线程的开销。ReentrantLock代替synchronized块),或java.util.concurrent包中的并发工具(如ConcurrentHashMap、AtomicInteger),提升并发性能。BufferedReader、BufferedWriter)包装InputStream/OutputStream,减少磁盘I/O次数(如BufferedReader reader = new BufferedReader(new FileReader("file.txt")))。batchInsert(批量插入),减少网络往返次数;文件读写用BufferedInputStream一次性读取大块数据。java.nio.channels.FileChannel进行文件操作,或Selector实现多路复用(如Netty框架),提升高并发场景下的I/O性能。-Xloggc参数)。通过-Xloggc:/path/to/gc.log参数开启GC日志,记录垃圾回收的详细信息(如回收时间、回收前后堆大小)。使用工具(如GCViewer)分析日志,找出GC频繁或停顿时间过长的原因(如新生代过小、老年代回收慢),针对性调整JVM参数。