| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 学习Golang,Java,C++区别 -> 正文阅读 |
|
[Java知识库]学习Golang,Java,C++区别 |
(文章有点长,算是个人学习的一个小总结,大家如果有耐心看完欢迎提出意见) Golang处在Java和C++中间,他有着比Java更快地性能,也有比C++更方便的开发方式,但Golang在很多方面还是跟Java有些雷同,我们来看看三者中间的差别和相似之处,然后着重看看Golang和Java的异同。 三者的不同1.语言类型和平台1.1语言类型语言类型分为编译和解释,顾名思义,编译型语言就是把所有的代码一次型编译,然后运行,而解释型语言就相反的,是一句一句的编译解释运行。 Go语言和C++语言一样是编译型的静态语言,所以在运行Go和C++程序之前,先要将其编译成二进制的可执行文件。 所以像C++我们安装的MingGW其实就是C++的编译器,帮助C++实现编译的。 而相对而言的,Java就是可以说是编译型语言也可以说成是解释型语言,首先Java会将所有代码编译成 这里的差别就是编译型语言Go或者C++是直接将语言编译成机器能懂得文件,然后就可以直接运行了,而Java有了 从这个方面来看,C++和Go的代码运行性能是比Java快的,毕竟编译型语言比解释型语言块要很正常。 1.2平台在C++比较有受欢迎的事linux编程,这个问题就导致如果我们在windows的环境上写关于linux编程的代码,比如最简单的在进行网络编程的时候 在linux环境上的包是 而对于windows上的包是 所以如果我们在windows上开发的网络编程代码,要部署到linux系统的服务器上去运行的话,这是肯定行不通的,而java和go没有这个问题。 java我们都清楚,他是有java虚拟机的,也就是说不管你代码到哪个系统,所有代码其实都是运行在虚拟机上的,所以就没有系统差异一说。 而Go和C++一样是编译型原因,但是Go也是可以跨平台运行的语言,但是Go又不像Java一样需要虚拟机这样一个中间过程, Go这个实现跨平台的过程,我的简单理解是
2.内存管理GO和Java一样有内存管理机制,也就是Java中常见的垃圾回收,在Go里面也有,而这一点是C++没有的,也是C++不方便的一个方面,因为程序员需要时刻的去记住创建之后要释放内存。这个在后面写Java和Go的区别重点学一下 3.语言特性Go是不支持类与类之间的继承关系的,在go语言里面,有对象和接口的概念(刚入门的个人理解,后面有更深的理解了再来补充) 一般来说,最好一个文件.go就是一个类,当然也可以放多个struct来放在一个文件里然后用 举个例子,我们要实现一个学生类,其中属性包括,姓名,年龄,性别,方法包括,写作业,考试,我们可以写成这样
得到一个这样的类之后,我们可以通过这两种方法去实例化并使用这个类
go每个类之间都是独立存在的,接口也仅限于当前文件内,类与类之间并无父子继承关系。 go不允许重载但是允许重写,重载和重写看这个,但是go的重写其实不是严格的重写,因为他并没有父子的继承关系,只是如果在同一个文件内有多个类的话,类于类之间的函数名可以重复。比如下面这样
java和C++中的函数重载和重写就不写了,因为他们都支持。 4.开发性能与效率高质量的C++代码性能依旧是最猛的,这个无可厚非,Go其次,毕竟编译型语言比解释型语言的优势在那。 (仅限于了解过的框架,有经验的大佬可以给我提提意见,我去学习一下) 在多线程方面,Go的 Java和Go的区别TO BE CONTINUE… |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:34:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |