1. Java环境安装与配置最佳实践
sudo apt update && sudo apt install openjdk-17-jdk(根据需求选择版本,如11、17等LTS版本)。安装后通过java -version验证是否成功。JAVA_HOME和PATH。推荐编辑/etc/environment(系统全局)或~/.bashrc(用户级),添加:JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"(路径根据实际安装版本调整),PATH="$JAVA_HOME/bin:$PATH"。修改后执行source /etc/environment使配置生效。update-alternatives工具切换。例如,设置默认Java版本:sudo update-alternatives --config java,按提示选择对应版本。此工具可统一管理Java命令路径,避免版本冲突。2. 性能优化关键实践
-Xms2g -Xmx2g(初始堆=最大堆,避免动态扩容开销);新生代比例:-XX:NewRatio=3(新生代占堆的1/4,适合短生命周期对象多的应用);垃圾回收器:低延迟选-XX:+UseG1GC(默认),高吞吐量选-XX:+UseParallelGC。示例:java -Xms2g -Xmx2g -XX:+UseG1GC -jar your-app.jar。new操作,使用对象池);选择高效数据结构(如HashMap替代ArrayList做快速查找,ConcurrentHashMap替代Hashtable提升并发性能);优化字符串操作(用StringBuilder替代+拼接,尤其在循环中);避免自动装箱(如用int而非Integer存储基本类型)。VisualVM(JDK自带)或JConsole实时监控JVM内存、线程、GC情况;分析GC日志(添加-Xloggc:/var/log/java/gc.log参数)识别内存泄漏或频繁Full GC问题。定期生成堆转储(jmap -dump:format=b,file=heap.hprof <pid>)分析对象占用情况。3. 部署流程最佳实践
/opt/apps目录),使用java -jar your-app.jar运行。若为WAR文件,可部署到Tomcat的webapps目录(需提前安装Tomcat)。此方式适合简单应用,但管理不便。Dockerfile(示例:基于openjdk:17-jdk镜像,复制JAR到/app,暴露8080端口,设置CMD ["java", "-jar", "your-app.jar"]),通过docker build -t your-app .构建镜像,再用docker run -d -p 8080:8080 your-app运行。容器化优势:环境隔离、快速部署、便于扩展(配合Kubernetes)。systemd创建服务文件(/etc/systemd/system/your-app.service),内容示例:[Unit] Description=Your Java App After=network.target [Service] User=app-user ExecStart=/usr/bin/java -jar /opt/apps/your-app.jar Restart=on-failure [Install] WantedBy=multi-user.target。执行sudo systemctl enable your-app设置开机自启,sudo systemctl start your-app立即启动。此方式确保应用随系统重启自动运行。4. 安全与管理实践
app-user)应仅具备必要目录的读写权限,避免使用root。例如,将应用目录所有者设为app-user:sudo chown -R app-user:app-user /opt/apps/your-app。mvn versions:use-latest-versions),避免使用已知漏洞的组件(可通过OWASP Dependency-Check工具扫描)。/var/log/java/目录(需创建目录并设置权限),使用Logback或Log4j2配置滚动日志(如按天分割),避免单个日志文件过大。结合ELK Stack(Elasticsearch+Logstash+Kibana)实现日志集中收集与分析。