java中变量和常量

本文介绍了Java中的变量类型(类变量、实例变量和局部变量),常量的定义与使用规范,以及变量命名的最佳实践。通过实例演示了如何在类和方法中正确运用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中变量和常量

一、变量

类变量:

类里定义的变量,相当于全局变量,static

实例变量:

需要实例化才能使用

局部变量:

方法里面定义、使用的变量

//变量:类变量、实例变量、局部变量
public class demo3 {

    //类变量  static
    //相当于 全局变量
    //可以直接使用
    static double salary = 1000;

    //实例变量
    //实例化才能使用
    String name;
    int age ;

    public static void main(String[] args) {
        //局部变量:必须声明和初始化,直接使用
        //在函数里面声明、在函数里面使用。
        int i =10;
        System.out.println(i);

        //实例变量的使用,需要先实例化在使用
        demo3 TOM = new demo3();
        System.out.println(TOM.age);//0
        System.out.println(TOM.name);//null
        //所有的类型默认值是0或者0.0
        //布尔值默认为FALSE
        //除了基本类型,其余的默认为null,例如String。


    }
}

二、常量

使用大写,修饰符不区分顺序。

//常量:
//final ,一般使用大写字母
public class demo4 {
    static final double PI_1 = 3.14;
    final static double PI_2 = 3.1415;
    //类型前面的 final static 都为修饰符,不区分顺序
    public static void main(String[] args) {
        System.out.println(PI_1);
        System.out.println(PI_2);
    }
}

三、变量命名规范:

  • 所有变量、方法、类名:见名知意。
  • 类成员变量:首字母小写和驼峰原则,例如:lastName。
  • 局部变量:首字母小写和驼峰原则。
  • 常量:全部大写字母和下划线:MAX_VALUE。
  • 类名:首字母大写和驼峰原则。GoodMan。
  • 方法名:首字母小写和驼峰原则
<think>嗯,用户问的是Java变量常量的区别。我需要先回忆一下Java的基本概念。变量常量都是用来存储数据的,但它们的区别主要在于可变性。 首先,变量Java里是可以改变值的,而常量一旦赋值后就不能再修改了。常量通常用final关键字来声明,对吧?比如final int MAX = 100; 这里MAX就是一个常量,之后不能再重新赋值。而变量像int count = 5; 后面可以改成count = 10;。 然后,命名规范方面,常量通常用全大写字母,单词之间用下划线分隔,比如MAX_SIZE。变量则是驼峰命名法,像userName。这可能也是用户需要注意的地方,代码规范的问题。 还有初始化的问题,变量可以在声明的时候不初始化,后面再赋值。但常量必须在声明时就初始化,否则会编译错误。比如final int MIN; 这样不赋值的话,后面再赋值就会报错,对吗? 另外,作用域方面,常量变量其实都可以有不同的作用域,取决于它们在哪里声明。比如局部常量在方法内部,而类级别的常量会用static final。这可能也是需要提到的点。 用户可能刚开始学Java,所以需要明确区分这两者的定义使用场景。可能还需要举例子说明,这样更清楚。比如变量用于会变化的数据,比如循环计数器;常量用于不变的值,比如数学中的π或者配置参数。 还要注意语法细节,比如常量的final关键字是必须的,而变量不需要。同时,常量的初始化时机,必须在声明时或者构造器中(如果是实例常量的话)。这部分可能需要进一步解释,但用户可能只需要基础的区别,所以不用太深入。 总结的话,应该分点列出区别:可变性、声明方式、命名规范、初始化要求、使用场景。这样结构清晰,用户容易理解。</think>Java变量常量的核心区别如下(分点说明): 1. **可变性** - 变量:值可修改 ```java int score = 90; score = 95; // 允许修改 ``` - 常量:值不可变(需用`final`声明) ```java final double PI = 3.14159; // PI = 3.14; // 编译错误 ``` 2. **声明方式** - 变量标准声明: ```java String userName = "张三"; ``` - 常量标准声明: ```java final int MAX_CONNECTIONS = 100; ``` 3. **命名规范** - 变量:lowerCamelCase(小驼峰) ```java int studentCount; ``` - 常量:UPPER_SNAKE_CASE(全大写+下划线) ```java final int MAX_RETRY_TIMES = 3; ``` 4. **初始化要求** - 变量可延迟初始化: ```java int age; // 声明 age = 18; // 后续赋值 ``` - 常量必须立即初始化: ```java // final String ERROR_MSG; // 错误! final String GREETING = "你好"; ``` 5. **内存特性 - 变量:存储在栈或堆中,生命周期与作用域相关 - 常量:编译时常量会被写入字节码,运行时常量常量池中 **典型应用场景对比**: - 变量:用户输入、计算结果、循环计数器等需要变化的值 ```java int counter = 0; while(counter < 10) { counter++; // 变量值改变 } ``` - 常量:配置参数、数学常数、枚举值等固定值 ```java final int TIMEOUT = 5000; // 超时时间(毫秒) final String API_KEY = "A1B2-C3D4"; ``` **特殊注意事项**: 1. 对象常量(引用不可变,但对象内容可能可变): ```java final List<String> NAMES = new ArrayList<>(); NAMES.add("Alice"); // 允许(修改对象内容) // NAMES = new ArrayList<>(); // 禁止(改变引用) ``` 2. 静态常量(类级别常量): ```java class Config { public static final String ENV = "PROD"; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值