千里不留行_ 2023-10-12 21:25 采纳率: 21.2%
浏览 21

go和 java执行效率对比

想问个关于go 语言 和 java 之间的问题
如下是leetcode 上的一题

img

描述:上面我使用摩尔投票的算法进行求解,我分别用go ,java 按照相同的逻辑 进行过编码
问题:
按道理来说(我自己的理解)go 是直接编译成机器语言来执行,java 是 编译成class 文件后 由jvm 解释执行
理论上 go 语言的执行速度应该快于java ,为什么我发现并不是如此,只有内存 方面go 比 java 要节省不少,我想知道是为什么,难道go 语言性能是不如java 的吗?本人也不太懂,目前在学习这两个语言,遇到这个问题希望有专家解答一下;

这是两个语言对同一个题的,同一种解法的不同执行速度,,我发现,不止一个题是这样,很多题都是这样的结果,我很疑惑,一个号称系统级的静态编程语言,的执行速度,居然没有一个需要编译后解释执行的语言执行速度快;

img

这是go 语言实现代码:

func majorityElement(nums []int) int {
   var mjor, count int = nums[0], 1 // 候选元素 ,票数

   for i := 1; i < len(nums); i++ {
       if count == 0 { // 得票为0,直接设置候选元素为当前元素
           mjor, count = nums[i], 1
       } else if nums[i] == mjor { // 候选元素加一票
           count++
       } else { // 候选元素票数减一
           count--
       }
   }
   return mjor
}

这是java 语言的实现代码:

public class Solution {
    public int majorityElement(int[] nums) {
        int major = nums[0], count = 1;

        for (int i = 1; i < nums.length; i++) {
            if (count == 0) {
                major = nums[i];
                count = 1;
            } else if (major == nums[i]) {
                count++;
            } else {
                count--;
            }
        }
        return major;
    }
}
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-13 08:33
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月12日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真