java变量_Java变量

java变量

变数

变量是Java程序中基本的存储单元。 变量由标识符,类型和可选的初始化程序的组合定义。 此外,所有变量都有一个范围,该范围定义了它们的可见性和生存期。 接下来将检查这些元素。

声明变量

在Java中,必须先声明所有变量,然后才能使用它们。 变量声明的基本形式如下所示:


类型标识符[=值] [,标识符[=值]…];

  • 该类型是Java的原子类型之一(数据类型),或者是类或接口的名称。 (稍后我们将讨论有关类和接口类型)。
  • 标识符是变量的名称。
  • 您可以通过指定等号和值来初始化变量。 请记住,初始化表达式必须产生与为变量指定的值相同(或兼容)的值。
  • 要声明多个指定类型的变量,请使用逗号分隔的列表。


int a,b,c; //声明三个整数,a,b和c。

int d = 3,e,f = 5; //声明另外三个int,分别初始化d和f。

字节z = 22; //初始化z。

双pi = 3.14159; //声明pi的近似值。

char x ='x'; //变量x的值为'x'。

布尔值d =假; //用值false初始化的布尔值;

您选择的标识符名称中没有任何内在的含义,表明它们的标识符

类型。

动态初始化

尽管前面的示例仅使用常量作为初始化程序,但Java允许使用声明变量时有效的任何表达式来动态初始化变量。 动态变量初始化的示例程序:

class DynInit {
public static void main(String args[]) {
double a = 3.0, b = 4.0;
// c is dynamically initialized
double c = Math.sqrt(a * a + b * b);
System.out.println("Hypotenuse is " + c);
}
}
  • 在此,声明了三个局部变量a,b和c。 前两个参数a和b由常量初始化。
  • c被初始化为斜边的长度。
  • 该程序使用Java的另一种内置方法sqrt()(它是Math类的成员)来计算其参数的平方根。
  • 这里的关键点是初始化表达式可以使用初始化时有效的任何元素,包括对方法,其他变量或文字的调用。

变量的范围和寿命

到目前为止,所有使用的变量都已在main()方法的开始处声明。 但是,Java允许在任何块中声明变量。 块定义范围。 因此,每次启动一个新块时,都在创建一个新的作用域。 范围确定哪些对象对程序的其他部分可见。 它还确定了这些对象的寿命。

根据作用域和生存期,Java中存在三种变量

局部变量:局部变量在方法,构造函数或块中声明。

全局变量/实例变量:实例变量在类中声明,但在方法,构造函数或任何块之外。

实例变量也是对象变量,通常称为字段或属性。 它们被称为对象变量。 每个对象都有其自己的每个变量副本,因此,如果一个对象更改了变量的值,则它不会影响实例变量。

class Student
{String name;int age;
}

这里的名称年龄是Student类的实例变量。

类/静态变量:类变量也称为静态变量,在类中使用static关键字声明。 静态变量也与final关键字一起用于声明常量。 我们将在接下来的章节中详细了解静态变量

class Student
{String name;int age;static int collegeCode =1101;
}

在这里, CollegeCode是一个静态变量。 Student类的每个对象将共享collegeCode属性。

示例程序的范围

// Demonstrate block scope.
class Scope {
public static void main(String args[]) {
int x; // known to all code within main
x = 10;
if(x == 10) { // start new scope
int y = 20; // known only to this block
// x and y both known here.
System.out.println("x and y: " + x + " " + y);
x = y * 2;
}
// y = 100; // Error! y not known here
// x is still known here.
System.out.println("x is " + x);
}
}

在一个块中,变量可以在任何时候声明,但是仅在声明它们之后才有效。 如果在方法开始时定义变量,则该变量可用于该方法中的所有代码。

  • 变量在输入范围时创建,在离开范围时销毁。
  • 变量超出范围后将不保留其值。
  • 在方法中声明的变量在调用该方法之间将不保留其值。 同样,当离开该块时,在块内声明的变量将丢失其值。 因此,变量的生存期仅限于其范围。
  • 如果变量声明包括一个初始化程序,则该变量将在每个变量后重新初始化。
  • 输入声明它的块的时间。
// Demonstrate lifetime of a variable.
class LifeTime {
public static void main(String args[]) {
int x;
for(x = 0; x < 3; x++) {
int y = -1; // y is initialized each time block is entered
System.out.println("y is: " + y); // this always prints -1
y = 100;
System.out.println("y is now: " + y);
}
}
}

输出量

y is: -1
y is now: 100
y is: -1
y is now: 100
y is: -1
y is now: 100

重复变量错误

尽管可以嵌套块,但是您不能在外部作用域中声明一个变量与该变量具有相同的名称。 例如,以下程序是非法的:

// This program will not compile
class ScopeErr {
public static void main(String args[]) {
int bar = 1;
{ // creates a new scope
int bar = 2; // Compile-time error – bar already defined!
}
}
}

翻译自: https://www.javacodegeeks.com/2017/10/java-variables.html

java变量

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

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

相关文章

iphone固件降级_我在iPhone上装了个安卓

目前使用Android系统设备的好处就是可以执行更多的操作。主要是因为安卓拥有自己的开源计划AOSP(Android Open Source Project)&#xff0c;比iOS开放了更多的应用接口API&#xff0c;商家可以用Android源码进行二次开发&#xff0c;相对iOS开放很多。图片来自百度iPhone跟Andr…

c# char unsigned_c – unsigned char和char指针之间的区别

我对unsigned char(在WinAPI中也是BYTE)和char指针之间的差异感到困惑.目前我正在使用一些基于ATL的遗留代码,我看到很多表达式如下&#xff1a;CAtlArray rawContent;CALL_THE_FUNCTION_WHICH_FILLS_RAW_CONTENT(rawContent);return ArrayToUnicodeString(rawContent);// or r…

名词解释多媒体计算机,多媒体-名词解释及填空

上传的两个关于多媒体技术的文档是本人提取教材中的部分,用于考试复习所用。因为在网上甚少找到此类信息,仅供大家参考。◆多媒体&#xff1a;指信息表示媒体的多样化&#xff0c;常见的多媒体有文本、图形、图形、声音、音乐、视频、动画等多种形式。◆多媒体技术&#xff1a;…

jshell_五分钟的JShell

jshell这篇文章建立在我的My Java 9顶级功能文章的基础上&#xff0c;通过对这些功能的深入研究。 在这里&#xff0c;我们向您展示如何在五分钟内学习jshell并改善Java 9开发经验。 入门 假设您已经下载并安装了Java 9&#xff0c;则可以通过键入以下内容启动Shell&#xff1…

极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...

在工作中我们每天都会处理很多文件&#xff0c;而PDF格式因为其格式稳定也被越来越多的人接受并使用&#xff0c;但也正因为如此&#xff0c;PDF的修改相比较以前常用的Word会复杂很多。那么应该如何修改PDF呢&#xff1f;其实使用PDF编辑器就能让PDF文档像Word一样轻松编辑。1…

python django开发网站项目难吗_用django开发网站时遇到的问题

1.网站的登录功能怎么实现&#xff1a;密码的存储机制、重置密码时链接的生成算法&#xff0c;第三方认证的原理等等。django的密码储存是 Hashsalt 并迭代 第三方认证是用oauth2django-admin里面有写了哦 循环1000次加密算法google关键词 hash salt&#xff0c;oauth22.介绍设…

查看 Linux 系统版本(发行版本)信息的相关命令语句

文章目录一、查看 version 文件二、只查看内核版本号三、查看系统内核版本信息四、查看系统基础版本及发行版本信息五、仅查看发行版本信息一、查看 version 文件 [roothtlwk0001host ~]# cat /proc/version Linux version 4.18.0-193.6.3.el8_2.x86_64 (mockbuildkbuilder.bs…

计算机网络专科升本科,目前专科升本科有哪几种途径?

原标题&#xff1a;目前专科升本科有哪几种途径&#xff1f;随着社会的高速发展&#xff0c;只有专科学历是远远不够自身发展需求的。于是有不少同学就想专科升本科学历来提高自己的职业竞争力&#xff0c;但他们对于目前专科升本科的几种途径还不够了解。那么&#xff0c;目前…

java私有属性和私有方法_Java 9中什么是私有的?

java私有属性和私有方法在进行面试时&#xff0c;我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么。 他们对此有所了解&#xff0c;足以应付日常编码&#xff0c;但还远远不够。 这不成问题。 足够了解就足够了。 但是&#xff0c;了解Java的一些内部工作仍然很…

stata F值缺失_stata面板数据回归操作之GMM

新手面板数据回归之GMM 的 stata 操作步骤广义矩估计&#xff08; Generalized Method of Moments 即 GMM &#xff09; 原理就是回归&#xff01;就是一种高级点的回归&#xff01;我也是新手&#xff0c;也有很多不太懂的地方。断断续续学习了两个月&#xff0c;看了很多文献…

后缀为frm是什么文件_Shell 点文件可以为你做点什么

了解如何使用配置文件来改善你的工作环境。-- H.waldo Grunenwald(作者)不要问你可以为你的 shell 点文件(dotfile)做什么&#xff0c;而是要问一个 shell 点文件可以为你做什么&#xff01;我一直在操作系统领域里面打转&#xff0c;但是在过去的几年中&#xff0c;我的日常使…

LFS、BLFS、ALFS、HLFS的区别详解

Linux From Scratch (LFS) 及其后代代表一种新方法&#xff0c;向用户揭示 Linux 操作系统是如何工作的。LFS 基于这样的假设&#xff0c;即一部分一部分地编译完整的操作系统不仅能够揭示操作系统是如何工作的&#xff0c;也允许独立的操作人员为速度、内存占用或安全性而构建…

jax-rs jax-ws_什么是JAX-RS注释?

jax-rs jax-wsJAX-RS概述&#xff08;第1部分&#xff09; JAX-RS API构成了Java EE平台承诺提供标准驱动技术的重要组成部分。 互联网无处不在的性质以及对微服务体系结构的日益增长的兴趣已将更多的精力放在小型可扩展的自治服务及其互操作性上。 允许微服务彼此之间以及“外…

计算机usb端口没反应,技术编辑教您电脑usb接口没反应怎么办

近来&#xff0c;有好多小伙伴反应有电脑USB接口不能使用的情况&#xff0c;鼠标键盘通通没反应。针对电脑usb接口没反应的问题&#xff0c;小编整理了常见的原因以及解决方法&#xff0c;希望能帮助你们解决问题USB是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接…

计算机二级access模考软件_计算机二级考前通关大礼包来啦!各科目模考软件、视频教程,更有往年真题、最新考纲等打包送!...

掐指一算&#xff0c;全国计算机二级就要开考了不知道大家准备的怎么样了&#xff1f;没准备&#xff1f;这个时候就该我出场了看看为大家精心准备的计算机二级考试的干货资源吧让你的考试一次pass&#xff01;本期资料包括计算机二级考试最新大纲计算机二级模考软件计算机二级…

foxpro 打印 字体_【部编版同步复习】16年级上册期中预测卷,可打印!

小语说&#xff1a;开学以后&#xff0c;不仅要认真学习&#xff0c;还要注意复习之前的知识点。小语给你们准备了小学语文部编版1-6年级每课一练&#xff0c;快来学习收藏。(点击下方蓝色字体查看完整版&#xff0c;可打印下载哦&#xff01;)点击蓝字标题 可查看相关内容电子…

查看数据库 MySQL 的版本信息的命令语句

文章目录一、mysql -V二、登录数据库后会显示版本信息三、mysqladmin -uroot -p version四、select version()五、命令 status六、show variables like %version%一、mysql -V [roothtlwk0001host ~]# mysql -V mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using E…

raii_Java中的RAII

raii资源获取即初始化&#xff08; RAII &#xff09;是Bjarne Stroustrup用C 引入的一种设计思想&#xff0c;用于异常安全的资源管理。 由于垃圾回收&#xff0c;Java 没有此功能&#xff0c;但是我们可以使用try-with-resources实现类似的功能。 约翰哈德斯&#xff08;Joh…

计算机应用基础本模块一测试,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试...

广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试 (12页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.90 积分广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试1. 撤销输…

蓝牙驱动卸载后自动安装_最热建筑安装工程计算表格,输入后自动生成,省时方便易上手...

最热建筑安装工程计算表格&#xff0c;输入后自动生成&#xff0c;省时方便易上手&#xff01;工程量计算是每一个造价从业者必备技能。但是要保证计算过程中不能有一丝丝差错&#xff0c;实在是一件令人头疼的事情&#xff0c;因为步骤比较繁杂&#xff0c;并且算量大&#xf…