[转载] Java中的变量和常量

参考链接: Java中的变量范围

在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。 

在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代表还是常量代表。 

  

变量 

在程序执行的过程中,在某个范围内其值可以发生改变的量就是变量。 

将内存中的某个内存块保留下来以供程序使用,里面的内容是可变的。 

变量的作用域: 

作用域从变量定义的位置开始,到该变量所在的那对大括号结束。 

或者可以说变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。 

变量的生命周期: 

变量从定义的位置开始就在内存中活了; 

变量到达它所在的作用域的时候就在内存中消失了。 

什么时候定义变量? 

只要是数据不确定的时候,就定义变量。 

变量空间的开辟需要什么要素? 

1)这个空间要存储什么数据?数据类型。 

2)这个空间叫什么名字?变量名称。 

3)这个空间的第一次的数据是什么? 变量的初始化值。 

  

声明变量 

由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,在程序中声明变量的语法格式如下: 

           数据类型 变量名称; 

数据类型和变量名称之间使用空格进行间隔(空格的个数不限,但是至少需要一个),声明语句使用“;”作为结束。也可以在声明变量的同时,设定该变量的值,语法格式如下: 

           数据类型 变量名称 = 值; 

 在程序中,变量的值代表程序的状态,在程序中可以通过变量名称来引用变量中存储的值,也可以为变量重新赋值。 

int a = 10; // 声明并初始化a

a = 20;  // 重新给变量a赋值 

当需要声明多个同类型的变量时,我们还可以使用如下格式: 

          数据类型 变量名称1 = 值1,变量名称2 = 值2,……变量名称n = 值n; 

int a, b, c; // 声明三个int型整数:a、 b、c

int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 

在实际开发过程中,需要声明什么类型的变量,需要声明多少个变量,需要为变量赋什么数值,都需要根据程序逻辑决定,这里列举的只是表达的格式而已。 

  

注意: 

1)相同的作用域中不能定义两个同名变量。 

2)java 中的每个变量必须先声明,后使用。 

3)在一行上可以定义多个变量,但建议只定义一个变量。 

4)变量一次只能赋一个值,但可以修改多次 

  

常量 

常量代表程序执行过程中不能改变的数据。 

我们可以把它理解成一种特殊的变量,只不过它的值被设定后,在程序运行过程中不允许被改变。 

常量在程序运行过程中主要作用: 

1)代表常数,便于程序的修改(例如:圆周率的值) 

2)增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4) 

3)提高代码的可维护性。例如,在项目开发时需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。 

  

常量分类:字面值常量 和 自定义常量 

字面值常量 

之所以称之为字面值是因为只能用它的值来称呼它,称之为常量是因为它的值不能修改。 

只有内置类型存在字面值,没有类类型的字面值。因此,也没有任何标准库类型的字面值。 

对于字面值常量我们分为以下五种: 

类别示例说明整型10、12主要是有进制的区别,默认是十进制,当表示二进制时用0b10(表示二进制用0b或0B爱投)、010(表示八进制用0开头)、0x10(表示十六进制用0x或0X开头)浮点型3.1415浮点字面值常量当没有任何的标志时会存储成double类型,当要使用float类型时,可在后面加上f或F,例如3.14f 表示该数为float类型字符型‘c’、’1’用两个单引号括起来,一个字符占2byte。如’A’、’b’ 、’\t’字符串型“changliang”该类型不是基本数据类型,在Java中被称为引用数据类型布尔型true、false只有这两个值

注意: 

1)默认情况下,整形字面值是int类型,如果要表示一个long类型的常量,就要在整数的后面加上l或L。例如10L,342L。 

2)byte和short没有常量形式。他们都是接收一个不超过他们取值范围的int常量(隐式转换);如果这个int常量超过了他们的取值范围必须使用强制转换。 

3)从JDK7开始,可以在整数或浮点数字面值中嵌入一个或多个下划线,以方便阅读。例如:129_51_782。 

转义字符 

Java中允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。 

 转义字符  描述  转义字符  描述  转义字符  描述  \f  换页  \\  反斜线  \b  倒退一格  \’  单引号  \r  归位  \n  换行  \”  双引号  \t  制表符Tab       

public class Test {

    public static void main(String[] args) {

        char ch1 = '\"'; // 定义转义字符

        char ch2 = '\\'; // 定义转义字符

        System.out.println("ch1 = " + ch1); // 打印输出

        System.out.println("ch2 = " + ch2); // 打印输出

        System.out.println("\"Hello World|\"") ; // 直接输出转义字符

    }

}

 

执行结果: 

ch1 = "

ch2 = \

"Hello World|"

 

  

自定义常量 

常量的语法格式和变量类似,只需要在变量的语法格式前面添加个关键字 final 即可。在Java编码规范中,要求常量名必须大写。常量的语法格式如下: 

         final 数据类型 常量名称 = 值; 

         final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n; 

final double PI = 3.14; // 声明单个double类型的常量并赋值

final char SEX_MALE='男',SEX_FEMALE=‘女’; // 声明两个char类型的常量并分别赋值 

在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次,语法格式如下: 

         final 数据类型 常量名称; 

         常量名称 = 值; 

final double PI;  // 先声明常量

PI = 3.14; // 给已声明的常量赋值

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

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

相关文章

4.3/4.4 磁盘分区

2019独角兽企业重金招聘Python工程师标准>>> 添加虚拟磁盘 第一步,选择虚拟机中的“设置” 第二步,选择“添加硬盘” 第三步,选择_SCSI (推荐) # 保持默认 第四步,选择“创建新的虚拟磁盘…

[转载] java(三)对象的序列化与static、final关键字

参考链接: Java中的final最终变量 java对象的序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。java中存有Cloneable接口,实现此接口的类都具有被拷贝能力,比new一个对象…

RoboMaster 2017:机器人版的「王者农药」,工程师们的竞技时代

8月6日晚,第十六届全国大学生机器人大赛 RoboMaster 2017机甲大师赛在华润深圳湾体育中心“春茧”体育馆举行,关于这个比赛的盛况已经无需赘述,去年雷锋网参加上届比赛时,报道的是「像看了一场演唱会」,如果用演唱会来…

[转载] 详解Java中的泛型

参考链接: Java中具有泛型的有界类型 1、什么是泛型 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来…

【初学者必读】:前端工程师的知识体系

下图是前端工程师图解: 前端开发的核心是HTML CSS JavaScript。本质上它们构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据和实现某种展现逻…

[转载] Java面试题大全(2020版)

参考链接: Java中的循环 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 博主已将以下这些面试题整理成了一个…

使用Prometheus监控Cloudflare的全球网络

Matt Bostock在SRECON 2017欧洲大会的演讲中,介绍了如何使用Prometheus实现对CloudFlare分布于全球的架构和网络的监控。Prometheus是一种基于度量进行监控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服务提供商。\\基…

[转载] Java-forEach增强for循环是值传递规则详解

参考链接: Java中的for-each循环 1. 引入 正如Java语法意义,变量的传递只有值传递,虽然变量分为引用变量和基本类型变量,前者更像C中的地址概念。 在学习Lambda表达式的时候,遇到了试图在增强for循环中对原链表元素重…

开始吧

2019独角兽企业重金招聘Python工程师标准>>> 写C三年有余,在技术方面也算小有所成。准备在这里分享一些C进阶、Python、Golang技术文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 转载于:https://my.oschina.net/u…

[转载] 常用应届生Java开发笔试面试题(更新中)

参考链接: Java中的循环的重要事项 Java开发面试题 Java基础篇Java8大基本数据类型Java的三大特性面向对象如果让你推销一款Java产品,你会怎么推销呢?(java的特点)JVM与字节码JDK与JREStringBuilder和StringBuffer的区…

java/javascript 时间操作工具类

一、java 时间操作工具类 import org.springframework.util.StringUtils;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List;/*** 时间操作工具类** author zwq**/ public …

[转载] java语言程序设计-基础篇

参考链接: Java中的决策制定(if,if-else,switch,break,continue,jump) 第1章,计算机、程序和Java概述 包括【每个java初学者都应该搞懂的问题】 http://blog.csdn.net/haobo920/article/detai…

Exchange server 2013(十四)WSUS部署及组策略设置(2)

我们继续上一节未完的博客,继续我们的WSUS设置。[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先单击自动审批,来修改审批规则,也就是说当wsus侦测到新的更…

[转载] Python中的switch语句的替代品

参考链接: Java中的switch语句 Python 中没有 switch语句。 一般用if-else 语句可以替代switch语句,今天学习了使用字典的映射来代替switch语句。Mark一下 day 8; def get_sunday(): return sunday def get_monday(): return monday def get_tues…

“□” 表情无法在 Android 设备显示? 快试试 EmojiCompact 表情兼容库

有了支持库 v26 下的 Compact 库,基于 API 19 及更高版本开发的应用就能获得 emoji 的向下兼容,再也不会看到显示失败的 “豆腐块” 啦。如要使用 EmojiCompact,需要在应用启动时通过下载或者打包字体来初始化库。通过集成小插件,…

[转载] jstl获取Parameter参数及switch使用

参考链接&#xff1a; Java中的字符串使用switch <% taglib uri"/WEB-INF/tld/c.tld" prefix"c" %> param 获取 Parameter参数 <c:choose> <c:when test"${empty param.name}"> Please enter your name. …

syslinux 制作多系统启动U盘

syslinux 制作多系统启动U盘标签&#xff1a;u盘使用 syslinux 制作多系统启动U盘 syslinux 能加载虚拟内存盘&#xff0c;能引导各种镜像文件&#xff0c;适合用于制作多系统启动U盘&#xff0c; 但是我按照网上说的步骤&#xff0c;总是不能制作成功&#xff1a; 1. 格式化…

[转载] JAVA基础----java中E,T,?的区别?

batch_size 1 layout "NHWC" target tvm.target.Target("cuda") dtype "float32" log_file "%s-%s-B%d.json" % (network, layout, batch_size)

用MATLAB结合四种方法搜寻罗马尼亚度假问题

选修了cs的AI课&#xff0c;开始有点不适应&#xff0c;只能用matlab硬着头皮上了&#xff0c;不过matlab代码全网仅此一份&#xff0c;倒有点小自豪。 一、练习题目 分别用宽度优先、深度优先、贪婪算法和 A*算法求解“罗马利亚度假问题”。具体地图我这里不给出了&#xff0c…

[转载] Java中文与ASCII码的转换

参考链接&#xff1a; 扩展Java中的原始转换 今天在研究Java中编码的时候&#xff0c;看到了Java中ascii码的强大。写了一个CoderUtils.java&#xff0c;以后会扩展它。 package com.xingxd.study.test; import java.io.File; import java.io.FileWriter; import java.io.I…