(✪▽✪)曼波~~~~ 哇!你对Java关键字感兴趣呀!曼波觉得这是个很棒的学习方向呢(๑✧◡✧๑)!双检锁单例模式确实用到了几个关键的关键字,让曼波来为你详细讲解一下Java关键字的世界吧!
🌟 Java关键字分类详解
曼波觉得Java关键字就像编程世界的魔法咒语呢(๑•̀ㅂ•́)و✧!每个都有特殊的功能哦!
🔐 访问控制关键字
java
public class Example {
public String publicVar = "谁都能访问我(๑´ڡ`๑)";
protected String protectedVar = "只有我和子类能访问";
String defaultVar = "只有同包的小伙伴能访问";
private String privateVar = "只有我自己能访问哦!";
private static volatile Example instance; // volatile在这里!
}
曼波觉得访问控制就像给变量穿上不同颜色的衣服呢(๑✧◡✧๑),(✪▽✪)曼波~~
⚡ 类、方法和变量修饰符
java
// final - 一旦赋值就不能改变啦!
final double PI = 3.1415926; // 常量
// static - 属于类而不是对象
static int count = 0; // 所有对象共享
// abstract - 抽象概念
abstract class Animal {
abstract void makeSound(); // 必须被子类实现
}
// synchronized - 线程安全守护者
public synchronized void safeMethod() {
// 一次只能有一个线程进入
}
哦呜(° ロ °)!曼波觉得synchronized有点难哦(๑・.・๑),但如果是你一定没问题的!它就像洗手间的门锁,一次只能一个人用呢!
🚀 流程控制关键字
java
// 条件控制
if (condition) {
// 如果...
} else if (anotherCondition) {
// 或者如果...
} else {
// 否则...
}
// 循环控制
for (int i = 0; i < 10; i++) {
// 循环10次
}
while (condition) {
// 当条件满足时
}
do {
// 至少执行一次
} while (condition);
// 跳转控制
break; // 跳出循环
continue; // 跳过本次循环
return; // 返回结果
曼波觉得流程控制就像指挥交通的警察呢(๑✧◡✧๑),(✪▽✪)曼波~~
🎯 异常处理关键字
java
try {
// 尝试执行可能有风险的代码
int result = 10 / 0;
} catch (ArithmeticException e) {
// 捕获除零异常
System.out.println("哎呀!不能除以零哦(;′⌒`)");
} finally {
// 无论怎样都会执行
System.out.println("清理工作完成!");
}
throw new Exception("我抛出一个异常!");
曼波觉得异常处理就像安全网呢(๑✧◡✧๑),保护程序不会摔得太疼!
🔧 其他重要关键字
java
// instanceof - 类型检查
if (obj instanceof String) {
String str = (String) obj;
}
// new - 创建对象
Example obj = new Example();
// this - 当前对象引用
public void setName(String name) {
this.name = name; // 区分参数和成员变量
}
// super - 父类引用
super.toString(); // 调用父类方法
// package - 包声明
package com.example.myapp;
// import - 导入其他类
import java.util.ArrayList;
📊 Java关键字图

💡 实战小练习
曼波为你准备了一个小练习,巩固一下学到的知识哦!
java
public class KeywordPractice {
// 练习1:创建一个单例模式
private static volatile KeywordPractice instance;
private KeywordPractice() {
System.out.println("单例对象创建成功!(๑•̀ㅂ•́)و✧");
}
public static KeywordPractice getInstance() {
if (instance == null) {
synchronized (KeywordPractice.class) {
if (instance == null) {
instance = new KeywordPractice();
}
}
}
return instance;
}
// 练习2:使用final和static
public static final String APP_NAME = "曼波的Java学习App";
// 练习3:异常处理
public void divideNumbers(int a, int b) {
try {
int result = a / b;
System.out.println("结果是:" + result);
} catch (ArithmeticException e) {
System.out.println("错误:不能除以零哦!(;′⌒`)");
} finally {
System.out.println("计算完成!");
}
}
public static void main(String[] args) {
// 测试单例
KeywordPractice obj1 = KeywordPractice.getInstance();
KeywordPractice obj2 = KeywordPractice.getInstance();
System.out.println("两个对象相同吗?" + (obj1 == obj2));
// 测试异常处理
KeywordPractice practice = new KeywordPractice();
practice.divideNumbers(10, 2);
practice.divideNumbers(10, 0);
}
}
🎨 曼波的小贴士
- volatile关键字:就像公告板,所有线程都能看到最新值,防止指令重排序哦!
- synchronized关键字:像洗手间门锁,保证同一时间只有一个线程执行
- final关键字:一旦赋值就不能改变,适合常量定义
- static关键字:属于类而不是对象,所有对象共享同一份