一、开始 打算从静态代码开始说起。重点还是后面动态的过程 从问题出发,为什么可以实现“一次编写,到处运行”? 答案:平台/语言无关的字节码编译结果(.class文件)+虚拟机 四、Java对象的一生 首先,西红柿炒鸡蛋的一生? 1. 看菜谱,把需要的食材放到一起(加载) 2. 看下食材有没有坏掉的? ...
分类:
编程语言 时间:
2020-07-26 15:17:26
阅读次数:
57
Java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平 ...
分类:
编程语言 时间:
2020-07-24 22:01:52
阅读次数:
78
[上一篇文章](http://blog.dongxishaonian.tech/?p=824)主要介绍了Quarkus以及给Quarkus提供“神力”的Java虚拟机GraalVM,并演示了如何安装GraalVM以及Quarkus的初步用法。本文将主要指向Quarkus的“亮点”——本地化应用程序。 ...
分类:
编程语言 时间:
2020-07-24 13:27:57
阅读次数:
82
1.概述 为什么虚拟机要进行垃圾回收? 因为Java虚拟机中的内存是有限的,在程序运行中无时无刻不在创建对象,消耗内存,如果不对内存进行回收,就无法解决内存不足的问题,自然程序无法运行持久。 如今内存动态分配与内存回收技术相当成熟,为什么还要了解它? 因为即使内存动态分配和内存回收技术在怎么成熟,也 ...
分类:
其他好文 时间:
2020-07-24 09:32:03
阅读次数:
68
Java运行时数据区: 主要分为线程共享部分和线程独占部分两个部分 线程共享部分: 所有线程都能访问的内存区域,随着虚拟机或者GC而创建和销毁,主要分为方法区和堆内存 方法区: JVM用来存储加载的类信息,常量,静态变量,编译后的代码等数据 方法区在java虚拟机规范中是一个逻辑区划,不同虚拟机的实 ...
分类:
编程语言 时间:
2020-07-23 22:25:11
阅读次数:
85
Kotlin 教程 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。 Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。 在Google ...
分类:
其他好文 时间:
2020-07-23 16:09:42
阅读次数:
77
1.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能实现的。java虚拟机包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具 ...
分类:
其他好文 时间:
2020-07-23 01:54:16
阅读次数:
111
1、运行时数据区域 1.1、程序计数器 一块较小的内存,它可以看作是当前线程所执行的字节码的行号指示器。 线程独有 唯一一个没有规定OutOfMemoryError情况的区域 1.2、Java虚拟机栈 线程私有,生命周期与线程相同 每个方法被执行的时候都会创建一个栈帧,方法的开始到结束对应了栈帧的入 ...
分类:
其他好文 时间:
2020-07-22 02:07:10
阅读次数:
65
线程和进程的区别? 进程: 是程序得一次之星过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序就是从一个进程的创建开始,到进程的结束的过程。 在java中当我们的main函数运行时就是启动了一个JVM进程,而main函数所在的线程就是进程中的一个线程,也称为主线程。 线程: 是比进程 ...
分类:
编程语言 时间:
2020-07-22 01:51:16
阅读次数:
68