【3】Head First Java 学习笔记

HeadFirst Java

本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

第一章 Java入门
第二章 面向对象
第三章 变量


变量的类型

  • primitive 主数据
  • 引用

变量

primitive主数据类型

  • 要素:类型 + 名称
  • boolean:
  • char: 16bits
  • 数值类:
    • byte 8bits -127~128
    • short 16bits -2^15 - 2 ^15
    • int 32bits
    • long 64bits
  • 浮点数
    • float 32
    • double 64

**类型安全:**小变量 不能 赋值 大变量,如int n=0; byte = n;
声明与赋值:int x;x=10;int x = 10;

如何控制对象

引用变量:

  • 没有对象变量,只有引用到对象的变量,引用变量 是指向对象的 指针(对象的地址),JVM才会使用 引用获取对象
    - 引用变量的值:取得特定对象的位表示(字节组合码) ,不在乎这个值
  • 引用变量:是某类杯子放入了一个指向 该类对象的 指针

对象的声明、创建与赋值:
1.声明一个引用变量 Dog myDog; JVM分配空间给引用变量,固定为Dog类,是指向Dog类模板创建的对象的指针(控制Dog的遥控)
2.创建对象:new Dog(); JVM分配堆空间给新对象
3. 连接: Dog myDog = new Dog(); 连接,将指针 具体的Dog对象

思考:

  • 引用变量的大小?与JVM有关,不同平台不同,其表示方式未知;考虑内存应考虑建立的对象大小数量
  • 引用对象与C的指针不同,不能进行计算!int num[]; int* p = num; p++

Exp1:

Dog temp = new Dog(); temp = new Dog();这建立了俩个对象,一个引用变量;该引用变量指向第二个建立对象
若 final Dog temp = new Dog(); 不再指向其他对象

Exp2:

Book a = new Book();Book b = new Book();
Book c = a; a的值赋给c,即引用变量的值(取得某对象的位表示),c此时与a指向同一个对象
a = b ; 此时 a与b指向同一个了
上述过程,三个引用,两个对象,某2个遥控控制1个电视~

Exp3:

Book a = new Book();Book b = new Book();
Book a = b; 此时 原先a指向的对象没有遥控了,无法引用,对象1会被抛弃
b = null; 不指向任何对象,但还能用

数组

变量犹如杯子,数组就是存放杯子的杯架。
数组 是 对象,数组的元素 可能是主数据、引用变量(装的不是Dog对象,而是Dog类指针,遥控器)。

int[] nums; 声明一个int[] 变量(引用变量)
nums = new int[n]; nums指向一个数组对象 int array object (有n个杯子的杯架)
nums[0]=1; 对数组的元素赋值

Dog[] pets;
pets = new Dog[7]; pets指向 一个Dog数组对象,(有7个装指针的杯子的杯架)
Dog[0] = new Dog(); 指向具体对象,Dog[0]是一个引用变量,默认会指向null

Java注重类型,一旦数组声明,只能装入声明类型的元素,除了隐含展开情况(byte放入int[]的元素)
存取Dog数组中的Dog,通过数组的索引得到引用变量,使用.符号进行方法、实例变量的存取,不需要变量名(也没有命名)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值