《JAVA 程序员面试宝典(第四版)》之传递与引用篇

    废话开场白

        这个周末突然很想创业,为什么呢?原因很简单,我周围的同学或者说玩的比较好的朋友都发达了,前一个月和一个两年前还睡在一张床上的朋友,他现在已经在深圳买房买车了,没错是在深圳买的房。也是前一阵子一个很久不见的大学同学请吃饭,席间都是谈论天使轮、A轮之类的话题,老家高中同学很多至少也买车了吧。我呢?依然原地踏步,于是乎我决定创业了,创业的理由就是这么简单。问题来了,我什么都没有,创业又应该从哪里入手呢?我想既然现在O2O这么火,我是不是先搞一个手机APP呢?于是乎我百度了一下,应该如何快速搞一个手机APP,百度经验告诉我用APICloud,进到他们官网去看了一下,真是让人眼前一亮,各种视频教程、文档应有尽有。后来不知道为什么我又退出APICloud官网,回到搜索APIClound百度首页,无意中竟然发现在APICloud官网下面看到DCloud发布声明,称正式起诉APICloud产品侵权“ 的标题,于是又点击进去看了一下,尼玛竟然在APICloud产品下面发现DCloud公司产品的数字证书,虽然我不知道数字证书是个什么鬼,我只知道剽窃也是一个很有技术含量的活。说了这么多和我的创业有什么关系?对不起没有关系。在这里我只想说现在软件创业都普遍偏浮躁,动不动就这个云那个云,”这个软件系统使用了大数据“,”目前公司估值5个亿"!天使轮500W,A轮多少多少等等之类的,但实际上说这些话的人有些时候我感觉真的是在吹牛逼(不包括那些真正有实力的公司),一个连接网络的程序就叫云了,一份普通的报表就叫BI或者是大数据分析了,一个只有几个员工的软件公司连测试人员都没有就敢估值5个亿。 唉!!!!!!

   正文

      说到传递与引用,很多人会说基本类型变量就是传值,对象型变量就是传引用,首先这里什么是传值什么是传引用?很简单当一个参数是基本数据类型的话,是不会改变本身变量的值,如果参数是对象类型则会改变本身变量的值。在没有理解这个之前,我想通过函数调用方式来改变List某个下标的值是像下面这么来写的:

 

当理解了传引用与传值这个概念后,完全就没有必要这么来写了,主要是 上面第42行 lstStudent.set(1, stu3); 这段代码,由于Student是一个是对象,当做一个参数来传递的话,其实传递是引用,即使不使用lstStudent.set(1, stu3);列表的值也会改变。那是不是所有对象当做参数来传递的时候,都是传递的是引用呢?额,这个不好回答,我只是知道并不是所有对象当做参数来传递后值都会改变,也并不是说所有基本类型当做参数值来传递的时候里面的值都不会改变。请看下面的代码:

    总之,大体上按照对象来当做参数来传递都是会改变里面的值(基本数据对象类型除外),基本数据类型当做参数来传递都不会改变原来变量的值(基本类型的数组参数除外)。

      

 

    

posted @ 2015-11-29 19:08  软件改变未来  阅读(472)  评论(0编辑  收藏  举报