3.认识JAVA变量

变量概述

JAVA变量分为两种:primitive主数据类型和对象引用,变量具有大小和类型.

主数据类型保存基本类型的值,包括整数,布尔,浮点数

对象的引用保存的是对象的引用.(PS废话)

X类型的Y对象,此处类型与类是相通的同义字

变量分类之主数据类型

主数据类型具有不同的大小和名称,如下所示(共8种):

boolean true or false

char 16 0-65535

byte 8  -128-127

short 16 -32768-32767

int 32 -2147483648-2147483647

long 64 -? ~ +(?-1)

float 32  范围规模可变

double 32 范围规模可变

如float f=32.5f

 注意后缀F,否则所有带小数点的值都会被当做double处理

根据类型大小,不可将范围大的变量内容放入范围小的变量,反之,则可以.

如int x=24;byte b=x;不可以

顺带提一句命名规则:

名称必须以字母,下划线或美元符号开头,不可用数字开头,名称不可与保留字相一致.

常见保留字

final native strictfp transient volatile default assert

instanceof interface package this finally throws const goto enum

变量分类之对象引用

1)事实上不存在对象变量,只存在引用到对象的变量.

2)对象引用变量保存的是存取对象的方法,对象本身并没有放进变量中

3)它并不是对象的容器,而是类似指向对象的指针,对象只会存在于可回收垃圾的堆上,因此不会知道其实际装载的是什么.

4)与主数据类型区别在于:

  主数据类型变量以字节代表实际的变量值

  对象引用变量以字节表示取得对象的方法

  如mydog.bark();代表名为mydog的引用对象变量来引用对象上的bark().

5)对于任何一个JVM来说,所有的引用大小都一样,所有的对象引用具有相同的大小

6)引用变量不同于指针,在于其不可运算

7)对引用变量使用圆点运算符可存取其方法或实例变量

8)没有引用到任何对象的引用变量的值为null值

对象的声明,创建和赋值

1.声明一个引用变量

Dog mydog

要求JVM分配空间给引用变量,固定引用变量永远是Dog类型(只是类型锁定,若加上final则引用对象锁定)   

2.创建对象        

new Dog()

要求JVM分配堆空间给新建立的对象

3.连接对象和引用  

Dog mydog=new Dog();

设定对象的引用,类似于指针指向这个新建立的对象

引用对象的辨析

Book b=new Book();

Book c=new Book();

声明两个book的引用变量并创建两个book对象,接着赋值给引用变量,此时两个book对象生活在堆上

Book d=c;

声明新的book引用变量,并将c的值赋值给d,代表c的字节组合拷贝给变量d.则c,d引用到同一对象(1台电视对应两个遥控器)

c=b;

同上,b和c引用相同对象

注:要注意到若某对象无引用变量指向,则被抛弃,作为垃圾收集器

数组对象

数组是个对象,所以数组本身绝对不会是主数据类型,只有装载主数据类型的数组,没有主数据类型的数组

数组变量是数组对象的遥控器(指针),所以创建数组过程如下

int[] nums;

nums=new int[7]

num[0]=6;

......

num[6]=1;

数组中每个元素都是变量,包括主数据类型或引用变量,可以放进此类型变量中的值都可以作为此类型数组的元素

但在DOG数组中DOG[]每个都可以装载一个DOG?答案是否定的,因为引用变量只是保存引用,不保存对象本身.

综上所述,只能装载引用变量

创建DOG数组(重难点)

1.声明Dog数组变量

Dog[] pets;

2.创建大小为7的Dog数组,并赋值给Dog[]类型变量pets

pets=new Dog[7];

此时数组只有对Dog的引用,但缺少实际的对象

3.创建新的Dog对象并将其赋值给数组元素

pets[0]=new Dog();

.......

以此类推

此时数组既有对Dog的引用,也有实际的对象


附录:

局部变量:声明在方法中的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值