Java中“指针”的解释以及对“引用”的理解

初学Java面对对象编程,对于一些概念还真的有点难以理解,主要是因为不由自主的联系到以前学过的C语言知识,时不时的影响着自己对Java语言的认识,如今自己对于Java的一些概念解释和理解记录下来,以便于以后回顾:

一、引用:

在Java语言的教材中关于创建对象格式是这样规定的:

类名 引用变量 = new 类名();

对于这句话的解释是:创建一个对象,将对象的地址赋值给引用变量,此时变量就持有了对象的引用;而此时我们就可以通过引用变量来访问对象中的所有成员。需要注意的是:引用变量存放的位置是栈内存,对象存放的位置是堆内存;

举一个不是太恰当的例子:就像在电脑上下载了一个软件,把软件安装到了某一个硬盘下的某一个文件夹中,为了能够方便的打开这个软件,都会在桌面上创建一个快捷方式,若要打开软件,直接在桌面上双击软件快捷方式即可,而不是每一次使用的时候都到安装软件的文件夹下找 .exe 文件打开它,显然这种情况就相当于Java中的“引用”。快捷方式和 .exe文件的位置是不一样的,通过快捷方式打开软件。

说到引用了,再提一下C、C++语言中的引用概念:

例如 : &b=a;此时变量b就持有了对变量a的引用,但是a,b变量的地址是相同的,这不同于Java语言中对象的引用。

我认为:不管是对于Java还是C、C++,可以把“引用”理解成“别名”,只是他们的引用变量在各自的语言中存储地址有些偏差罢了。

二、指针:

自从学了C,C++语言之后,再学Java语言发现一个问题:Java中也是含指针的。(我不要你觉得,我要我觉得)

看一个例子: Person p= new Person();

实例化对象Person类;把对象的地址赋值给了变量p,此时变量p指向了对象,那么这不就是C、C++中的指针吗,和C++、C里面的指针定义很像,没毛病。所以呢,如果把p变量理解成指针变量,我认为也是可以的。

总的来说吧,我认为每个语言有每个语言的特色,不应该拿看待C、C++语言的眼光来过度看待Java,如果要是先学的Java语言,再学习C++语言,那会不会就把C++语言中的“指针”就给理解成Java中的“引用”了呢!

最新文章

  1. hibernate配置文件hibernate.cfg.xml的详细解释
  2. 中文字号VS英文字号(磅)VS像素值
  3. Java实现emf图片自己留转png(jpg)图片字节流
  4. 使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB)
  5. docker warning ipv4 forwarding is disabled. networking will not work
  6. phpdesigner 的配置
  7. python flask应用部署
  8. 转:CentOS设置时区
  9. UltraEdit常用配置&搭建Java/C开发环境
  10. python中的类简单讲解
  11. 更新证书错误Code Sign error: Provisioning profile ‘XXXX'can't be found
  12. kafka rebalance 部分分区没有owner
  13. js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置
  14. Spark里边:Worker源代码分析和架构
  15. iOS开发——应用图标上显示消息数量
  16. java中static关键字的作用
  17. hdu--1104--Remainder(简单的bfs)
  18. 卷积神经网络经验-CS231n笔记
  19. js 匹配2个字符串相似度
  20. Visual Studio2015安装过程以及单元测试

热门文章

  1. Cron表达式(七子表达式)
  2. NC235250 牛可乐的翻转游戏
  3. 练习-用if语句替换三元运算符和选择结构-标准的switch语句
  4. datax开启hana支持以及dolphinscheduler开启datax任务
  5. Note -「狄利克雷前缀和」
  6. 云表平台VS永中office,谁更胜一筹?
  7. 使用Three.js实现炫酷的赛博朋克风格3D数字地球大屏 🌐
  8. Sharding-jdbc 5.1.2案例
  9. 应用集成-在Hexo、Hugo博客框架中使用Gitalk基于Github上仓库项目的issue无后端服务评论系统实践
  10. Java SE 12 新增特性