Java变量的理解

Java中的变量理解:

  • 基本数据类型:

    基本类型包括四类八种:
    整数类型:byte,short,int,long
    浮点数类型:float,double
    字符类型:char
    布尔类型:boolean
    注:bit:比特,指的是二进制的位数

  • 引用类型:

    java语言中除基本类型之外所有的变量类型都为引用类型,所有对象都是通过引用对其操作的;

    程序员单身是一个通病,但是可以new一个对象,我们的对象就是一个引用类型,声明一个引用类型的变量,
    如 String s ; //声明了一个String类型的引用变量,但没有使它指向一个对象,s是存放在栈中的;
    s = new String ("Hello world! "); //使用new语句创建一个String类型的对象,并用s指向它,之后就用s对其操作;new出来的对象是存放在堆中;
    在这里插入图片描述

  • 成员变量:

    a、成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型);
    b、在定义成员变量时可以对其初始化,如果不初始化,java会使用默认的值对其初始化(引用类型为null,布尔类型为false,其余基本类型的初始值都为0);

    分类:(1)类属性(以static修饰):类属性从这个类的准备阶段开始存在,直到系统完全销毁这个类,类属性的作用域与这个类的生存周期相同;类属性可以理解为类成员变量,与类共存亡;只要类存在,程序就可以访问该类的类属性,在程序中可以通过如下格式:类.类属性。一个类属性的内存空间只有一个,多个该类的对象共享该类属性的内存;当其中一个实例对其修改时,就会改变,static修饰的存放在data segment;类属性从这个类的准备阶段起开始存在,直到系统完全销毁这个类,类属性的作用域与这个类的生存范围相同;

    (2)实例属性(不以static修饰):实例属性从这个类的实例被创建开始起存在,直到系统完全销毁这个实例,实例属性的作用域与该实例的生存周期相同;实例属性可以理解为实例的成员变量,它作为实例的一个成员,与实例共存亡;只要实例存在,程序就可以访问该实例属性,在程序中可以通过如下格式: 实例.实例属性。当创建实例的时候,在堆里面会对成员变量进行初始化;每个对象通过对应的类实例化后会有一个实例属性。

    提示:一个类在使用之前要经过类加载、类验证、类准备、类解析、类初始化等几个阶段。

  • 局部变量:

    (1)局部变量可以使用java语言中的任何一种数据类型;
    (2)除了形参外,局部变量都必须进行显式初始化,如果不初始化,编译不会通过;

    分类:(1)形参(方法签名中定义的变量):作用域在在整个方法内;当类或对象调用某个方法时,系统会在该方法栈区为所有形参分配内存空间,并将实参的值赋给对应形参,这样就完成了形参的初始化;

    (2) 方法局部变量(在方法内定义):作用域从定义该局部变量的地方开始生效,到该方法结束时消失;

    (3)代码块局部变量(在代码块内定义):作用域从定义该变量的地方开始生效,到该代码块结束时失效;

    通过一个实例来验证一下:

class Person{

public String name;

public static int num;

}

…………

Person p1 = new Person(); //创建第一个对象;

Person p2 = new Person(); //创建第二个对象;

P1.name = "Tom";

P2.name = "Jack";

P1.num = 1;

P2.num = 2;

在这里插入图片描述

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值