1. 通过编译工具讲.java文件编译成.class的二进制文件,通过byte流的方式保存在文件中; 2. jvm虚拟机在加载的时候通过读取对应.class文件讲二进制流读取到内存中,根据byte字节对应的指令集转换成对应的操作指令; 3. 指令有很多种,包括栈操作指令包括和局部变量交互指令、程序流 ...
分类:
编程语言 时间:
2021-06-28 20:55:52
阅读次数:
0
类的加载过程 JVM中的类加载过程分为三步: 装载: Load 链接: Link 初始化: Initialize 装载 查找并加载类的二进制数据 链接 验证: 确保加载类的正确性 准备: 为类的静态变量分配内存,将将这些静态变量初始化为默认值 解析: 将类中的符号引用转换为直接引用 之所以要有验证的 ...
分类:
编程语言 时间:
2021-06-28 20:53:57
阅读次数:
0
java三大版本 javaSE 标准版(桌面程序 控制台开发) javaME 嵌入式开发(手机 小家电) javaEE E企业级开发(web端 服务器开发) JDK JRE JVM JDK (java development kit) JRE (java runtime envirment) JVM ...
分类:
编程语言 时间:
2021-06-28 18:29:54
阅读次数:
0
参考集成模式 环境准备 基于docker 运行 spark 环境准备 docker run -it -p 8080:8080 datamechanics/spark:jvm-only-3.1-latest sh // 启动master /opt/spark/sbin/start-master.sh ...
分类:
其他好文 时间:
2021-06-25 16:43:35
阅读次数:
0
先看看两者的对比: 可以发现: 1.java中细分了阻塞,将阻塞给分成了三个不同类型的阻塞。 2.java没有区分就绪状态和运行状态。java将这两种状态合并成runnable状态。 3.还有一个容易被忽略的点:java中的IO阻塞,在java中的线程状态实际上是runnable。 jvm没有做实际 ...
分类:
编程语言 时间:
2021-06-20 18:21:02
阅读次数:
0
当有很多对象成为垃圾时,复制可以做得很好,但是复制许多生命周期长的对象时它就变得很糟(要反复复制它们)。用于新生代 标记-整理适合生命周期长对象可以做得很好(只复制一次),但是不适合短生命的对象。用于老年代 JVM 1.2 及以后版本使用 分代垃圾收集(generational garbage co ...
分类:
其他好文 时间:
2021-06-20 18:01:11
阅读次数:
0
JAVA 三大版本 JavaSE:标准版(桌面程序,控制台开发等) JavaME:嵌入式开发(手机,小家电等) 现在基本上淘汰掉 JavaEE:企业级开发(web端,服务器开发等) ★ JDK JRE JVM (JDK包含JRE包含JVM) JDK:Java Development Kit (Jav ...
分类:
编程语言 时间:
2021-06-15 18:45:50
阅读次数:
0
Java中的类大体可以分为2类,一种是隐式锁像Synchronized,是JVM级别的锁,一种是显示锁像Lock接口下的一些实现,是API级别的锁。 Synchronized synchronized使用 如果修饰的是具体对象:锁的是对象; 如果修饰的是成员方法:那锁的就是 this ; 如果修饰的 ...
分类:
编程语言 时间:
2021-06-15 18:37:56
阅读次数:
0
先对象新生代对象进行调优,后对老年代对象进行调优 ...
分类:
其他好文 时间:
2021-06-13 10:28:37
阅读次数:
0
JVM 垃圾回收算法和垃圾回收器。 一、垃圾回收的区域 栈:栈中的生命周期是跟随线程,所以一般不需要关注。 堆:堆中的对象是垃圾回收的重点。 方法区:这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点。 二、怎么判断对象的存活 一般有两种方式(引用计数法、可达性分析),JVM使用的 ...
分类:
编程语言 时间:
2021-06-13 10:10:08
阅读次数:
0