Java入门指南
一、初识Java:是什么,能做什么?
Java到底是什么?
Java是Sun公司(斯坦福大学网络公司)在1995年推出的一门高级编程语言,2009年Sun公司被Oracle(甲骨文)公司收购,现在Java的官方维护方就是Oracle。而Java的联合创始人詹姆斯·高斯林,也被大家公认为“Java之父”。
它能成为国内企业使用最广泛、全球最流行的编程语言之一,核心原因也很简单:开发社区极其完善、功能丰富,同时具备优秀的可移植性、安全可靠性和稳定的性能,这也是企业大规模采用它的核心原因。
Java能做什么?
- 企业级服务器端软件开发:占据了90%以上的市场份额,日常用的电商、金融、办公系统,后端大多是Java开发的;
- 大数据与云计算开发:大数据领域的主流框架Hadoop、Spark等,都是基于Java开发的;
- 移动端App开发、桌面应用开发、游戏开发等场景也都有Java的身影。
Java三大技术平台,对应不同的开发场景:
- JavaSE(标准版):Java技术的核心和基础,也是入门学习的重点;
- JavaEE(企业版):企业级应用开发的全套解决方案,做后端开发必备;
- JavaME(小型版):针对移动设备应用的解决方案。
二、开发环境搭建:Java开发的前置准备
第一步搭建好开发环境,核心是安装和配置JDK。
1. JDK是什么
JDK全称Java Development Kit,是Java开发者工具包,用Java开发程序,必须先安装JDK。
很多新手会 confused JDK、JRE、JVM的关系,这里一句话讲清楚:
- JVM(Java虚拟机):真正运行Java程序的地方;
- JRE(Java运行环境):包含JVM和Java核心类库,是Java程序运行的基础;
- JDK:包含JRE、JVM,还有javac(编译工具)、java(运行工具)等所有开发工具,即装了JDK,就拥有了Java开发和运行的全部能力。
2. JDK的下载与安装
- 下载渠道:Oracle官网下载;
- 版本选择:优先选择LTS(长期支持)版本,包括JDK 8、11、17、21,目前很多企业还在稳定使用JDK 8和JDK 11;
- 安装注意:安装路径建议不要包含中文和空格,全程默认下一步。
3. 环境变量配置
环境变量的核心作用,是让我们能在电脑的任意目录下,直接通过命令行运行java和javac指令,不用每次都切换到JDK的安装目录。
较新版本的JDK在安装时,会自动把java和javac的路径配置到系统Path环境变量中,而老版本的JDK需要手动配置。
手动配置两个环境变量:
- JAVA_HOME:变量值填写JDK安装路径,作用:告诉操作系统和其他技术框架JDK的安装位置;
- Path:在Path中添加
%JAVA_HOME%\bin,这种写法比直接写绝对路径更灵活,后续更换JDK版本时,只需要修改JAVA_HOME。
4. 验证安装是否成功
按下Win+R,输入cmd打开命令行窗口,分别输入以下两个命令:
java -version
javac -version如果两个命令都能正常输出JDK的版本号,就说明安装和配置成功。
这里还要记住Java最核心的两个命令:
javac:编译工具,把我们写的.java源代码文件,翻译成计算机能识别的.class字节码文件;java:运行工具,执行编译好的.class文件,让程序跑起来。
这两个步骤,实现了Java“一次编译,处处可用”的跨平台特性——只要不同的操作系统安装了对应的JVM,同一份编译后的.class文件就能直接运行。
三、开发工具选择
目前企业里Java开发的主流工具,主要包含:
- IntelliJ IDEA:企业开发的首选工具,由JetBrains公司开发,代码智能提示、重构、版本控制集成能力都极其优秀,分为免费的社区版(新手完全够用)和付费的终极版;
- Eclipse:开源免费的老牌IDE,插件生态极其丰富;
- Apache NetBeans:开源免费,界面友好,对JavaEE和Web应用支持很好,上手门槛低;
- VS Code+Java插件:轻量级代码编辑器,通过安装Java扩展就能实现基础的开发功能,适合喜欢轻量化工具的开发者。
IDEA开发Java程序的核心结构
用IDEA开发Java项目,代码结构有固定的层级,避免后续项目结构混乱:Project(工程/项目)-> Module(模块)-> Package(包)-> Class(类)
- 一个Project里可以创建多个Module,比如一个电商系统Project,可拆分出订单、购物车、用户等多个Module;
- 一个Module里可以创建多个Package,用来分类管理不同功能的代码;
- 一个Package里可以创建多个Class,Java代码最终都写在Class类文件里。
IDEA常用快捷键
| 快捷键 | 核心作用 |
|--------|----------|
| psvm/main | 快速生成main方法 |
| sout | 快速生成控制台输出语句 |
| Ctrl + D | 复制当前行到下一行 |
| Ctrl + X | 删除当前行 |
| Ctrl + ALT + L | 自动格式化代码 |
| Ctrl + / | 快速添加/取消单行注释 |- 可以安装AI编程插件,比如通义灵码、Github Copilot等,能实现代码补全、注释生成、代码解释、优化建议等功能;
- 可根据自己的习惯调整主题、字体大小、背景色,提升编码的舒适度。
四、第一个Java程序
方式一:文本编辑器+命令行实现
1. 编写源代码
新建一个文本文档,重命名为HelloWorld.java,注意:**文件名必须和代码中的类名完全一致,后缀必须是.java。
用记事本或VS Code打开文件,输入以下代码,所有符号都必须是英文模式:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,World!");
}
}main方法是程序的入口,程序运行时会自动执行main方法里的代码。
2. 编译代码
打开cmd命令行窗口,切换到HelloWorld.java文件所在的目录,输入编译命令:
javac HelloWorld.java如果代码没有报错,目录下会自动生成一个HelloWorld.class字节码文件,这就是编译后的文件。
3. 运行程序
在同一个命令行窗口,输入运行命令,注意这里不需要加文件后缀:
java HelloWorld命令执行后,控制台会输出Hello,World!
方式二:IDEA快速实现
- 新建Project空工程;
- 在工程里新建Module模块;
- 在模块的src目录下,新建Package包(建议用域名倒写格式,比如com.hello);
- 在包下新建Class类,命名为HelloWorld;
- 在类中编写上述HelloWorld代码;
- 点击代码左侧的运行按钮,或右键选择Run,控制台就会输出运行结果。
IDEA会自动完成代码的编译和执行,编译后的.class文件,会存放在工程目录下的out文件夹中。
五、Java基础语法核心
1. 注释:给代码写说明
注释是写在程序中,对代码进行解释说明的文字,方便自己和其他人理解代码,注释不会影响程序的执行,因为编译后的.class文件中,不会保留注释内容。
Java有三种注释写法:
- 单行注释:
// 注释内容,只对当前行生效,适合简短说明; - 多行注释:
/* 注释内容 */,可跨行书写,适合大段说明; - 文档注释:
/** 注释内容 */,一般用在类和方法上方,注释内容可被提取成程序的说明文档。
2. 字面量:程序中数据的书写规则
字面量,就是程序中能直接书写的数据,不同类型的数据,在Java中有固定的书写格式:
| 数据类型 | 书写规则 | 示例 |
|---|---|---|
| 整数 | 和生活中写法一致 | 666、-88 |
| 小数 | 和生活中写法一致 | 13.14、-5.21 |
| 字符 | 必须用单引号包裹,且只能有一个字符 | 'A'、'我'、'0' |
| 字符串 | 必须用双引号包裹,内容可空可多 | "HelloWorld"、"黑马程序员" |
| 布尔值 | 只有两个固定值 | true(真)、false(假) |
| 空值 | 固定值 | null |
3. 变量:程序中处理数据的核心
变量可以理解为内存中的一块区域,就像一个盒子,用来存放程序要处理的数据,使用变量管理数据,代码会更灵活、更易维护。
变量的定义格式
数据类型 变量名称 = 初始值;
// 示例
int age = 18;
double price = 19.9;变量最核心的特点:里面存放的数据可以被修改,比如:
int age = 18;
age = 19; // 修改变量的值
System.out.println(age); // 输出19变量的使用注意事项
- 变量必须先声明,才能使用;
- 变量是什么数据类型,就必须存放对应类型的数据;
- 同一个作用范围内,不能定义两个同名的变量;
- 变量定义时可以不赋初始值,但使用前必须赋值。
4. 数据类型:给变量划定数据规则
Java的数据类型分为两大类:基本数据类型和引用数据类型。
基本数据类型分为4大类,共8种,每种类型的内存占用和数据范围都固定:
| 类型分类 | 具体类型 | 内存占用(字节) | 数据范围 |
|---|---|---|---|
| 整型 | byte | 1 | -128 ~ 127 |
| short | 2 | -32768 ~ 32767 | |
| int(默认) | 4 | -21亿多 ~ 21亿多(-2147483648 ~ 2147483647) | |
| long | 8 | 极大范围(19位数:-9223372036854775808 ~ 9223372036854775807) | |
| 浮点型 | float | 4 | 大范围小数(±3.4028235×10³⁸,有效位约 6~7 位) |
| double(默认) | 8 | 更大范围、更高精度小数(±1.7976931348623157×10³⁰⁸,有效位约 15~16 位) | |
| 字符型 | char | 2 | 0 ~ 65535 |
| 布尔型 | boolean | 1 | true、false |
这里有两个小知识点:
- 写整数时,默认是int类型,想要写long类型的数据,需要在数字后加L/l;
- 写小数时,默认是double类型,想要写float类型的数据,需要在数字后加F/f。
5. 关键字与标识符
- 关键字:Java语言预定义的、有特殊含义的单词,比如public、class、int、if、else等,关键字不能用来当作类名、变量名,否则会报错;
- 标识符:为类、变量、方法、包等自定义的名字,也就是“取名规则”。
标识符的命名必须遵守以下规则:
- 只能由字母、数字、下划线(_)和美元符($)组成;
- 不能以数字开头;
- 不能使用Java关键字;
- 不能包含&、%、#等特殊字符;
- Java是大小写敏感的,例如:age和Age是两个完全不同的标识符。
同时还有通用的命名规范,让代码更规范易读:
- 类名:大驼峰命名法,所有单词的首字母均大写,单词间无分隔符,比如HelloWorld、Student;
- 变量名:小驼峰命名法,第一个单词首字母小写,后续每个单词首字母大写,单词间无分隔符,比如age、studentName。