Java语法基础入门
变量与数据类型
Java语法中最基础的部分就是变量和数据类型的声明。Java是强类型语言,所有变量都必须先声明后使用。基本数据类型包括:
- 整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
- 浮点型:float(4字节)、double(8字节)
- 字符型:char(2字节)
- 布尔型:boolean(1位)
```java
int age = 25; // 声明并初始化整型变量
double price = 19.99; // 声明双精度浮点数
char grade = 'A'; // 声明字符变量
boolean isJavaFun = true; // 声明布尔变量
### 运算符与表达式
Java语法支持丰富的运算符:
1. 算术运算符:+ - * / % ++ --
2. 关系运算符:== != > < >= <=
3. 逻辑运算符:&& || !
4. 位运算符:& | ^ ~ << >> >>>
5. 赋值运算符:= += -= *= /= %=
```java
int result = (10 + 5) * 2; // 结果为30
boolean comparison = (10 > 5) && (20 < 30); // 结果为true
Java语法核心概念
控制流程语句
控制流程是Java语法中实现程序逻辑的关键部分:
条件语句
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// switch语句
switch (dayOfWeek) {
case 1: System.out.println("周一"); break;
case 2: System.out.println("周二"); break;
// ...其他情况
default: System.out.println("无效输入");
}
循环结构
// for循环
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
// while循环
int count = 0;
while (count < 5) {
System.out.println(count);
count++;
}
// do-while循环
int x = 0;
do {
System.out.println(x);
x++;
} while (x < 3);
方法与函数
方法是Java语法中组织代码的基本单元:
// 方法定义
public static int addNumbers(int a, int b) {
return a + b;
}
// 方法重载示例
public static double addNumbers(double a, double b) {
return a + b;
}
// 可变参数方法
public static int sum(int... numbers) {
int total = 0;
for (int num : numbers) {
total += num;
}
return total;
}
面向对象的Java语法
类与对象
Java是面向对象的语言,类和对象是核心概念:
// 类定义
public class Person {
// 字段(属性)
private String name;
private int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法
public void introduce() {
System.out.println("我叫" + name + ",今年" + age + "岁");
}
// Getter和Setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
// 创建对象
Person person1 = new Person("张三", 25);
person1.introduce();
继承与多态
Java语法支持继承和多态,这是OOP的重要特性:
// 父类
public class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
// 子类继承
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪汪");
}
// 子类特有方法
public void fetch() {
System.out.println("狗狗叼回飞盘");
}
}
// 多态示例
Animal myAnimal = new Dog();
myAnimal.makeSound(); // 输出"汪汪汪"
高级Java语法特性
异常处理
Java语法提供了完善的异常处理机制:
try {
// 可能抛出异常的代码
int result = 10 / 0;
} catch (ArithmeticException e) {
// 捕获特定异常
System.out.println("除数不能为零");
} catch (Exception e) {
// 捕获其他异常
System.out.println("发生错误: " + e.getMessage());
} finally {
// 无论是否发生异常都会执行的代码
System.out.println("执行清理工作");
}
// 自定义异常
class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
泛型编程
泛型是Java语法中实现类型安全的重要特性:
// 泛型类
public class Box<T> {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}
// 使用泛型类
Box<String> stringBox = new Box<>();
stringBox.setContent("Hello Generics");
String value = stringBox.getContent();
// 泛型方法
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.print(element + " ");
}
System.out.println();
}
Lambda表达式与函数式编程
Java 8引入的Lambda表达式简化了函数式编程:
// 使用Lambda表达式实现Runnable
new Thread(() -> System.out.println("在新线程中运行")).start();
// 函数式接口与Lambda
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name));
// 方法引用
names.forEach(System.out::println);
// Stream API
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n * 2)
.sum();
System.out.println("偶数的两倍和: " + sum);
Java语法最佳实践
代码规范与可读性
- 遵循Java命名规范:
- 类名使用大驼峰:MyClass
- 方法和变量使用小驼峰:myMethod
- 常量全大写:MAX_VALUE
- 保持方法短小精悍(不超过20行)
- 使用有意义的命名,避免缩写
- 适当添加注释,特别是复杂逻辑
性能优化技巧
- 字符串操作使用StringBuilder
- 避免不必要的对象创建
- 使用增强for循环遍历集合
- 合理选择集合类型(ArrayList vs LinkedList)
- 使用基本数据类型而非包装类(int vs Integer)
常见Java语法陷阱
- ==与equals()的区别:
java String s1 = new String("hello"); String s2 = new String("hello"); System.out.println(s1 == s2); // false System.out.println(s1.equals(s2)); // true
- 整数除法:
java int result = 5 / 2; // 结果是2,不是2.5
- 浮点数精度问题:
java System.out.println(0.1 + 0.2); // 输出0.30000000000000004
- 自动装箱/拆箱的NPE风险:
java Integer num = null; int n = num; // 抛出NullPointerException
掌握这些Java语法要点,你将能够编写出更加健壮、高效和可维护的Java代码。随着Java语言的不断发展,持续学习和实践新的语法特性是每个Java开发者的必修课。