java中的变量和常量

有关变量的一些注意;

1、java的源文件里可以有多个类,但是只有一个public类,且public类的类名和文件名保持一致,类名大写,文件名自然也大写。

2、不准出现java的关键字和保留字。

3、可以在一行中定义多个变量,但是不提倡,可读性不行。比如;

int a, b, c;
4、java中大小写敏感,变量名应该是有意义的,且长度无限制。命名方式使用驼峰法。

5、以字母或者“_”开头,由字母,数字和“_”组成。或者是代表字母、数字的任何Unicode字符都可以。


java中变量的初始化;

在声明一个变量之后,最好是直接显式的初始化,不然容易犯错,比如;

int a;
// 其他代码
System.out.println(a);
编译报错!原因是使用了没有被初始化的变量导致出错。为了不犯错,变量的声明最好靠近变量第一次使用的地方,或者声明之后,显式的初始化,从而养成良好的编码习惯。

注意;java中变量的声明和定义是混为一体的,而c++中是区分的!!!!不要混淆!!!这也是为什么说,java是对c++的改进。


java的常量——关键字final

final int NUMBER = 199999;

1、常量名大写,这是约定,不要问为什么了。

2、final修饰的变量一旦赋值就是常量!不能修改!

3、如果想在多个类中共享某常量,那该怎么办呢?我们声明为公有的static即可,即为类的常量;

public static double PI = 3.14;
但是注意!如下不对,必须把类常量定义在main外部!

public static void main(String[] args) {
    // public static final double PI = 3.14;
}
4、c++使用const关键字(来自单词constant)来定义常量,而在java中const是保留关键字,未必使用过,所以,目前还是必须用final来定义常量。

未完待续……


<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、付费专栏及课程。

余额充值