所有编程语言的基本类型赋值总是复制一个副本吗?

MikeDDT009 2017-05-30 10:47:00
大概就是最近学js产生的一个疑问,在js(javascript)里面字符串是基本类型的数据,java里是引用类型。由此产生了一个关于不同的编程语言的疑问。
比如java里,对基本类型这样操作:
int num1 = 1 ;
int num2 = num1;
那么对num2进行操作并不会影响到num1,因为是复制了num1的一个副本给num2。

而引用类型的话却是指向同一个“值”。那么对指向同一个的值进行操作其实都会影响。

比如js里面基本类型是字符串 布尔值 数字,那么在这里对字符串进行一样的操作:
var str1 = "123";
var str2 = str1;
那么是否就是把str1的一个副本给了str2。

当然java里面字符串还有个字符池(?没记错的话是这个名字)另外说吧。

那么我是否可以这样衍生出所有编程语言里,基本类型之间"瞎搞"玩的就是副本?
...全文
191 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
HinanaiTenshi 2017-05-31
  • 打赏
  • 举报
回复
这实际上是两个问题混淆在了一起,一个问题是变量指向了什么? 一个是基本类型的变量是哪种情况? 大多数语言的变量指向都可以分为两种,指向这个变量实际的内存地址,或者指向一个代表这个内存地址的标记,前者被称作值,后者也就是所谓的引用或者指针。 但是基本类型是java或者一些面向对象的语言特有的说法,类似c或者smalltalk这种语言,前者语法没有对象的概念,而后者语法没有非对象的概念,他们都不存在基本类型,自然就无所谓基本类型如何处理。
水窝IBM-阿娇 2017-05-31
  • 打赏
  • 举报
回复

23,408

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧