Java入门
说起Java,它可是一门老牌编程语言了,从1995年诞生至今已经有将近30年的历史。Java以"Write Once, Run Anywhere"为核心理念,凭借其跨平台特性、强大的生态系统和稳定的性能,一直占据着编程语言排行榜的前列。无论你是想进入企业级开发、Android开发,还是大数据领域,Java都是一块很好的敲门砖。
JDK的下载和安装
在学习Java之前,我们首先需要搭建开发环境。JDK(Java Development Kit)是Java开发工具包,包含了Java编译器、运行时环境和核心类库。
- 访问 oracle.com → Products → Java → 下载JDK
- 选择适合你操作系统的版本(Windows/macOS/Linux)
- 安装时注意:路径不要包含中文、空格、特殊字符
一个小建议:尽量将JDK安装在盘符根目录下,例如
D:\JDK17,这样可以避免很多因路径问题导致的奇怪错误。
环境变量配置
安装好JDK后,还需要配置环境变量,这样系统才能在任何位置找到Java命令。
- 复制JDK的安装路径(例如
D:\JDK17) - 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
- 新建系统变量
JAVA_HOME,值指向JDK目录(不含bin) - 编辑
PATH变量,新增%JAVA_HOME%\bin
配置完成后,打开命令行窗口(Win+R → cmd),输入 java -version,如果出现版本信息说明配置成功。
IDEA下载和安装
IntelliJ IDEA 是目前最流行的Java集成开发环境(IDE),功能强大且智能。
- 访问 jetbrains.com.cn → 开发者工具 → IntelliJ IDEA Ultimate → 下载
- 安装路径同样不要包含中文、空格、特殊字符
- Ultimate版本付费,社区版(Community)免费,初学者社区版完全够用
IDEA的基本使用
新建项目 — 使用英文名(这是重点!),选择已安装的JDK版本,取消勾选示例代码(Add sample code)。

新建包 — 右键 src → New → Package。企业惯例:域名反写,例如 cn.edu.qit.xg。包名全部小写,用点号分隔。
新建Java文件 — 右键包 → New → Java Class。类名使用大驼峰命名(每个单词首字母大写)。
IDEA的基本设置
- 汉化 — Settings → Plugins → 搜索"chinese",安装中文语言包
- 主题 — Appearance & Behavior → Appearance → Theme
- 字体 — Editor → Font,推荐 JetBrains Mono 或 Consolas
- 取消提示的大小写限制 — Editor → General → Code Completion → 取消勾选"Match case"
- 安装AI插件 — 通义千问(Tongyi)或字节跳动 MarsCode,可以辅助写代码
注释
注释是对代码的解释说明,不影响程序运行。好的程序员都会写清晰的注释。
- 单行注释 —
// 注释信息(快捷键:Ctrl + /) - 多行注释 —
/* 注释信息 */(快捷键:Ctrl + Shift + /)
// 这是单行注释
/*
这是多行注释
可以写很多行
*/
HelloWorld
每个程序员的第一个程序——向世界问好。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
代码解读:
class— 定义类,Java中最基本的程序单元HelloWorld— 类名,必须与文件名完全一致(区分大小写)- 大括号
{}— 定义类的范围 main— 程序的入口方法,程序的执行从这里开始System.out.println()— 向控制台输出内容
Java语法篇
关键字
关键字是Java语言中具有特殊含义的单词,全部为小写字母。我们需要记住常用的关键字:
- class — 用于定义类。例:
public class HelloWorld - package — 定义类所属的包。例:
package com.qq - public — 访问修饰符,表示公共的
- static — 表示静态的
- void — 表示方法没有返回值
字面量
字面量就是直接写在代码中的数据值:
| 类型 | 示例 | 说明 |
|---|---|---|
| 整数 | 18, -88 | 就是数学中的整数 |
| 小数 | 1.93 | 带小数点的数字 |
| 字符串 | “尼古拉斯.咸.鱼” | 双引号包裹的内容 |
| 字符 | ‘男’ | 单引号包裹的单个字符 |
| 布尔 | true / false | 只有两个值 |
| 空 | null | 表示空,不能直接打印 |
System.out.println(18);
System.out.println(1.93);
System.out.println("尼古拉斯.咸.鱼");
System.out.println('男');
System.out.println(true);
变量
变量是程序中存储数据的容器。格式:
数据类型 变量名 = 数据值;
int a = 10;
double b = 3.14;
String name = "小明";
使用变量的三种方式:
- 直接输出打印
- 参与计算
- 修改存储的值
注意事项:
- 变量一次只能存储一个值
- 同一个作用域内变量名不能重复
- 变量使用前必须赋值
- 可以一行定义多个变量:
int a, b, c, d; - 支持链式赋值:
a = b = c = d = 10;
计算机的存储规则
计算机中所有数据都以二进制(0和1)存储。比如:
int a = 10;
// 在内存中:00000000 00000000 00000000 00001010
存储单元:
- bit(位):最小的信息单元,一个bit表示一个0或1
- byte(字节):8个bit = 1个byte,是计算机最小的存储单元
- int 类型通常占 4 字节(32位)
- 1 KB = 1024 byte,1 MB = 1024 KB,以此类推
数据类型
Java是强类型语言,每个变量都必须声明数据类型:
| 分类 | 类型 | 字节数 | 取值范围 | 备注 |
|---|---|---|---|---|
| 整数 | byte | 1 | -128 ~ 127 | |
| 整数 | short | 2 | -32768 ~ 32767 | |
| 整数 | int | 4 | -21亿 ~ 21亿 | 默认整数类型 |
| 整数 | long | 8 | 很大 | 必须加 L 后缀 |
| 浮点 | float | 4 | 必须加 F 后缀 | |
| 浮点 | double | 8 | 默认浮点类型 | |
| 字符 | char | 2 | 0 ~ 65535 | 单引号,只能一个字符 |
| 布尔 | boolean | 1 | true / false |
byte b = 10;
short s = 32767;
int a = 200;
long x = 10000000000000L; // long必须加L(推荐大写)
float f = 1.1F; // float必须加f/F
double d = 2.2;
char c = '中'; // char可以存中文
boolean n = false;
BMI计算练习
学完了变量和数据类型,我们来写一个简单的小程序——计算BMI指数。
public class Demo1 {
public static void main(String[] args) {
double weight = 56.5; // 体重(千克)
double height = 1.70; // 身高(米)
double BMI = weight / (height * height);
System.out.println("您的BMI指数为:" + BMI);
}
}
BMI = 体重(kg) / 身高(m)^2,正常范围为 18.5 ~ 24.9。
标识符
标识符就是给类、方法、变量起的名字。
硬性要求(必须遵守):
- 由数字、字母、下划线
_、美元符号$组成 - 不能以数字开头
- 不能是关键字
- 区分大小写(
name和Name是不同的)
软性建议(最好做到):
- 见名知意 —— 用有意义的英文单词
- 驼峰命名法 —— 变量和方法用小驼峰
camelCase,类名用大驼峰CamelCase
键盘录入
Scanner 类可以让程序接收键盘输入,实现交互。
使用三步走:
// 1. 导入Scanner类
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 2. 创建Scanner对象
Scanner sc = new Scanner(System.in);
// 3. 接收数据
System.out.print("请输入一个整数:");
int num = sc.nextInt();
System.out.print("请输入一个小数:");
double num2 = sc.nextDouble();
System.out.print("请输入一个字符串:");
String str = sc.next();
System.out.println("你输入的是:" + num + ", " + num2 + ", " + str);
}
}
练习一:键盘输入两个整数求和
import java.util.Scanner;
public class SumDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int a = sc.nextInt();
System.out.print("请输入第二个整数:");
int b = sc.nextInt();
System.out.println("两数之和为:" + (a + b));
}
}
练习二:键盘输入身高体重计算BMI
import java.util.Scanner;
public class BMIDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你的体重(kg):");
double weight = sc.nextDouble();
System.out.print("请输入你的身高(m):");
double height = sc.nextDouble();
double bmi = weight / (height * height);
System.out.println("你的BMI值为:" + bmi);
}
}
运算符
算术运算符
+ - * / %(取模/取余)
int a = 10;
int b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
System.out.println(a / b); // 3(整数除法,结果也是整数)
System.out.println(a % b); // 1(取余数)
练习:数值拆分
输入一个三位数(例如 356),分别输出它的个位、十位、百位数字。
import java.util.Scanner;
public class SplitNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个三位数:");
int num = sc.nextInt();
int ge = num % 10; // 个位
int shi = num / 10 % 10; // 十位
int bai = num / 100; // 百位
System.out.println("个位:" + ge);
System.out.println("十位:" + shi);
System.out.println("百位:" + bai);
}
}
练习:时间转换
输入总秒数,转换为"XX小时XX分钟XX秒"的格式。
import java.util.Scanner;
public class TimeConvert {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入总秒数:");
int totalSeconds = sc.nextInt();
int hours = totalSeconds / 3600;
int minutes = (totalSeconds % 3600) / 60;
int seconds = totalSeconds % 60;
System.out.println(hours + "小时" + minutes + "分钟" + seconds + "秒");
}
}
类型转换
隐式转换(自动类型提升): 小范围类型 → 大范围类型,自动完成。
规则:byte/short/char 参与运算时,先提升为 int 类型,再向更大的类型转换。
byte a = 10;
byte b = 20;
int c = a + b; // 正确,a和b自动提升为int
// byte c = a + b; // 错误!结果为int不能赋值给byte
强制转换: 大范围 → 小范围,需要手动操作,有精度损失风险。
int a = 10;
int b = 3;
double result = (double) a / b; // 3.3333...
byte a = 10;
byte b = 20;
byte c = (byte)(a + b); // 强制转换

字符运算: 字符在底层就是数字(ASCII/Unicode码)。
char ch = 'A';
System.out.println(ch); // A
System.out.println(ch + 0); // 65('A'的ASCII码是65)
System.out.println(ch + 1); // 66
// 大小写转换:大写字母的ASCII码 + 32 = 小写字母的ASCII码
char lower = (char)('A' + 32);
System.out.println(lower); // a
‘a’ = 97, ‘A’ = 65, 大小写差值 = 32
字符串运算:
字符串只有 + 一种运算——拼接。
System.out.println("Hello" + "World"); // HelloWorld
System.out.println("年龄:" + 18); // 年龄:18
System.out.println(1 + 2 + "abc"); // 3abc(先算1+2=3,再拼接)
System.out.println("abc" + 1 + 2); // abc12(从左到右拼接)
自增自减运算符
++ 自增(加1),-- 自减(减1),可以放在变量前或变量后。
int a = 10;
a++; // 后置自增,等同于 a = a + 1
System.out.println(a); // 11
int b = 10;
int c = b++; // 先赋值,后自增:c=10, b=11
int d = 10;
int e = ++d; // 先自增,后赋值:d=11, e=11
赋值运算符
| 运算符 | 等价于 |
|---|---|
a += b | a = a + b |
a -= b | a = a - b |
a *= b | a = a * b |
a /= b | a = a / b |
a %= b | a = a % b |
这类运算符自带强制类型转换:
byte a = 10;
a += 5; // 等价于 a = (byte)(a + 5),不会报错
// a = a + 5; // 这个反而会报错,因为a+5结果是int
关系运算符
也叫比较运算符,结果是 boolean 类型(true / false):
== != > >= < <=
int a = 10;
int b = 20;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a > b); // false
逻辑运算符
用于连接多个布尔表达式:
| 符号 | 名称 | 说明 |
|---|---|---|
& | 与(AND) | 两边都为true结果才为true |
| | 或(OR) | 任意一边为true结果就为true |
! | 非(NOT) | 取反 |
^ | 异或(XOR) | 两边不同为true,相同为false |
&& | 短路与 | 左边为false时右边不执行 |
|| | 短路或 | 左边为true时右边不执行 |
推荐使用短路运算符
&&和||,效率更高且更安全。
int a = 10;
int b = 20;
boolean result = a > 5 && b < 30; // true
三元运算符
格式:关系表达式 ? 表达式1 : 表达式2
如果关系表达式为 true,取表达式1;否则取表达式2。
int a = 10;
int b = 20;
int max = a > b ? a : b; // max = 20
// 求三个数的最大值
int x = 10, y = 25, z = 15;
int max3 = x > y ? (x > z ? x : z) : (y > z ? y : z);
System.out.println("最大值:" + max3); // 25
运算符优先级
从高到低排列:
- 小括号
() - 一元运算符
++--! - 算术运算符
*/%→+- - 关系运算符
>>=<<=→==!= - 逻辑运算符
&→^→|→&&→|| - 三元运算符
?: - 赋值运算符
=+=等
口诀:单算关逻赋条(一元→算术→关系→逻辑→三元→赋值) 记不住就用小括号,小括号优先级最高!

小结
本文作为Java入门篇,覆盖了以下核心内容:
- 开发环境搭建:JDK安装、环境变量配置、IDEA的基本使用
- Java基础语法:关键字、字面量、变量、数据类型
- 程序交互:Scanner键盘录入
- 运算符体系:算术、赋值、关系、逻辑、三元运算符及类型转换
打好基础是学习任何编程语言的关键,这些概念虽然简单,但后续所有的复杂程序都建立在这些基础之上。下一篇我们将进入流程控制的学习,掌握判断和循环语句,让程序真正"活"起来。
