03 primitive主数据类型和引用

1. 变量

变量有两种:primitive主数据类型和引用

1.1 声明变量

Java很注重类型。你不能把长颈鹿类型的变量装进兔子类型的变量里。

为了要让类型安全能够发挥作用,你必须声明所有变量的类型,指定它是个int类型或是个Dog类型。

primitive主数据类型用来保存基本类型的值,包括整数、布尔和浮点数等

对象引用保存的是对象的引用

变量必须有类型。

变量必须有名称。

2. primitive主数据类型

类型位数值域
booleanJava虚拟机决定true/false
char16bits0~65535
byte8bits-128~127
short16bits-32768~32767
int32bits-2147483648~2147483647
long64bits-很大~+很大
float32bits范围规模可变
double64bits

范围规模可变

2.1 primitive主数据类型的声明与赋值声明

int x;
x =234;
boolean isFun = true;
char c = 'f';
long big = 3456789;
float f = 32.5f;

除非加上f,否则所有带小数点的值都会被Java当作double处理

赋值时编译器会防止溢出。编译器不允许将大杯的内容放到小杯中,但反过来呢?可以。

2.2 变量命名规则

  • 名称必须以字母、下划线(_)或$符号开头,不能用数字开头
  • 除了第一个字符之外,后面可以用数字
  • 只要符合上述两条规则,你就可以随意地命名,但是还要避开 Java的保留字

保留字是编译器要辨别的关键字 

2.3 避开关键字(keyword)

 3. 对象引用

3.1 控制Dog对象 

  • 事实上没有对象变量这样的东西存在
  • 只有引用到对象的变量
  • 对象引用变量保存的是存取对象的方法
  • 它并不是对象的容器,而是类似指向对象的指针,或者可以说是地址。但在Java中我们不会也不该知道引用变量中实际装载的是什么,它只是用来代表单一的对象。只有Java虚拟机才会知道如何使用引用来取得该对象。

对primitive主数据类型中的变量来说,变量值就是所代表的值(如5,-26.7,‘a');对引用变量来说,变量值是取得特定对象的位表示法。

3.2 对象的声明、创建与赋值

Dog myDog = new Dog();

  • 声明一个引用变量:要求Java虚拟机分配空间给引用变量,并为此变量命名
  • 创建对象:要求Java虚拟机分配堆空间给新建立的对象
  • 连接对象和引用:将新的Dog赋值给myDog这个引用变量

3.3 对象引用

对于任意一个Java虚拟机来说,所有的引用大小都一样,但不同的Java虚拟机间可能会以不同的方式来表示引用,因此某个Java虚拟机的引用大小可能会大于或小于另一个Java虚拟机的引用。

如果引用被标记成final,一旦被指派给某个Dog之后就不能赋值给这个特定Dog之外的任何事物。

3.4 垃圾收集堆

3.5 堆上的生与死

3.6 数组

无论被声明来承载的是primitive主数据类型或对象引用,数组永远是对象。

引用变量只会保存引用,而不是对象本身。

Dog[] pets;

pets = new Dog[7];

pets[0] = new Dog();

//Dog数组中只带有Dog的引用变量,还需要Dog对象。

pets[1] = new Dog();

......

4. 要点

  • 变量有两种:primitive主数据类型和引用。
  • 变量的声明必须有类型和名称。
  • primitive主数据类型变量值是该值的字节所表示的。
  • 引用变量的值代表位于堆之对象的存取方法。
  • 没有引用到任何对象的引用变量的值为null值。
  • 数组一定是个对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值