一、Java 程序的基本结构

先看一个最简单的 Java 程序:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

几个关键点:

  • Java 是大小写敏感的语言,HelloWorldhelloworld 是两个不同的标识符
  • public class HelloWorld 声明了一个公共类,类名必须与文件名一致
  • main 方法是程序的入口,签名固定为 public static void main(String[] args)
  • 每条语句以分号 ; 结尾

二、标识符与命名规范

标识符用于给类、方法、变量命名,规则如下:

规则 示例
由字母、数字、下划线、美元符号组成 myVar, _count, $price
不能以数字开头 2var ❌,var2
不能是关键字 class ❌,myClass
区分大小写 nameName 是两个不同变量

命名惯例(驼峰命名法):

  • 类名:大驼峰 HelloWorld, StudentManager
  • 方法/变量名:小驼峰 getUserName, studentCount
  • 常量:全大写下划线 MAX_VALUE, DEFAULT_SIZE

三、八种基本数据类型

Java 有 8 种基本类型(primitive type)

类型 大小 范围 默认值 示例
byte 1 字节 -128 ~ 127 0 byte b = 100;
short 2 字节 -32768 ~ 32767 0 short s = 30000;
int 4 字节 -2³¹ ~ 2³¹-1 0 int i = 42;
long 8 字节 -2⁶³ ~ 2⁶³-1 0L long l = 100000L;
float 4 字节 约 ±3.4E38 0.0f float f = 3.14f;
double 8 字节 约 ±1.8E308 0.0d double d = 3.14159;
char 2 字节 0 ~ 65535 ‘’ char c = 'A';
boolean 未定义 true / false false boolean flag = true;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class PrimitiveDemo {
public static void main(String[] args) {
// 整数类型
byte age = 25;
short year = 2026;
int population = 1_400_000_000; // 可以用下划线分隔
long distance = 384400L; // 必须加 L 后缀

// 浮点类型
float price = 19.99f; // 必须加 f 后缀
double pi = 3.1415926535;

// 字符和布尔
char grade = 'A';
boolean isPassed = true;

System.out.println("age: " + age);
System.out.println("pi: " + pi);
System.out.println("isPassed: " + isPassed);
}
}

自动类型转换与强制转换

自动转换(隐式):小范围 → 大范围,不需要额外操作

1
2
3
int i = 100;
long l = i; // int 自动转为 long,安全
double d = l; // long 自动转为 double,安全

强制转换(显式):大范围 → 小范围,可能丢失精度

1
2
3
4
5
double pi = 3.14159;
int whole = (int) pi; // 结果为 3,小数部分被截断

long big = 1000L;
byte small = (byte) big; // 可能溢出

四、引用类型

除了 8 种基本类型,其他都是引用类型(reference type)。最常见的引用类型是 String

1
2
3
4
5
6
7
8
9
10
11
12
13
String name = "ChiefNing";       // 双引号表示字符串
String empty = ""; // 空字符串(不是 null)
String nothing = null; // null 表示不指向任何对象

// 字符串拼接
String greeting = "Hello, " + name; // "Hello, ChiefNing"
String combined = name + 123; // "ChiefNing123"

// 常用方法
int len = name.length(); // 获取长度
String upper = name.toUpperCase(); // 转大写
boolean contains = name.contains("ief"); // 是否包含子串
char ch = name.charAt(0); // 获取第0个字符 'C'

五、变量的作用域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ScopeDemo {
static int classVar = 10; // 类变量(静态变量),整个类可见

int instanceVar = 20; // 实例变量,需要创建对象才能访问

public void method() {
int localVar = 30; // 局部变量,仅在方法内可见

if (true) {
int blockVar = 40; // 块级变量,仅在 if 块内可见
System.out.println(blockVar);
}
// System.out.println(blockVar); // 编译错误!超出作用域
}
}

六、常量

final 关键字声明常量,一旦赋值就不能修改:

1
2
3
4
5
6
final double PI = 3.14159;
final int MAX_SCORE = 100;
// PI = 3.14; // 编译错误!不能修改常量

// 静态常量(通常的常量写法)
public static final String APP_NAME = "MyBlog";

七、var 类型推断(Java 10+)

Java 10 引入了 var 关键字,编译器自动推断类型:

1
2
3
4
5
var name = "ChiefNing";     // 推断为 String
var age = 25; // 推断为 int
var list = new ArrayList<String>(); // 推断为 ArrayList<String>

// age = "hello"; // 编译错误!类型已确定为 int

注意var 只能用于局部变量,不能用于类字段、方法参数或返回类型。


本系列导航

  • (一)变量与数据类型 ← 当前
  • (二)运算符与流程控制
  • (三)面向对象编程基础