别名现象

发生在为对象赋值的时候。对一个对象进行操作时,我们真正操作的是对对象的引用。所以倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方。这意味着假若对对象使用c=d,那么c和d都将指向原本只有d指向的那个对象。

因为赋值操作的是一个对象的引用,所以修改a的同时也改变了b。(原本a包含的对对象的引用,是指向一个值为9.9的对象。在对a赋值的时候,这个引用被覆盖,也就是丢失了;而那个不再被引用的对象会由“垃圾回收器”自动清理。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Tank{
float level;
}
public class test1 {
public static void main(String[] args) {
Tank a = new Tank();
Tank b = new Tank();
a.level = 9.9f;
b.level = 47.7f;
System.out.println("" + a.level + " " + b.level);
a = b;
System.out.println("" + a.level + " " + b.level);
a.level = 27.7f;
System.out.println("" + a.level + " " + b.level);
}
}

结果

image-20210614103327075

避免“别名现象”

1
a.level = b.level

无人汽车概览

无人汽车分类

  1. 驾驶员是驾驶系统唯一决策者
  2. Driver Assistance 驾驶员辅助
  3. Partial Automation 部分自动化
  4. Conditional Automation 有条件的自动化
  5. No Human Interference 高度自动化
  6. Full Automation 完全自动化
阅读全文 »

记录第一次使用vscode

今天闲来无聊,想起vscode这个软件,之前也下过很多次,但每次都不会使用,然后卸载了。今天想起它,经过一段深思冥想,查找资料,看别人的博客,阅读官方文档,终于学会使用了。

学会之后发现,这个软件巨好用,虽然它不是IDE,但它通过各种插件,效果比一般的IDE还要好,它小巧,即点即用;通过插件,支持多种语言的编写。

排序算法

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

阅读全文 »

Fibonacci

题目描述

求斐波那契数列的第n项


阅读全文 »

创建完博客的一些感想

​ 这几天沉迷于搭建自己的博客,中间也踩过好多坑,又因为本身对css,js这些不熟,出过好多bug。

​ 但是每次完成一个小项目就会特别高兴,从刚开始啥都不知道,然后百度出来GitHub pages搭建个人博客的方法,发现了hexo这个快速、简洁且高效的博客框架。

阅读全文 »

这是我的第一篇博克

花了两天终于把自己的博客网站建起来了,虽然过程有点小复杂,但感觉还是挺好玩的。

阅读全文 »