Java转Go语言的总结

去年9,10月份的时候,抽空学习了一下Go语言,但是后来忙于学会论文投稿的事情,最近就没有学习Go,现在用Go做做实战项目,结果发现很多都忘记了(而且之前的电脑坏掉了,写的那些代码也没有留下来),于是打算这几天抽空看一下Go语言。
之下就是一些总结(这次换了一本书 the way go to go)

  1. Go编译器产生的是本地可执行代码(机器码),运行在runtime上,相当于java的虚拟机,Go的runtime嵌入到了每一个可执行文件中。Go不需要依赖其他的文件,他是静态链接的(将运行需要的函数代码都放到其中)
  2. 注意_本身是一个特殊的标识符,为空白标识符。任何付给他的值都将被抛弃。
  3. Go中的包模型采取了显式依赖模型,会从后缀名为.O的对象文件中提取传递依赖类型的信息
  4. 即便你的程序只使用main,也不用写一个巨大的文件,可以用一些较小的文件。
  5. 包名不是main的源文件,编译之后的后缀名是.a而不是可执行文件
  6. Go语言重写了runtime(我感觉就是程序和系统之间的关联部分)c的runtime是基于线程模型的,Go重写了之后就支持goroutine,这就引出Go的一个重要特性:多并发。

感想
总的来说,这本书写的很好,它解答了我很多的迷惑的地方,相对于之前看的几本书(单纯地讲解语法或者是用法)它更加注重深层次的内容。但是它不是一本很好的零基础入门书籍。它对那些已经有了其他编程语言基础的人来说是一本很好的书。

https://tonybai.com/2017/06/27/an-intro-about-go-portability/
(这个写的很好 mark一下)

名词:
运行时(runtime)就是程序运行的时候
指的是指令加载到内存并由CPU执行的时候
运行时库就是程序运行的时候所依赖的库
C代码编译成可执行文件的时候,指令没有被CPU执行,这个时候算是编译时(编译的时候)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值