JAVA 常量整理

1 UTF-8

import org.apache.commons.lang.CharEncoding;

CharEncoding.UTF_8//返回STRING



import com.google.common.base.Charsets;

Charsets.UTF_8//返回Charset


2 系统换行符

import org.apache.commons.io.IOUtils;
IOUtils.LINE_SEPARATOR


3 文件分隔符

import org.apache.commons.io.FileUtils;

File.pathSeparator
IOUtils.DIR_SEPARATOR

以上两个是相等的
<think>嗯,用户让我介绍一下Java中的常量和变量。首先,我需要回忆一下Java的基础知识,确保自己理解正确。常量Java中通常指的是不可改变的值,而变量则是可以变化的。我记得Java里有几种方式可以定义常量,比如使用final关键字,或者用枚举类型,还有静态常量。变量的话,基本数据类型和引用类型变量,作用域也有不同,比如局部变量、实例变量、类变量等等。 首先,我应该分清楚常量和变量的定义和区别。常量一旦赋值就不能再修改,而变量可以。然后,要详细说明常量的不同类型,比如基本类型常量和引用类型常量,以及它们的声明方式。例如,使用final来声明一个常量,并且需要初始化,否则会报错。静态常量的话,可能会用static final组合,这样属于类的常量,所有实例共享。 对于变量,需要解释不同的作用域。局部变量在方法内部声明,必须初始化后才能使用;实例变量属于对象,每个实例有独立的副本;类变量是静态的,属于类本身。此外,还要提到变量的命名规则,比如驼峰命名法,不能使用保留字等等。 可能用户还希望了解常量和变量在内存中的存储位置。比如,局部变量在栈内存,实例变量在堆内存,而静态常量可能在方法区。这部分如果用户没有特别提到,可能需要简单带过,避免过于深入。 另外,要举一些例子来说明,比如如何声明一个final常量,或者静态常量的例子。变量的话,可以举局部变量和实例变量的例子。代码示例可以帮助用户更好地理解。 还要注意可能的常见错误,比如尝试修改final常量会导致编译错误,或者局部变量未初始化就使用的问题。这些常见问题需要提出来,帮助用户避免犯错。 最后,根据用户的要求,生成相关的问题。问题应该围绕常量和变量展开,比如常量的定义方式、变量的作用域、final关键字的作用、静态常量的特点等等。确保问题覆盖回答中的关键点,帮助用户巩固知识。 现在整理一下结构,先回答常量和变量的定义,然后分别详细介绍它们的类型、声明方式、作用域、示例代码,以及常见错误和注意事项。最后列出相关问题。</think><< **Java 常量与变量详解** ### 一、常量(Constants) **定义**:常量是程序运行期间不可修改的值,通过`final`关键字定义。 #### 1. **基本类型常量** ```java final int MAX_VALUE = 100; final double PI = 3.14159; ``` **特点**: - 必须初始化,且不能重新赋值。 - 命名规范:全大写字母,单词间用下划线分隔。 #### 2. **引用类型常量** ```java final String DEFAULT_NAME = "Unknown"; final List<String> IMMUTABLE_LIST = Collections.unmodifiableList(new ArrayList<>()); ``` **注意**:引用类型常量指向的对象内容可能可变(除非对象本身不可变)。 #### 3. **静态常量** ```java public static final String APP_VERSION = "1.0.0"; ``` **特点**: - 属于类而非对象,通过`static final`定义。 - 常用于全局配置(如枚举、接口常量)。 --- ### 二、变量(Variables) **定义**:变量是存储数据的内存单元,值可修改。 #### 1. **变量分类** - **局部变量**: ```java void method() { int count = 0; // 必须显式初始化 count = 10; // 允许修改 } ``` **作用域**:仅在声明的方法或代码块内有效。 - **实例变量(成员变量)**: ```java class Person { String name; // 默认初始化为null int age; // 默认初始化为0 } ``` **特点**: - 属于对象,生命周期与对象一致。 - 默认有初始值(如`int`为0,`boolean`为`false`)。 - **类变量(静态变量)**: ```java class Counter { static int totalCount = 0; // 类加载时初始化 } ``` **特点**: - 通过`static`声明,所有对象共享。 #### 2. **变量命名规则** - 驼峰命名法(如`userName`)。 - 不能以数字开头,不能使用关键字(如`class`)。 --- ### 三、常量与变量对比 | 特性 | 常量 | 变量 | |--------------|--------------------------|--------------------------| | 可修改性 | 不可修改 | 可修改 | | 关键字 | `final` | 无 | | 内存分配 | 编译期可能优化(如内联) | 运行时动态分配 | --- ### 常见问题与错误 1. **未初始化的常量**: ```java final int x; // 编译错误:未初始化 ``` 2. **尝试修改常量**: ```java final int x = 10; x = 20; // 编译错误:无法赋值 ``` 3. **局部变量未初始化**: ```java int y; System.out.println(y); // 编译错误:可能未初始化 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值