美文网首页
cs61b2018sp WEEK2.1 引用类型、递归和列表 视

cs61b2018sp WEEK2.1 引用类型、递归和列表 视

作者: 且乐一杯酒 | 来源:发表于2022-03-14 09:37 被阅读0次

2022.3.15

突然发现简书一天只能发两篇文章,昨天作业的文章就暂时收着,等以后哪天没发满两章再补上吧

WEEK2.1 引用类型、递归和列表

一.内容

1.海象之谜(The Mysteries of Walrus)


如图所示代码,问b的变化是否影响到a的变化
这里是引出引用类型的例子,答案是会的


这里又来一个例子,问x是否影响y
显然不会

为什么?


因为a,b指向的是同一个实例,而x,y不是

2.基本类型(Primitive Types)

首先,数据存储在内存(Memories)中,存储形式是二进制码(一堆01,bit全称Binary Digit)
java有8中基本类型,每当声明一个变量,即在内存中开拓相应空间,当赋值时,就把对应数据的二进制码给到变量.

注:老师提到了一个赋值黄金法则,即=把一个变量的bit给另一个变量

3.引用类型(Reference Types)

new一个类时(即实例化对象),java就在内存中分配好相应的空间存储类的各种属性,而且new还告诉java这部分内存在哪里,即new一个类返回的是这个实例完成的类的地址

第一行:在内存8字节内存,分配给a
第二行:在内存中找Walrus所需内存(或更多,因为有其他东西要存)放置实例化对象,然后将此内存所在地址给a,此地址会是和a大小相同的位数,所以a保存的实际是一个地址(用c的指针想象)
第三和第四行:在内存8字节内存,分配给b,然后将a中保存的地址给b

java的第9类型就是Objects,有8字节大小,是一种引用类型

下面来一个小测试吧

小测试
w.weight和x的值变了吗?

doStuff方法的作用域不同于main,会自己开辟一个新的作用域,由图可见,只有引用类型才能改变原有的值

4.实例化数组(Instantiating Arrays)


在内存中开辟8字节空间给a,用来存放某数组的地址


实例化一个数组


把数组的地址给a

注:如果实例化的数组没有将其地址给一个变量,我们称这个数组是匿名的(Anonymous),很可能会被GC掉

5.链表(List)

这是java中链表的简单写法,是不是很简单?
大概长这样
这是老师改进后的链表,主要用了构造方法使其更简便了 size()求链表长度的方法代码递归(Recursion)法
这是迭代法 get()方法获取链表中某结点

二.后记

今天上午就到这吧,今天下午估计可以上第二课,不过晚上有上机,作业要留到明天了,加油!

相关文章

  • 04内存管理

    小对象非指针类型散列表(引用计数表和弱引用表)

  • go语言中函数使用的注意事项和细节

    1、函数的形参列表可以是多个,返回值列表也可以是多个。 2、形参列表和返回值列表的数据类型可以是值类型和引用类型。...

  • JS - 如何实现深拷贝?

    递归 判断类型 不同的类型有不同的方法 检查环(也叫循环引用)一个对象引用了自己,递归的时候容易出不来 需要忽略原...

  • js生成树结构

    原数据: 期望生成: 方式一:递归 方式二:利用对象是引用类型地址

  • Python语言基础8。函数

    引用、递归函数、匿名函数、列表推导式、文件的读写、with open()as file文件的相关操作shutil模...

  • 小洁详解《R数据科学》--第十五章 向量(下)

    还是先 5.递归向量 创建 可以包含不同类型的对象 列表甚至可以包含其他列表 5.1列表取子集 [] 提取子列表 ...

  • c#委托和事件

    C# 委托 什么是委托 委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以...

  • 引用类型和非引用类型

    引用类型 引用类型指的是保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,由该...

  • C#基本功之委托和事件

    定义:委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有...

  • 2019-12-17,委托

    委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签...

网友评论

      本文标题:cs61b2018sp WEEK2.1 引用类型、递归和列表 视

      本文链接:https://www.haomeiwen.com/subject/mdbedrtx.html