Java中的常量与变量:初探Java世界的基石

news2024/12/23 4:23:13

✨✨ 所属专栏: Java基石:深入探索Java核心基础✨✨
🎈🎈作者主页: 喔的嘛呀🎈🎈

目录

引言

一. 常量与变量的概念

常量

变量

总结

二. 常量的分类

1. 字面常量

2. 常量变量

3. 枚举常量

总结

三. 变量的分类

1. 局部变量

2. 成员变量

3. 类变量(静态变量)

总结

四. 常量与变量的命名规范

常量命名规范

变量命名规范

总结

五. Java中常量与变量的示例代码

结语


引言

在Java编程中,常量和变量是最基础的概念之一,它们用于存储和表示程序中的数据。本文将深入探讨Java中常量和变量的概念、分类、命名规范以及示例代码,帮助初学者更好地理解和应用这些概念。

一. 常量与变量的概念

常量和变量是程序中用来存储和表示数据的基本元素,但它们在使用中有着不同的特点和用途。

常量

常量是在程序运行过程中其值不会发生改变的量。在Java中,常量可以是基本数据类型或引用数据类型。

  • 基本数据类型常量:直接使用字面值表示,如整数常量 10、浮点数常量 3.14、字符常量 'A'、布尔常量 truefalse 等。

  • 引用数据类型常量:通常是使用 final 关键字修饰的变量,一旦赋值后不可更改。例如 final int MAX_VALUE = 100;

常量通常用于表示程序中固定不变的值,如数学常数、配置信息等。

变量

变量是程序中其值可以发生改变的量。在Java中,变量也可以是基本数据类型或引用数据类型。

  • 基本数据类型变量:用于存储基本数据类型的值,如 int count = 0;double price = 3.14;

  • 引用数据类型变量:用于存储对象的引用,如 String message = "Hello";List<Integer> numbers = new ArrayList<>();

变量通常用于存储程序中需要动态变化的数据,如计数器、用户输入等。

总结

在Java编程中,常量和变量都是非常重要的概念,它们在程序中起着不同的作用。常量用于表示固定不变的值,而变量则用于存储可变的数据。正确地使用常量和变量可以使程序更加清晰、灵活,提高代码的可读性和可维护性。

二. 常量的分类

常量可以根据其性质和定义方式进行分类,主要可以分为字面常量、常量变量和枚举常量。

1. 字面常量

字面常量是程序中直接出现的常量值,它们不需要计算即可确定其值。在Java中,常见的字面常量包括整数常量、浮点数常量、字符常量、布尔常量等。

int num = 10;          // 整数常量
double pi = 3.14159;   // 浮点数常量
char ch = 'A';         // 字符常量
boolean flag = true;   // 布尔常量

2. 常量变量

常量变量是使用 final 关键字修饰的变量,一旦赋值后其值就不能再次改变。常量变量通常用大写字母命名,多个单词间用下划线 _ 分隔。

final int MAX_VALUE = 100;
final double PI = 3.14159;
final String MESSAGE = "Hello";

3. 枚举常量

枚举常量是一组有限的、预定义的常量值。在Java中,可以使用 enum 关键字定义枚举类型,并列出枚举常量。

enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

Weekday today = Weekday.MONDAY;

枚举常量可以帮助程序员更好地组织和管理常量值,提高代码的可读性和可维护性。

总结

常量的分类主要包括字面常量、常量变量和枚举常量。通过合理地使用不同类型的常量,可以使程序更加清晰、易于理解和维护。

三. 变量的分类

在Java中,变量可以根据其作用域和声明位置的不同进行分类,主要可以分为局部变量、成员变量和类变量(静态变量)。

1. 局部变量

局部变量是在方法、代码块或构造方法中定义的变量,它们只在所在的作用域内有效。局部变量必须在使用前进行初始化。

public void exampleMethod() {
    int num = 10;  // 局部变量 num
    System.out.println(num);
}

在上面的示例中,num 是一个局部变量,它只能在 exampleMethod 方法中使用。

2. 成员变量

成员变量是定义在类中,方法外部的变量,也称为实例变量。它们属于对象的状态,每个对象都有一份独立的成员变量副本。

public class MyClass {
    private int count;  // 成员变量 count

    public void setCount(int count) {
        this.count = count;
    }

    public int getCount() {
        return count;
    }
}

在上面的示例中,count 是一个成员变量,它属于 MyClass 类的对象。

3. 类变量(静态变量)

类变量,也称为静态变量,是使用 static 关键字修饰的变量,它们属于类而不是对象,所有对象共享同一份类变量。

public class MyClass {
    private static int totalCount;  // 类变量 totalCount

    public static int getTotalCount() {
        return totalCount;
    }

    public void increaseCount() {
        totalCount++;
    }
}

在上面的示例中,totalCount 是一个类变量,它属于 MyClass 类,所有对象共享同一份 totalCount

总结

变量的分类主要包括局部变量、成员变量和类变量。通过合理地使用不同类型的变量,可以使程序更加灵活、可维护和易于理解。

四. 常量与变量的命名规范

在Java中,命名是一项重要的编码规范,良好的命名习惯可以增强代码的可读性和可维护性。下面是常量和变量的命名规范:

常量命名规范

  • 常量通常使用全大写字母命名,单词间用下划线 _ 分隔,例如 MAX_VALUEPI
  • 对于常量名比较长或复杂的情况,可以使用驼峰命名法,但仍保持全大写,例如 MAX_LENGTH_OF_USERNAME
public class Constants {
    public static final int MAX_VALUE = 100;
    public static final double PI = 3.14159;
    public static final String MESSAGE = "Hello";
}

变量命名规范

  • 变量名通常使用小写字母开头,采用驼峰命名法,例如 counttotalScore
  • 对于布尔类型的变量,可以使用 ishas 开头来表示,例如 isEnabledhasPermission
public class Variables {
    public void exampleMethod() {
        int count = 0;
        double totalPrice = 99.99;
        boolean isEnabled = true;
    }
}

总结

良好的命名规范可以使代码更易读、易理解,提高代码的质量和可维护性。因此,在命名常量和变量时,应遵循以上规范,并尽量使用具有描述性的名称,避免使用缩写或单个字符的名称。

五. Java中常量与变量的示例代码

public class ConstantsAndVariablesExample {

    public static final int MAX_SIZE = 100; // 常量

    public static void main(String[] args) {
        int count = 0; // 局部变量
        System.out.println("Count: " + count);

        String message = "Hello, World!"; // 变量
        System.out.println("Message: " + message);

        final double PI = 3.14159; // 常量
        System.out.println("PI: " + PI);
    }
}

结语

常量和变量是Java编程中不可或缺的基础概念,对它们的深入理解可以帮助我们更好地进行程序设计和开发。通过本文的介绍,相信读者已经对Java中常量和变量有了更清晰的认识,希望能够对您的学习和工作有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式篇---观察者模式

文章目录 概念结构实例总结 概念 观察者模式&#xff1a;定义对象之间的一种一对多的依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其他相关依赖对象都得到通知并被自动更新。 观察者模式是使用频率较高的一个模式&#xff0c;它建立了对象与对象之间的依赖…

JavaScript 进阶02

深入对象 构造函数 构造函数是用于创建对象的函数。 <script> //构造函数 构造函数的首字母大写 function Obj(name,age,aaa){this.namenamethis.ageage } //调用函数 const obj1new Obj("小明",4) console.log(obj1) </script> 使用 new 关键字调用…

2023年海南房地产经纪机构备案需要具备哪些条件?

房地产业在海南占有非常重要的地位。 同样&#xff0c;海南也有很多房地产中介机构。 那么&#xff0c;2023年海南房产中介登记证如何办理呢&#xff1f; 海南房产中介注册需要什么条件&#xff1f; 办理海南房产中介机构登记需要提交哪些材料&#xff1f; ……今天博宇会计小编…

Linux系统——Nginx小总结

目录 一、影响用户体验的因素 二、网络连接——Apache/Nginx服务请求过程 三、I/O模型——Input/Output模型 1.同步/异步 2.阻塞/非阻塞 3.同步异步/阻塞非阻塞组合 四、Nginx用法 一、影响用户体验的因素 客户端硬件配置客户端网络速率客户端与服务端距离服务端网络速…

freemarker模板引擎结合node puppeteer库实现html生成图片

效果图&#xff1a; 先看效果图&#xff0c;以下是基于freemarker模板渲染数据&#xff0c;puppeteer加载html中的js及最后图片生成&#xff1a; 背景&#xff1a; 目前为止&#xff0c;后台java根据html模板或者一个网页路径生成图片&#xff0c;都不支持flex布局及最新的c…

前端解析后端返回文件流格式数据

当后端接口返回数据是一个文件流数据时&#xff0c;如下后端返回给我的是一个pdf文件流数据 methods: {gotoPri() {protocolApi().then(res > {this.createPdf(res.data,XXX协议)})},createPdf(res, name) {// Blob构造函数返回一个新的 Blob 对象并指定type类型。let blob …

递归过程详解(Python)

See https://zhuanlan.zhihu.com/p/382721019

嵌入式学习之Linux入门篇——使用VMware创建Unbuntu虚拟机

目录 主机硬件要求 VMware 安装 安装Unbuntu 18.04.6 LTS 新建虚拟机 进入Unbuntu安装环节 主机硬件要求 内存最少16G 硬盘最好分出一个单独的盘&#xff0c;而且最少预留200G&#xff0c;可以使用移动固态操作系统win7/10/11 VMware 安装 版本&#xff1a;VMware Works…

2.1_4 进程通信

文章目录 2.1_4 进程通信&#xff08;一&#xff09;什么是进程间通信&#xff08;二&#xff09;为什么进程通信需要操作系统支持&#xff08;三&#xff09;共享存储&#xff08;四&#xff09;消息传递&#xff08;1&#xff09;直接通信方式&#xff08;2&#xff09;间接通…

【Spring MVC篇】简单案例分析

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、加法计算器二…

system_v

共享内存 创建共享内存 key_t ftok(const char *pathname, int proj_id);使用相同的pathname和proj_id可以得到相同的key_t pathname必须是一个存在的目录 int shmget(key_t key, size_t size, int shmflg);需要使用ftok获取key_t IPC_CREAT——不存在就创建&#xff0c…

鸿蒙DevEco Service开发准备与使用

DevEco低代码是一个基于Serverless和ArkUI的端云一体化低代码开发平台&#xff0c;可通过拖拽式开发&#xff0c;可视化配置构建元服务。打通HarmonyOS云侧与端侧能力&#xff0c;轻松实现HMS Core和AGC Serverless能力的调用。通过与元服务生态、HMS Core、AGC Serverless平台…

论文阅读:Ground-Fusion: A Low-cost Ground SLAM System Robust to Corner Cases

前言 最近看到一篇ICRA2024上的新文章&#xff0c;是关于多传感器融合SLAM的&#xff0c;好像使用了最近几年文章中较火的轮式里程计。感觉这篇文章成果不错&#xff0c;代码和数据集都是开源的&#xff0c;今天仔细读并且翻译一下&#xff0c;理解创新点、感悟研究方向、指导…

政安晨:【机器学习基础】(一)—— 泛化:机器学习的目标

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 简述 泛化是机器学习中的基本概念之一。它指的是通过学习…

ElasticSearch索引数据备份与恢复

索引数据备份 在磁盘创建备份目录并授权 # 创建备份目录 /home/esbackup # 授权 chmod 777 /home/esbackup修改配置文件elasticsearch.yml echo path.repo: ["/home/esbackup"] >> /etc/elasticsearch/elasticsearch.yml重启elasticsearch(我是docker创建的…

嵌入式按键处理驱动(easy_button)

简介 在嵌入式裸机开发中&#xff0c;经常有按键的管理需求&#xff0c;GitHub上已经有蛮多成熟的按键驱动了&#xff0c;但是由于这样那样的问题&#xff0c;最终还是自己实现了一套。本项目地址&#xff1a;bobwenstudy/easy_button (github.com)。 项目开发过程中参考了如…

了解 JavaScript 中的重放攻击和复现攻击

在网络安全领域&#xff0c;重放攻击&#xff08;Replay Attack&#xff09;和复现攻击&#xff08;Playback Attack&#xff09;是一些可能导致安全漏洞的攻击形式。这两种攻击类型涉及在通信过程中再次发送已经捕获的数据&#xff0c;以达到欺骗系统的目的。本文将介绍 JavaS…

Linux之JAVA环境配置Tomcat离线安装与启动

目录 一.前提 二.Linux安装JDK 1.解压 2.配置环境变量 3.设置环境变量生效 三.Tomcat安装&#xff08;开机自启动&#xff09; 1.解压 2.启动Tomcat 3.设置防火墙 四.MySQL安装&#xff08;开机自启动&#xff09; 1.删除固有数据库 2.将MySQL安装包解压到指定目录…

【Linux】部署单机项目(自动化启动)---(图文并茂详细讲解)

目录 一 准备工作 1.1 连接服务器拷贝文件 1.2 解压 二 JDK安装 2.1 配置坏境变量 2.2 查看版本 三 Tomcat(自启动) 3.1 复制启动命令的位置 3.2 添加命令相关配置文件 3.2.1 配置jdk及tomcat目录 3.2.2 添加优先级 3.3 设置自启动命令 3.4 开放端口 四 My…

CSP-J 2023 复赛第4题:旅游巴士

【题目来源】https://www.luogu.com.cn/problem/P9751https://www.acwing.com/problem/content/description/5313/【题目描述】 小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。 旅游景点的地图共有 n 处地点&#xff0c;在这些地点之间连有 m 条道路。 其中…