jvm
2020年12月9日,Eclipse Vert.x 发布了4.0版本,这是一个重大的版本。原本说好的2019年底的发布,终于在这个年底兑现了,虽然晚了一年但依然很香,好饭不怕晚不是吗? Eclipse Vert.x 是一个用于在 JVM 上构建响应式应用程序的工具包。根据官方描述,Eclipse Vert.x 是事件驱动和非阻塞的
之前一直是做Android开发,从开始接触Android开发到现在已经过去8年了,对于一个普通的程序员,也到了给自己提升的时候了,前段时间本来准备去学习下JVM,了解Java虚拟机的运行原理,但开始入门的时候,发现这是一件很枯燥的事情,直到我遇到了Golang,我感觉我可以从底层开始学习一门新兴的语言,站在另一个角度看到Java,于是有了这篇文章,希望自己能坚持的学下去。 Golang的历史就不必说了,是一个很有背景和前景语言,在后面的学习和开发过程中如果有机会,我会做一些Golang和Java的比较。 可能很多人学习语言的开始都是hello world!,下面奉上一段代码结束开篇
它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致
Java编译程序将java源程序编译成jvm可执行代码–java字节码. 当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。 Java编译过程: Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性
以下几道题目比较初级,是必须要掌握的多线程基础面试题。 创建线程有几种不同的方式?你喜欢哪一种?为什么? 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口
配置 APM Insight 告警以在您的监视器进入故障的状态时收到通知。可以为平均响应时间、错误计数和异常计数配置阈值。 这些告警可以在应用程序级别配置,不能为实例单独配置
Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于Intellij,作为一个该平台的插件
java中的final有最终的、无法改变的意思。final可以修饰非抽象类,非抽象类成员方法和变量。 1.final类不能被继承,因此final类中的方法不能被重写,默认是final类型的
并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述
内存结构概述简图详细图中文版注意:方法区只有HotSpot虚拟机有,J9,JRockit都没有类加载器子系统类加载器子系统作用:类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则 JVM的架构模型Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。具体来说:这两种架构之间的区别:基于栈的指令集架构基于栈式架构的特点:设计和实现更简单,适用于资源受限的系统;避开了寄存器的分配难题:使用零地址指令方式分配指令流中的指令大部分是零