jvm
jvm相关文章
taco詹詹
多年互联网在线教育、电商、社区、直播、音视频等产品开发架构经验,从0到1主导多个产品线、数据中台、技术中台的建设,技术管理一身的互联网“民工”。
熟练使用java、scala、PHP、python等后端语言进行软件研发,熟悉spring生态、docker、K8S等容器、CI、CD集成工具。
熟悉大数据周边组件,Hadoop、Hive、Spark、Flink等。
熟悉离线数仓构建全流程及元数据管理、数据建模、数据治理等。
熟悉基于spark框架全流程实时数据统计及常用OLAP工具的使用等。
展开
-
JAVA IO/NIO
阻塞 IO 模型最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出 CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除 block 状态。典型的阻塞 IO 模型的例子为: data = socket.read();如果数据没有就绪,就会一直阻塞在 read 方法。非阻塞 IO 模型当用户线程发起一个 read 操作后,并不翻译 2020-07-22 12:07:27 · 158 阅读 · 0 评论 -
JVM 运行时内存 & 垃圾回收与算法
Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、 From Survivor 来自幸存者 区和 To Survivor 幸存者区)和老年代。新生代是用来存放新生的对象。一般占据堆的 1/3空间。由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、 ServivorFrom、 ServivorTo 三个区。Eden 区Java新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代)。当 Eden区内存不够的时候就会触.原创 2020-07-22 11:48:19 · 134 阅读 · 0 评论 -
jvm内存区域详解
程序计数器(线程私有)一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“ 线程私有” 的内存。正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址) 。如果还是 Native 方法,则为空。这个内存区域是唯一一个在虚拟机中没有规定任何 OutOfMemoryError 情况的区域。虚拟机栈(线程私有)是描述 java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧( Stack Frame)用于存原创 2020-07-22 11:25:02 · 112 阅读 · 0 评论 -
JVM原理、线程、JVM内存区域
(1) 基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。 JVM 是运行在操作系统之上的,它与硬件没有直接的交互。(2) 运行过程:我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:① Java 源文件—->编译器—->字节码文件② 字节码文件—->J原创 2020-07-22 11:08:59 · 134 阅读 · 0 评论