1. Java的数据类型分为基本数据类型(byte、short、int、long、float、double)和引用数据类型(String、Integer、Long、List、Map、自己定义的类......)。对于基本数据类型和引用数据类型,Java都是使用了值传递。
2. 对于基本数据类型,就是将实参的值拷贝一份给形参;对于引用数据类型传递参数时,不是将引用所指的对象传递过去,而是将引用的值,即地址传递过去。
3. 对于String这种类型的参数,虽是引用类型,但是形参改变并不会影响实参的变化。因为在JVM中操作String类型的变量时,如果变量改变,JVM并不会改变变量所指内存地址中的数据,而是新开辟一块内存存储新的值,并将变量指向新的内存地址。
简单来说就是,String类型的对象,java实现的方式比较特殊。修改这种类型的变量,就是重新生成一个对象,并让变量指向新的地址,而不是去修改原地址中的对象。
Java只有值传递,引用类型传参需要注意的地方
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...