如何看待上层技术与JVM以及为何学习JVM

如何看待上层技术与JVM以及为何学习JVM

JVM学习之前在开发中会遇到的问题:

  1. 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM(内存溢出)
  2. 想解决线上JVM GC问题, 但是无从下手
  3. 新项目上线, 对各种JVM参数设置一脸茫然, 直接取默认之后发现程序直接挂掉了
  4. 每次面试之前都要重新背一遍JVM的一些原理概念性的东西, 然而面试官却经常问你在实际项目中如何调优JVM参数, 如何解决GC, OOM等问题,然后自己就会一脸懵逼

Java上层技术与JVM关系图:

在这里插入图片描述

大部分的Java开发人员,除了会在项目中使用到与Java平台相关·的各种高精尖技术,对于Java技术的核心(Java虚拟机)了解甚少

大部分程序员对上层框和JVM的看法:

一些有一定工作经验的开发人员,认为SSM等上层框架才是重点,因此会沉迷与表层的业务逻辑开发, 导致仅仅着重与理解上层框架的使用, 认为基础技术不重要, 对JavaSE的内容理解都不够深刻, 更不要说JVM了, 而着其实是一种本末倒置的“病态”,这是问题,一定需要改正

  • 底层技术永远是最值得花时间去学习的

如果我们把核心类库的API比作是数学公式, 那么Java虚拟机的只是就好比是公式的推导过程

CNN(卷积神经网络): 用于图像识别(eg:百度的通过拍照识物功能和淘宝的识货功能),用CNN做一个图片简单识别功能可能只需要十行左右的代码

卷积神经网络 : 是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一

计算机系统体系对我们来说越来越远,在不了解底层实现方式的前提下, 通过高级语言很容易编写程序代码, 但是事实上计算机并不认识高级语言,所以我们一定要深入到底层中去了解, 不能一直停留在表面中

在这里插入图片描述

作为一个开发人员,不要只想着如何简单的实现我们的业务需求,更加应该去思考如何让我们的程序运行更加的快, 如何避免系统出现瓶颈

我们为什么要学习JVM?

  1. 面试需要(大厂很喜欢问)
  2. 中高级程序员必备技能
    • 项目管理,调优的需要
  3. 追求极客精神
    • 比如: 垃圾回收算法, JIT, 底层原理
      • JIT: 即时编译(是属于动态编译的一种, 是编译器后端, 用于将Class文件编译为机器代码
        • 动态编译就是在运行的过程中编译, JIT最常见的就是在执行对应的语句之前对该语句进行编译

垃圾回收机制为我们处理了很多繁琐的工作,大大提高了开发的效率,但是垃圾回收也不是万能的,懂得JVM内存的内存结构,工作机制,是设计高扩展性应用和诊断运行问题的基础, 也是Java工程师进阶的必备技能

Java中有垃圾回收机制和自动内存管理,但是垃圾回收机制和内存自动管理功能也不是万能的,也是有可能就会报错的, 而垃圾回收机制和内存管理上如果出现了问题,那么这个时候我们就要使用到JVM中学习到的知识来完成
真正要学懂JVM,不仅仅是要学会理论,更是要去实操,学习JVM的最好的方式就是自己手写一个JVM,一个人手写一个简易JVM需要的时间大概是两周左右
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值