jvm 原理浅谈

  jvm 包含了堆栈区、方法区等存储区域、类装载子系统以及执行引擎。

  jvm执行流程:编译(字节码)——》类装载(加入内存)——》类执行(分配内存执行)

  jvm 内存机制:堆内存(new出来的所有对象)

           栈内存(基础数据类型、形参、new对象的引用)

         静态方法区(方法代码、final常量、静态变量)

         本地方法栈

  类被装载后执行前,会进行链接即初始化,初始化一些方法,先初始化默认值,然后静态初始化函数和静态域的初始化构造方法的执行!

时间: 2024-08-22 22:10:39

jvm 原理浅谈的相关文章

SSL和TLS的技术原理浅谈

背景 程序员小明想给隔壁红写信表白,但是又不想让信件内容被其他人看见,希望只有小红才能看见信件内容,迫不及待的小明的大脑飞快运转起来. 预备基础知识 对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥.对称加密算法的特点是算法公开.计算量小.加密速度快.加密效率高.缺点是交易双方都使用同样钥匙,安全性得不到保证. 非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥.非对称加密使用一对秘钥,一个用来加密,一个用

关于JVM个人浅谈(三)

在上一篇中,大致讲述了GC回收的算法,接下来就在本篇文章里介绍一下如何去预估Java对象的大小,以便后续再优化JVM提供数据理论基础. 一个普通对象的内存大小如下: 1._mark对象头 占用8byte: 2.oop指针,默认占用4byte: 3.数据区 具体根据对象属性而定: 4.padding,内存对齐(如果不懂,可以看看计算机组成原理 这本书 大学计算机系必修之一) Java以8的倍数对齐 一个普通的数组内存大小如下: 1._mark对象头 占用8byte 2.oop指针,默认占用4byt

沙盘工作原理浅谈

最近在研究游戏多开原理时,发现多种实现多开的方法,其中一种方法:使用沙盘,引起我的注意,而且这种方法应用于实现多开可谓是小牛试刀. 沙盘实际上是一种安全软件,它可以让进程之间被逻辑隔离,在沙盘中执行的程序不实际修改或防止被修改系统的数据内容,如注册表.硬盘数据等. 以下是转载内容,是对沙盘的简单介绍: 因为有人问沙盘是什么,可能有些新人对沙盘还搞不清是什么东西,所以草草写了这篇小文,仅向新人简单介绍一下沙盘. 沙盘英文名sandbox,也叫沙箱,顾名思义可以看做是一种容器,里面所做的一切都可以推

CAS+SSO原理浅谈

http://www.cnblogs.com/yonsin/archive/2009/08/29/1556423.htmlSSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005 年开始一直兴旺不衰的 SAML . 如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 

关于JVM个人浅谈(一)

Java虚拟机是Java程序运行的基础,也是深入理解java的必备知识. 首先JVM的内存分布主要有:程序计数器,虚拟机栈,本地方法栈,Java堆,方法区.其中标红的表示相对更重要. 1)程序计数器 程序计数器是一块很小的内存,是每一块线程的私有空间,主要负责为每一个线程记录下一条需要运行的指令.如果当前线程正在执行一个Java方法,则程序计数器记录正在执行的Java字节码地址,如果电器一个线程正在执行一个Native方法,则程序计数器为空. 2)Java虚拟机栈 Java虚拟机栈是线程的私有空

php模板原理PHP模板引擎smarty模板原理浅谈

mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示. smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码.这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了. sma

java中的异常处理原理浅谈

什么是异常呢: 在现实生活中,总会有一些问题,聚焦在生活上,我们会有工作问题,比如工作不满意,工作薪水低,工作没有发展前景,那么我们会成为这是一个“问题”. 在java的世界中,那么我们相对应的是程序,那么程序也有这样或者那样的问题,那么我们成为“异常”.异常就是程序在运行时出现的不正常现象. java把异常封装成对象的描述,来高度的概括. java中Error我们无能为力.我们还是聊聊Exception Exception的分类: 1.编译时异常 必须进行捕获 2.运行时异常(也就是Runti

Tomcat原理浅谈

1.Tomcat Server的组成原理 (1)- Server 一个服务器代表整个Catalina servlet容器. (2)-Service Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获取到的客户请求. (3)-Connector 一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回给客户. Tomcat有两个典型的Connector,一个

关于JVM个人浅谈(二)

在上一章,我们了解Java虚拟机的分布以及各个部分的主要存储内容,下面将介绍GC的长用回收算法. 1.引用计数法: 引用计数法是比较古老的一种垃圾回收算法.主要实现就是当任何一个对象引用A对象的时候,则在A对象的计数器上加1,如果引用失效的时候,则将A的计数器减1,如果对象A的引用计数器为0,则回收该对象的内存空间.这种方式虽然简单,但是存在不足,就是当A对象引用B对象,B对象又引用A对象,这样,A与B对象的计数器一直都是1,产生死锁,引起内存泄漏. 2.标记-清除法 在Java堆内存中从根节点