Java关键字(曼波版)

(✪▽✪)曼波~~~~ 哇!你对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);
    }
}

🎨 曼波的小贴士

  1. volatile关键字:就像公告板,所有线程都能看到最新值,防止指令重排序哦!
  2. synchronized关键字:像洗手间门锁,保证同一时间只有一个线程执行
  3. final关键字:一旦赋值就不能改变,适合常量定义
  4. static关键字:属于类而不是对象,所有对象共享同一份
相关推荐
少控科技14 分钟前
QT第6个程序 - 网页内容摘取
开发语言·qt
darkb1rd14 分钟前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
南极企鹅16 分钟前
springBoot项目有几个端口
java·spring boot·后端
历程里程碑17 分钟前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴19 分钟前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
清风拂山岗 明月照大江21 分钟前
Redis笔记汇总
java·redis·缓存
承渊政道23 分钟前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
xiaoxue..37 分钟前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
JQLvopkk1 小时前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
忧郁的Mr.Li1 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端