菜鸟对java和Go的理解
2024-09-05 20:21:00
1.go对比java
go通过结构体嵌套+接口实现类似面向对象中的继承和多态。个人认为尤其是go的接口抓住了多态的本质。而Go提倡的面向接口的思想也可能使得架构上更加解耦。
2.关于Go不要通过共享内存来通信,而应通过通信来共享内存的个人理解:
go通过channel来实现通信。按照大佬的说法,chan传递的是对数据的访问权限。chan底层是一个队列,传入时为值拷贝【如果传入的是指针则拷贝指针的值】,因此在map,slice,chan时理解为传递的对同一份数据的访问权限,即传入chan后不应在原goroutine中操作数据。而当传入其它类型时是真正的值传递,此时相当于内存拷贝了。这种情况下对比MQ,从某种意义上讲上都是通过数据拷贝来共享内存了,用数据的冗余使得结构上更加解耦同时使CPU能更充分的利用,仍然是尽可能压榨CPU的思想的体现。
正如Go官方所说的,Go更像面向21世纪的带网络和并发的C。使用了面向过程的结构体,加方法接收者,接口实现了类似面向对象需要的功能。
最新文章
- mybatis_开发篇
- ecshop后台 计划任务
- Android 学习 (一)
- SQL Server分布式数据库技术(LinkedServer,CT,SSB)
- 技术分享:WIFI钓鱼的入门姿势
- grep与find
- 收藏本网站兼容火狐IE
- 【CC评网】2013.第44周 把握每天的第一个小时
- PHP截取IE浏览器并缩小原图的方法
- dfa最小化,上一个版本采用的是moore的打表法,这个版本采用的是hopcroft的方法,但是实现中采用链表而不是栈来优化。
- C#实现对Word文件读写[转]
- Little shop of flowers - SGU 104 (DP)
- 内置在虚拟机上64位操作系统:该主机支持 Intel VT-x,但 Intel VT-x 残
- iOS UICollectionView 长按移动cell
- python IDLE中反斜杠显示为人民币符号¥的解决办法
- 201421123042 《Java程序设计》第9周学习总结
- js实现表格无缝滚动效果
- go chan 入门代码
- 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解
- 新SQL temp
热门文章
- [LC] 142. Linked List Cycle II
- 为什么jdk1.8 HashMap的容量一定要是2的n次幂
- 4k高分屏下,chm帮助文档,api文档打开后字体过小的解决
- Archlinux安装与出现的问题
- caffe之mac环境下通过XCode调试C++程序
- 有用户及目录判断的删除文件内容的Shell脚本
- Java Servlet和Java Filter简介
- 导入项目@override 报错处理
- 8.2.2 使用Java8增强的Iterator遍历集合元素
- sms短信服务