java什么是块变量(java什么是成员变量和局部变量)
大家好,今天小编来为大家解答java什么是块变量这个问题,java什么是成员变量和局部变量很多人还不知道,现在让我们一起来看看吧!
java什么是成员变量和局部变量
本文介绍成员变量和局部变量的区别
1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量
1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。
2、成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰;两者都可以定义成final型。
3、成员变量存储在堆,局部变量存储在栈。局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
4、局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
5、成员变量在累加载或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null。(被final修饰且没有static的必须显式赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。
6、局部变量可以和成员变量同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问
顶
什么是java的局部变量、成员变量和全局变量
1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。
2、成员变量:在类体的变量部分中定义的变量,也称为字段。
3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束。
java中局部变量具体是什么,可以干什么,有什么作用,
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。
局部变量的作用域:
1、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。
2、不同函数中可以使用相同名字的变量,它们代表不同的对象,分配不同的单元,互不干扰。
3、形式参数是属于被调函数的局部变量。
4、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。
作用:在Java等面向对象语言中,也可能出现多个局部变量重名的情况。例如一个方法的形式参数与类成员的名字相同,这时形式参数会把类成员屏蔽,如果要访问类成员,应该用this关键字。
扩展资料
全局变量的存在主要有以下一些原因:
1、使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
2、使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。
3、对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
4、当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。
5、还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。
6、全局变量的优先度低于局部变量。
参考资料来源:百度百科——全局变量
参考资料来源:百度百科——局部变量
Java语法介绍(三):变量
为了在Java中存储一个数据,必须将它容纳在一个变量之中。而数据类型决定了一个变量可以赋给什么值以及对变量进行什么样的操作。定义一个变量的两个基本要素是:类型和标识符,通常你可以用如下语法去说明变量:
type identifer[,identifer];该语句告诉编译器用“type”的类型和以“identifer”为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束;方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用逗号分隔。
在你创建了一个变量以后,你可以给它赋值,或者用运算符对它进行一些运算。类型将决定变量所代表的不同种类的数据,在Java语言中有两种变量。最基本的是简单类型变量,他们不建立在任何其他类型上,整数、浮点、布尔和字符类型都是这类型(注意和其他编程语言不太一样一点是,字符串在这里是作为一个类的实例出现);另外Java可以定义构造另一种变量类型:类,这些类型建立在简单类型之上,它包括数值、变量和方法,是一种数据与代码相结合的复合结构。
1:整型变量的说明
整型变量按所占内存大小的不同可分为四种不同的类型,最短的整型是byte,它只有八位长,然后是短整型short,它有16位,int类型有32位,长整型long是64位,下面是这些整型变量的说明示例。
byte bCount;(内存中占用: 8 Bits)
short sCount;(内存中占用:16 Bits)
int nCount;(内存中占用:32 Bits)
long LCount;(内存中占用:64 Bits)
int nx,ny,nz;(内存中占用:32 Bits)
2:浮点变量的说明
浮点类型可用关键字float或double来说明,float型的浮点变量用来表示一个32位的单精度浮点数,而double型的浮点变量用来表示一个64位的双精度浮点数。double型所表示的浮点数比float型更精确
float areas;
double weihgt;
3:字符变量说明
Java使用16位的Unicode字符集。因此Java字符是一个16位的无符号整数,字符变量用来存放单个字符。例如:
char a;
a=´c´;
4:布尔变量说明
布尔型有真和假两个逻辑值,另外,逻辑运算符也将返回布尔类型的值,例如:
boolean onClick;
mouseOn=true;
布尔型是一个独立的类型,Java中的布尔类型不代表0和1两个整数,不能转换成数字。
5:变量的使用范围
当你说明了一个变量后,它将被引入到一个范围当中,也就是说,该名字只能在程序的特定范围内使用。变量的使用范围是从它被说明的地方到它所在那个块的结束处,块是由两个大括号所定义的,例如:
class Example
public static void main(String args[])
int i;
......
public void function()
char c;
......
整型变量i在方法main中说明,因为main的块不包括function块,所以任何在function块中对i的引用都是错误的。对字符型变量c也同样如此。
在某一个特定情形中,变量能被别的变量所隐藏,如:在一个块中说明一个变量,而在这个块中建立一个新块并且在其中定义相同名字的变量,这样在第二个块中,程序对该变量的使用均是指第二次定义的那个变量。这样我们说,第一个变量被隐藏了,作者并不建议采用这种定义变量的方法。变量隐藏的示例如下:
class Example
public static void main(String args[])
int i;//***
boolean try=true;
while(try)
int i;//以下对变量i的引用均指这里定义的i
......
//以下对变量i的引用均指***处定义的i
......
当你定义一个变量时,首先必须明确它的活动范围,并根据它的实际功能来命名,此外还应尽量使用详细的注释,这些办法可以使你能够清晰地区分变量,变量被隐藏的问题也会大大减少。
6:类型转换
系统方法System.in.read返回一个整型数值,但你却常常想要把它当作一个字符来使用。现在的问题是,当有一个整数而你需要把变成一个字符时应当去做些什么呢?你需要去做一个类型转换为一个字符。从一种类型转换到另一种类型可以使用下面的语句:
int a;
char b;
a=(int)b;
加括号的int告诉编译器你想把字符变成整型并把它放在a里,另一方面,如果你想做相反的转换,你可以使用:
b=(char)a;
记住整型和字符型变量位长不同是非常重要的,整型是32位长,字符型是16长,所以当你从整型转换到字符型可能会丢失信息。同样,当你把64位的长整型数转换为整型时,由于长整型可能有比32位更多的信息,你也很可能会丢失信息。即使两个量具有相同的位数,比如整和浮点型(都是32位),你在转换小数时也会丢失信息,Java不允许自动类型转换,当你进行类型转换要注意使目标类型能够容纳原类型的所有信息,不会丢失信息的类型转换有:
原始类型目标类型
byte-〉short-〉char-〉int-〉long-〉float-〉double
short-〉int-〉long-〉float-〉double
char-〉int-〉long-〉float-〉double
int-〉long-〉float-〉double
long-〉float-〉double
float-〉double
需要说明的是,当你执行一个这里并未列出的类型转换时可能并不总会丢失信息,不过进行这样一个理论上并不安全的转换是很危险的。
关于java什么是块变量和java什么是成员变量和局部变量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。