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

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里面字符串还有个字符池(?没记错的话是这个名字)另外说吧。

那么我是否可以这样衍生出所有编程语言里,基本类型之间"瞎搞"玩的就是副本?
...全文
178 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
HinanaiTenshi 2017-05-31
  • 打赏
  • 举报
回复
这实际上是两个问题混淆在了一起,一个问题是变量指向了什么? 一个是基本类型的变量是哪种情况? 大多数语言的变量指向都可以分为两种,指向这个变量实际的内存地址,或者指向一个代表这个内存地址的标记,前者被称作值,后者也就是所谓的引用或者指针。 但是基本类型是java或者一些面向对象的语言特有的说法,类似c或者smalltalk这种语言,前者语法没有对象的概念,而后者语法没有非对象的概念,他们都不存在基本类型,自然就无所谓基本类型如何处理。
水窝IBM-阿娇 2017-05-31
  • 打赏
  • 举报
回复
程序 = 数据结构 + 算法  程序是为了解决实际问题而存在的。然而为了解决问题,必定会使用到某些数据结构以及设计一个解决这种数据结构的算法。如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。编程实战算法,不是念PPT,我们讲的就是实战与代码实现与企业应用。程序 = 数据结构 + 算法                ——图灵奖得主,计算机科学家N.Wirth(沃斯)作为程序员,我们做机器学习也好,做python开发也好,java开发也好。有一种对所有程序员无一例外的刚需 —— 算法与数据结构日常增删改查 + 粘贴复制 + 搜索引擎可以实现很多东西。同样,这样也是没有任何竞争力的。我们只可以粘贴复制相似度极高的功能,稍复杂的逻辑没有任何办法。语言有很多,开发框架更是日新月异3个月不学就落后我们可以学习很多语言,很多框架,但招聘不会考你用5种语言10种框架实现同一个功能。真正让程序员有区分度,企业招聘万年不变的重点 —— 算法与数据结构。算法代表程序员水平的珠穆朗玛。如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。 想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。 开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。

23,402

社区成员

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

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