一、Java 简介
- 语言特性
- 跨平台性:基于 JVM,可在多系统运行,如 Windows、Linux 开发的程序能在 Mac 运行。
- 面向对象:封装、继承、多态特性利于代码组织与复用,像开发图形界面应用时类的设计体现这些特性。
- 应用场景
- Web 开发:主流框架如 Spring 构建大型网站后端,处理业务逻辑与数据交互。
- 移动开发:Android 开发基础,虽 Kotlin 兴起,但 Java 仍有重要地位。
- 版本分类
- Java SE:基础版,用于桌面应用与基础编程学习,如开发简单的文本处理软件。
- Java EE:企业版,面向企业级应用,包含 EJB 等技术,构建复杂企业系统。
- 与其他语言对比
- 比 C++:内存管理更自动,降低指针操作风险,开发效率更高,如开发数据库管理系统。
- 比 Python:强类型检查,性能和稳定性在大型项目更优,像大数据处理框架。
- 学习价值
- 就业:企业需求大,涵盖多行业,如金融科技领域开发核心业务系统。
- 技能提升:培养编程思维,为学习其他语言和技术打基础,如转向人工智能领域学习 Python 更轻松。
二、系统要求
- 操作系统
- Windows:支持 10 及以上版本,32 位或 64 位,如在 Windows 10 64 位开发企业级应用。
- Linux:Ubuntu、CentOS 等常见发行版,用于服务器端开发部署,如搭建电商后台服务器。
- Mac:OS X 及后续版本,适合开发 Mac 专属应用与 iOS 后端,如开发 Mac 上的图形设计软件。
- 硬件条件
- 处理器:Intel i3 及以上或等效 AMD 处理器,处理复杂算法运算,如数据加密算法。
- 内存:至少 2GB,推荐 8GB 以上,运行多服务或大型项目,如微服务架构应用。
- 硬盘:预留 10GB 以上,安装 IDE 和依赖库,如 Intellij IDEA 及 Maven 依赖。
- 软件依赖
- Windows:建议安装 Chrome 等浏览器方便查文档,如查找 JavaFX 文档。
- Linux:可能需 gcc 等基础工具,安装特定库或驱动,如 MySQL 驱动依赖。
- Mac:Xcode 命令行工具,开发图形界面或底层交互应用,如 Mac 原生应用。
- 网络环境
- 安装时:稳定网络下载安装包,避免中断,如从官网下载 JDK。
- 开发中:网络用于调试与服务通信,如微服务间 HTTP 调用。
- 注意要点
- 系统时间:准确,影响证书验证与时间戳操作,如 HTTPS 通信。
- 软件冲突:关闭杀毒软件等可能冲突软件,如安装时被误报阻止。
三、JDK 下载
- 版本抉择
- Java 8:稳定兼容,企业老项目常用,如传统企业信息管理系统维护。
- Java 11:LTS 版,新特性与优化,适合云与微服务开发,如 Spring Boot 3 项目。
- Java 17:新特性多,追求前沿开发可选用,如高性能金融交易系统开发。
- 官方途径
- 网址:Java Downloads | Oracle 。
- 步骤:选对应系统版本,接受协议后下载,如 Windows 64 位 JDK 下载。
- 其他渠道
- 镜像站:如阿里云镜像站,国内下载速度快,如从阿里云下载 Java 11。
- 包管理工具:Linux 中 apt-get 等安装 OpenJDK,如 Ubuntu 安装 OpenJDK 11。
- IDE 自带:Intellij IDEA 可提示下载安装,创建项目时使用,如新手使用 IDE 首次开发。
- 第三方平台:正规平台可下载,但注意安全,如华军软件园下载 JDK 8。
- 速度提升
- 下载工具:迅雷等多线程下载,加快大文件下载,如下载较大的 JDK 安装包。
- 错峰下载:避开网络高峰,清晨或凌晨下载,如晚上网络拥堵时改到早上下载。
- 文件校验
- 哈希值:计算与官方对比,如 Linux 中 sha256sum 命令,确保文件完整未改。
- 大小核对:与官方公布大小一致,如 Windows 查看文件属性中的大小信息。
四、JDK 安装(Windows)
- 安装启动
- 操作:双击安装包,如 “jdk-11.0.11_windows-x64_bin.exe”。
- 向导:按提示操作,如选择安装语言和安装路径。
- 路径选择
- 建议:非系统盘且无中文空格,如 “D:\Java\jdk-11.0.11”。
- 影响:避免系统盘空间与路径问题,如防止因系统盘满导致安装失败。
- 组件选取
- 默认:一般保持,新手或需完整功能保留,如保留示例代码与源代码。
- 精简:若知需求,可取消部分,如不开发示例应用可取消示例代码组件。
- 安装等待
- 时长:几分钟,期间勿操作,如等待安装进度条完成。
- 提示:完成后有成功提示,如显示 “安装成功” 字样。
- 变量配置
- 自动:部分自动配置,检查是否成功,如安装后查看 Path 变量。
- 手动:若需,在系统环境变量中添加 JDK bin 目录到 Path,如将 “D:\Java\jdk-11.0.11\bin” 添加到 Path。
五、JDK 安装(Linux - Ubuntu)
- 解压安装(手动)
- 命令:“tar -zxvf jdk-11.0.11_linux-x64_bin.tar.gz” 解压,如在 “/home/user/Downloads” 解压。
- 移动:可移到合适目录,如 “/usr/local/java/jdk-11.0.11”。
- 包管理安装
- 命令:“sudo apt-get install openjdk-11-jdk”,自动处理路径与变量,如快速安装 OpenJDK 11。
- 优势:便捷,依赖自动解决,如安装时自动下载安装所需依赖库。
- 变量设置(手动)
- 文件:在 “/etc/profile” 添加,如 “export JAVA_HOME=/usr/local/java/jdk-11.0.11” 等。
- 生效:“source /etc/profile” 使变量生效,如执行后可在终端使用 Java 命令。
- 安装验证
- 命令:“java -version” 与 “javac -version”,查看版本信息,如显示 Java 11 版本号。
- 意义:确认安装成功且环境正常,如确保编译器可正常工作。
- 多版本管理
- 注册:“sudo update-alternatives --install...” 注册多版本,如将不同 JDK 注册到系统。
- 切换:“sudo update-alternatives --config java” 切换,如选择使用特定版本 Java。
六、JDK 安装(Mac)
- 安装包操作
- 双击:“jdk-11.0.11_osx-x64_bin.dmg”,挂载磁盘镜像,如在 “下载” 文件夹双击。
- 拖动:将 “JDK 11.0.11.jdk” 到 “/Library/Java/JavaVirtualMachines”,如完成安装到指定目录。
- 环境变量
- 文件:在 “~/.bash_profile” 添加,如 “export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home” 等。
- 生效:“source ~/.bash_profile”,如执行后可在终端运行 Java 程序。
- 安装验证
- 命令:“java -version” 等,查看版本,如显示 Mac 上安装的 Java 11 版本。
- 检查:确保环境正常,如验证 Java 运行环境是否正确配置。
- 兼容性处理
- 更新:遇兼容问题更新相关软件,如更新 Xcode 解决与 JDK 冲突。
- 查找:网上查解决方案,如在技术论坛找 Mac JDK 安装问题解决办法。
- 特殊说明
- 路径:注意安装路径规范,如按要求放置 JDK 文件夹到指定目录。
- 权限:确保有操作权限,如遇权限不足调整权限后安装。
七、安装问题解决
- 权限不足
- Windows:以管理员身份运行,如右键安装包选 “以管理员身份运行”。
- Linux/Mac:使用 “sudo”,如 “sudo tar -zxvf...” 解压安装包。
- 路径错误
- 检查:路径是否存在与可写,如确认安装目录是否存在。
- 修正:创建或改权限,如 “mkdir -p /usr/local/java” 创建目录。
- 乱码问题
- Windows:检查区域语言设置,如确保非 Unicode 程序语言设置正确。
- Linux:设置 “LANG” 变量,如 “export LANG=en_US.UTF-8”。
- 无响应
- 资源:关闭其他程序释放资源,如关闭大型软件再安装。
- 安装包:重新下载,如下载损坏则重新获取安装包。
- 软件冲突
- 卸载:先卸载旧版 Java,如在 Windows “控制面板 - 程序和功能” 卸载。
- 备份:卸载前备份项目与配置,如备份 Java 项目源码与数据库连接配置。
八、安装后初始配置(可选)
- 运行参数设置
- 脚本:修改 “JAVA_HOME/bin/java” 启动脚本或运行时指定参数,如设置堆内存 “-Xmx2g -Xms2g”。
- 权衡:调整参数影响性能,如增大堆内存提升运行速度但可能增加内存占用。
- 安全策略配置
- 文件:在 “JAVA_HOME/jre/lib/security/java.security” 修改,如调整网络访问权限。
- 谨慎:修改需谨慎,避免安全漏洞,如限制网络访问权限防止恶意攻击。
- 调试功能启用
- 参数:运行时加 “-agentlib:jdwp=...” 参数,如 “-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”。
- 连接:用调试工具连接端口调试,如在 Intellij IDEA 中配置连接到 5005 端口。
- 日志输出定制
- 框架:配置 Log4j 或 Logback 等,如在 Logback 的 “logback.xml” 设置日志级别与路径。
- 作用:方便查看与分析程序运行状态,如记录错误信息排查故障。
- 启动速度优化
- 技术:使用 AOT 编译(Java 9 以上)或减少启动类库加载,如 “java -XX:+TieredCompilation -XX:TieredStopAtLevel=1”。
- 权衡:优化可能影响运行性能,如减少启动时间但可能降低运行时效率。
九、环境变量配置(Windows)
- 系统变量创建
- 名称:“JAVA_HOME”,值为 JDK 安装路径,如 “D:\Java\jdk-11.0.11”。
- 作用:让软件找到 Java 环境,如 Intellij IDEA 据此确定 Java 版本。
- Path 添加
- 内容:“% JAVA_HOME%\bin”,方便命令行使用,如在命令提示符直接运行 Java 命令。
- 检查:“echo % JAVA_HOME%” 与 “echo % Path%” 检查,如确认变量值正确。
- 变量生效
- 新开:新命令提示符窗口自动生效,如打开新窗口可直接用 Java 命令。
- 当前:“set PATH=% PATH%;% JAVA_HOME%\bin” 当前生效,如在当前会话立即使用 Java 命令。
- 多版本切换
- 路径:修改 Path 中 JDK bin 目录顺序,如调整优先使用的 Java 版本。
- 变量:改变 “JAVA_HOME” 值,如切换到其他已安装的 Java 版本。
- 注意事项
- 名称:变量名准确,避免拼写错误,如 “JAVA_HOME” 不能写成 “JAVA-HOME”。
- 路径:路径分隔符正确,如 Windows 用 “\”,避免用 “/”。
十、环境变量配置(Linux)
- 全局设置
- 文件:“/etc/profile”,对所有用户生效,如设置公共 Java 环境。
- 内容:添加 “export JAVA_HOME=/usr/local/java/jdk-11.0.11” 等,如配置系统级 Java 路径与 Path。
- 用户设置
- 文件:“~/.bash_profile”,仅当前用户有效,如用户个性化 Java 环境。
- 示例:“export JAVA_HOME=/home/user/java/jdk-11.0.11” 等,如用户自定义 JDK 安装路径。
- 生效操作
- 命令:“source /etc/profile” 或 “source ~/.bash_profile”,如使环境变量在当前终端生效。
- 检查:“echo $JAVA_HOME”与“echo $PATH” 检查,如确认变量设置正确。
- 多用户管理
- 公共:“/etc/profile” 设公共部分,如公共的 JDK 基础路径。
- 个性:用户各自 “~/.bash_profile” 设差异,如用户特定的 Java 库路径。
- 特殊情况
- 权限:修改文件权限,如 “chmod +w /etc/profile” 修改可写权限后编辑。
- 备份:修改前备份,如 “cp /etc/profile/etc/profile.bak” 备份原文件。