关于值与引用

自从到了新公司,就开始了苦逼的java学习。新公司忙成🐶,每天基本上都是10点左右才离开公司。

今天感冒请假在家,想到自己已经很长时间没有学习了。不学习就不会成长,毕竟大杭州90%公司的核心开发语言都是Java,于是在知乎上找各位大牛的Java学习路线,发现了之前有个一直不适很清楚的概念,Java中的值传递和引用传递。

  • 关于值类型和引用类型。值类型是java中所有的基本类型,而引用类型是指对象类型。(Integer和Long这种包装器也是引用类型,只是他们在某些情况下编译器中会转化成它包装的基本类型)。用来区分引用类型和值类型只有一个标准,它的内存分配是在堆上还是在栈上。
  • mutate和change,mutate表示堆上内存的改变,change表示变量名重新指到一个新的内存地址,原本指向的内容不变。
  • 值传递与引用传递。函数调用参数传递本身都是值的传递,值类型传递一份本身的拷贝,引用类型传递一份引用的地址拷贝。由于函数调用会创建新的栈帧,所以形参的作用域只是函数内部,对形参变量名的赋值不会对函数之外产生影响,所以我们永远也无法在函数内改变函数外的实参的引用地址。所以我们只能对实参进行mutate操作,不能进行change操作。

不扯淡,睡觉了。知乎原文地址

明天回来看闭包。 first class function