美文网首页
遇见JVM系列⭐️人生若只如初见

遇见JVM系列⭐️人生若只如初见

作者: 依然范特希 | 来源:发表于2019-05-16 21:41 被阅读0次

人生若只如初见,何必悲风秋画扇。不知道你是何时第一次与JVM相识,也许是在大学的课本里,也许是一场有点懵逼的面试,也许就是现在。我们不问过去,不谈将来,现在一起重新认识一下JVM吧。


JVM为何物

  • 中文名称:Java虚拟机
  • 英文名称:Java Virtual Machine
  • 简称(小名): JVM
  • 爱好:内存管理,线程调度等
  • 特长: 一次编译,到处运行
  • 百度风评:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

为什么要学习JVM

  • 面试官比较讨厌,经常问这一块
  • 希望不要挖太多的坑,防止自己掉进去
  • 路漫漫其修远兮,吾将上下而求索

学习过程中的痛点

  • 总是临阵磨枪,总是看,总是忘。
  • 有一块内容总是不清楚,咱也不知道,也不敢问。
  • 没有整体的轮廓,总感觉学习的不够完整。
  • 感觉这一块很枯燥乏味,从入门到放弃。

简单聊一下我和JVM的相遇

虽然本人大学也是计算机本专业的学生,奈何大学在学习Java语言的时候,老师只讲解基础的语法,而自己也没有主动去摸索,也没有一位指路人让我看到一条明路。而在工作了之后,初期也基本是沉浸于公司固有的框架中做一些业务开发而不能自拔,所以这一块很长时间都没有接触。对于JVM的认知只知道两个字“堆栈”。直到后来在换工作的时候,被问到这一块,有点懵逼。所以后来也是专门去整理了相关的知识点,后来在工作中也有内存调优的经验,所以特意出一个系列来分享给大家,希望大家在学习的路上不孤单,有我在这里陪着你。

这些问题都将是小菜

很多时候,自己写的一些代码,感觉有点心虚,不知道会不会有问题。其实在学习路上始终会有很多的疑问,一定要保持质疑。

  • 新起一个线程,为什么主线程还会继续执行
    这个问题可能看起来比较幼稚,因为这是我们熟知的事情了,但是你能解释为什么会这样吗?
    public static void main(String[] args) {
        System.out.println("主线程开始");
        new Thread(()->{
            int i = 0;
            while (true){
                i++;
                if(i > 5){
                    break;
                }
                try {
                    System.out.println(Thread.currentThread().getName() + "休眠");
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
        System.out.println("主线程结束");
    }
  • 下面代码可能的执行结果
    public static void main(String[] args) {
        int i = 0;
        try{
            int j = 0 / 0;
            i = 1;
        }catch (Exception e){
            System.out.println("i=" + i);
        }
    }
  • 当显示的执行System.gc()时那一刻发生了什么
    public static void main(String[] args) {
        System.gc();
    }
  • 当一个足够大的对象创建时和一个小的对象相比有什么区别。
  • 对于JVM来说是否是内存越大越好,当内存扩充了之后,虚拟机参数应当做出哪些调整。
  • 什么时候会发生内存泄漏,如果要做缓存,应该如何避免占用内存过大而导致OOM。
  • 当看到一段代码之后,是否能够很清晰的清楚其在JVM中数据的存放位置以及代码的执行过程。
  • 当写多线程处理的时候,是否会感觉处处都需要加锁,内心慌得一批。
  • Tomcat是通过.bat或者.sh中调用bootstrap.java的main方法起来的,对于一个Tomcat中的多个应用来说,它们同属于一个JVM,那么引入相同的jar包,为什么jar包之间不冲突?
  • OSGI技术主要是在玩的哪一块?
    .......................太多了,就不一一列举了,当你深入的了解了JVM之后,你会感觉如同手持一把98K,基本指哪儿打哪儿。
    本片文章是这个系列的引言部分,希望大家能陪我一起学习整个JVM系列,如果内容有误,请留言或者私信,我会做出调整。

Stay hungry,stay foolish.

相关文章

  • 遇见JVM系列⭐️人生若只如初见

    人生若只如初见,何必悲风秋画扇。不知道你是何时第一次与JVM相识,也许是在大学的课本里,也许是一场有点懵逼的面试,...

  • 人生若只如,初见

    看图写诗 人生若只如,初见 文/爱乐 人生若只如,初见 你的花瓣,...

  • 灵魂的刺猬 :人生若只如初见(外一首)‖ 宁古塔作家

    人生若只如初见(外一首) 作者 / 灵魂的刺猬 人生若只如初见 遇见的不一定相见 相见的不一定遇见 只如初见若人生...

  • 喜欢的文章45

    人生若只如初见,但人生若只如初见 李会莹 2014-11-29 00:34:56 人生若只如初见,如星般灿烂。 人...

  • 人生若只如初见

    702、人生若只如初见,我跟你什么愁什么怨。——是俊 703、人生若只如初见,说了再见别再见。 704、人生若只如...

  • 《人生若只初相见》

    “人生若只如初见,何事西风悲画扇” ——题记 人生若只如初见。初见时,翩若惊鸿,婉如游龙,如蝶舞般曼妙轻盈,似夏花...

  • 人生若只如“初见”

    在现实社会上,每个人都力图给别人留下良好的“第一印象"…… 那你是选择听信“相由心生”,还是觉得“日久见人心”?看...

  • 人生若只如,初见

    关于爱情,有太多美丽的谎言。 我们都在自欺和欺人中坚信天荒地老,海枯石烂,我们以为心诚则灵,真情不变。却独独忘记了...

  • 人生若只如——初见

    人生若只如——初见 叶子 岁月摧折 是一道看不见的篱笆 留给我们青春飞扬 还有无奈 还有感伤 当白浪翻涌 海面上鸥...

  • 《末爱》

    人生若只如初见, 怀念似明月当空! 人生若只如情深, 离别当肝肠寸断! 人生若只如真爱, 舍身该义无反顾…… 人生...

网友评论

      本文标题:遇见JVM系列⭐️人生若只如初见

      本文链接:https://www.haomeiwen.com/subject/ouxwaqtx.html