深入理解JVM01 Java发展史 栈和堆 JVM基础

72 阅读1分钟

本文章的内容来自以下的内容
【JVM调优实战】对比:golang与java的GC(全网首讲)_哔哩哔哩_bilibili
《深入理解Java虚拟机- -jvm高级特性与最佳实践》

Java发展史

C 和C++ 的问题

  • 野指针
  • 内存泄露 memery leak
  • 释放多次,产生极难调试的bug,一个对象莫名其妙被释放了
  • 速度快,但是开发效率低

Java Go Python的发展

  • 创造了GC(Garbage collector)机制,线程分配,垃圾回收器负责回收
  • 大大降低了开发门槛
  • 自动管理内存

rust

  • 运行效率高:堪比C++
  • 不用手工管理内存
  • 学习曲线很陡峭
  • 所有权的概念ownership:同一时间只有1个所有者指向一个变量,不可能出现多个对象指向1个变量
  • 只要语法通过,写不出bug

java从编译到执行

image.png

JVM

jvm是一种规范,任何语言编译成class文件都可以运行,和java语言本身并无太多关联

image.png