E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【深入Java虚拟机】
《
深入Java虚拟机
学习笔记》- 第9章 垃圾收集
一、Java内存组成 组成图 堆(Heap) 运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。 组成 组成 详解 Young Generation 即图中的Eden + From Space + To Space 1.Eden存放新生的对象 2.Survi
·
2015-10-28 08:13
JAVA虚拟机
《
深入Java虚拟机
学习笔记》- 第5章 Java虚拟机
一、JVM的生命周期 当启动一个Java程序时,一个Java虚拟机实例就诞生了;当该程序关闭退出时,这个Java虚拟机也就随之消亡; JVM实例通过调用某个初始类的main方法来运行一个Java程序;这个main方法必须是public、static的,而且返回值必须是void;任何一个拥有这样的main方法的类都可以作为Java程序运行的起点; Java程序初始类中的main方法,
·
2015-10-28 08:12
JAVA虚拟机
《
深入Java虚拟机
学习笔记》- 第3章 安全
3.1为什么需要安全性 Java的安全模型是其多个重要结构特点之一,它使Java成为适于网络环境的技术。因为网络提供了一条攻击连人的计算机的潜在途径,因此安全性是非常重要的。Java安全模型侧重于保护终端用户免受从网络下载的、来自不可靠来源的、恶意程序(以及善意程序中的bug)的侵犯。为了达到这个目的,Java提供了一个用户可配置的“沙箱”,在沙箱中可以放置不可靠的J
·
2015-10-28 08:11
JAVA虚拟机
clinit和init
今天在看
深入Java虚拟机
的class文件结构时,看到了这么一句话, 可能出现在class文件中的两种编译器产生的方法是:实例初始化方法(名为<init>)和类与接口初始化方法(名为<
·
2015-10-28 08:42
init
《
深入Java虚拟机
》笔记:指令集
指令 含义 iconst_m1 把int型常量-1压入栈中 iconst_0 把int型常量压入栈中 fconst_1 把float型常量1压入栈中 lconst_2 把long型常量2压入栈中 dconst_3 把double型常量3压入栈中 bipush byte1 把byte1转换成int型压入栈中 sipush byte1,byte2 把byte1,byte2
·
2015-10-27 15:20
JAVA虚拟机
JVM的即时编译器JIT之简单介绍
JVM的即时编译器JIT之简单介绍 注:本文源于
深入JAVA虚拟机
一书,提取部分骨干内容,算是读书笔记吧。 问题: 为何JVM需要使用解释器和编译器并存的架构?
·
2015-10-21 11:26
jvm
深入java虚拟机
之类的静态代码块执行时机
public class Test { public static void main(String[] args) throws ClassNotFoundException { // System.out.println(Class.forName("java.lang.String").getClassLoader()); // System.out.println(Cl
cjun1990
·
2015-09-30 11:00
我的阅读清单
EffectiveJava第2版Java核心技术I-基础知识第8版Java核心技术II-高级特性第8版java编程思想第3版java编程思想第4版深入理解Java虚拟机:JVM高级特性与最佳实践第1版
深入
mhmyqn
·
2015-09-15 21:00
如何阅读Java源码 阅读java的真实体会
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《CoreJava》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
u011009161
·
2015-09-10 23:00
java
源码
阅读
深入Java虚拟机
视频教程(圣思堂)--学习笔记
这个视频叫
深入java虚拟机
比较扯,应该叫java类ClassLoader深入讲解视频。
u010075335
·
2015-09-07 09:00
java
ClassLoader
Java学习源代码学习
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《CoreJava》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
dongfengkuayue
·
2015-08-24 15:00
如何阅读Java源码 阅读java的真实体会
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
lixuguang
·
2015-08-01 16:00
java源码
Java编程之路相关书籍(三个维度)
一、关于Java的技术学习,可以按照下面分三个维度进行学习:(1)向下发展,也就是底层的方向建议看《
深入Java虚拟机
》、《Java虚拟机规范》、《ThinkinginJava》等,其实中英文都可以,除非你是专注于底层的开发
u013142781
·
2015-07-24 10:00
java
学习
书籍
如何学习java源码
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《CoreJava》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
nwpumaster
·
2015-07-22 14:37
J2EE
探讨
深入Java虚拟机
之内存优化
上一篇我们讲述了Java虚拟机的体系结构和内存模型,那么我们就不得不说到内存泄露。大家都知道,Java是从C++的基础上发展而来的,而C++程序的很大的一个问题就是内存泄露难以解决,尽管Java的JVM有一套自己的垃圾回收机制来回收内存,在大多数的情况下并不需要java程序开发人员操太多的心,但也是存在泄露问题的,只是比C++小一点。比如说,程序中存在被引用但无用的对象:程序引用了该对象,但后续不
tanzhouxueyuan
·
2015-06-06 15:54
JAVA
C++
虚拟机
JAVA基础教程
探讨
深入Java虚拟机
之内存优化
上一篇我们讲述了Java虚拟机的体系结构和内存模型,那么我们就不得不说到内存泄露。大家都知道,Java是从C++的基础上发展而来的,而C++程序的很大的一个问题就是内存泄露难以解决,尽管Java的JVM有一套自己的垃圾回收机制来回收内存,在大多数的情况下并不需要java程序开发人员操太多的心,但也是存在泄露问题的,只是比C++小一点。比如说,程序中存在被引用但无用的对象:程序引用了该对象,但
tanzhouxueyuan
·
2015-06-06 15:54
java
C++
虚拟机
内存优化
探讨
深入Java虚拟机
之内存优化
上一篇我们讲述了Java虚拟机的体系结构和内存模型,那么我们就不得不说到内存泄露。大家都知道,Java是从C++的基础上发展而来的,而C++程序的很大的一个问题就是内存泄露难以解决,尽管Java的JVM有一套自己的垃圾回收机制来回收内存,在大多数的情况下并不需要java程序开发人员操太多的心,但也是存在泄露问题的,只是比C++小一点。比如说,程序中存在被引用但无用的对象:程序引用了该对象,但
tanzhouxueyuan
·
2015-06-06 15:54
java
C++
虚拟机
内存优化
深入java虚拟机
阅读笔记(jvm内存原理、异常处理部分)
深入理解Java虚拟机:JVM高级特性与最佳实践阅读笔记(内存原理、异常处理):1. Jvm运行时,内存划分如图所示: 2. 程序计数器: Jvm将这个计数看作当前线程执行某条字节码的行数,会根据计数器的值来选取需要执行的操作语句。这个属于线程私有,不可共享,如果共享会导致计数混乱,无法准确的执行当前线程需要执行的语句。 该区域不会出现任何OutOfMemoryEr
jonathan_loda
·
2015-06-04 17:00
java
jvm
虚拟机
内存
原理
垃圾回收算法
深入Java虚拟机
——JVM内存详解
在C++中,程序员拥有每一个对象的所有权,但与此同时还肩负着释放对象内存空间的责任;而Java由于有了虚拟机的帮助,程序员拥有对象的所有权的同时不再需要释放对象的内存空间。由于是JVM自动进行对象内存的释放,所以内存泄漏和内存溢出的问题也很少出现。Java虚拟机在运行时将内存空间分成5个部分,分别是:方法区、虚拟机栈、本地方法栈、堆、程序计数器。程序计数器本质程序计数器本质上是一块较小的内存空间。
u010425776
·
2015-05-15 18:00
java
虚拟机
方法
内存
内存泄漏
深入Java虚拟机
——JVM内存详解
在C++中,程序员拥有每一个对象的所有权,但与此同时还肩负着释放对象内存空间的责任;而Java由于有了虚拟机的帮助,程序员拥有对象的所有权的同时不再需要释放对象的内存空间。由于是JVM自动进行对象内存的释放,所以内存泄漏和内存溢出的问题也很少出现。Java虚拟机在运行时将内存空间分成5个部分,分别是:方法区、虚拟机栈、本地方法栈、堆、程序计数器。程序计数器本质程序计数器本质上是一块较小的内存空间。
u010425776
·
2015-05-12 22:00
java
虚拟机
方法
内存
内存泄漏
Java源码阅读的真实体会
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《CoreJava》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
蜀山下的鱼
·
2015-04-29 00:00
java
java
java
源代码
阅读
变量初始化的面试题总结
(参见
深入java虚拟机
)。所以变量初始
zhb8015
·
2015-04-14 12:00
变量初始化
Java源码阅读的真实体会
说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《CoreJava》,你是很难从中吸收到营养的,特别是《
深入Java虚拟机
》这类书,别人觉得好,未必适合现在的你
lsx991947534
·
2015-04-13 00:00
JVM 之 OopMap 和 RememberedSet
阅读更多前几天看周志明的《
深入Java虚拟机
》,感觉对OopMap和RememberedSet的介绍,看起来不太容易理解清楚。今天查了一些资料,并结合自己的一些猜想,把对这两种数据结构的理解写出来。
dsxwjhf
·
2015-04-12 17:00
JVM
OopMap
RememberedSet
准确式
GC
java int short long float double 类型描述以及原子性说明
“
深入java虚拟机
”中提到,int等不大于32位的基本类型的操作都是原子操作,但是某些jvm对long和double类型的操作并不是原子操作,这样就会造成错误数据的出现。错误数据出现
马万明
·
2015-04-08 22:41
JAVA语言
深入java虚拟机
——类加载器
阅读更多类加载器完全可以说是是Java语言的一个创新,也是Java语言流行的重要原因之一。它使得Java类可以被动态加载到Java虚拟机中并执行。Java虚拟机使用Java类的方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节码(.class文件)。类加载器负责读取Java字节码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一
yucang52555
·
2015-03-23 21:00
java
虚拟机
类加载
classloader
堆栈
深入java虚拟机
——类加载器
类加载器完全可以说是是Java语言的一个创新,也是Java语言流行的重要原因之一。它使得Java类可以被动态加载到Java虚拟机中并执行。 Java虚拟机使用Java类的方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节码(.class文件)。类加载器负责读取Java字节码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一
yucang52555
·
2015-03-23 21:00
java
虚拟机
ClassLoader
堆栈
类加载
深入java虚拟机
——类加载器
阅读更多类加载器完全可以说是是Java语言的一个创新,也是Java语言流行的重要原因之一。它使得Java类可以被动态加载到Java虚拟机中并执行。Java虚拟机使用Java类的方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节码(.class文件)。类加载器负责读取Java字节码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一
yucang52555
·
2015-03-23 21:00
java
虚拟机
类加载
classloader
堆栈
深入java虚拟机
——体系结构
当Java虚拟机运行一个程序时,它需要内存来存储多个东西、例如,字节码、从已装载的class文件中得到的其他信息、对象、方法参数、返回值、局部变量以及运算的中间结果等等,Java虚拟机把这些东西组织到几个"运行时数据区"中,以便于管理。 先贴一下结构图: 某些运行时数据区是由程序中所有线程共享的,还有一些则只能由一个线程拥有,每个Java虚拟机实例都有一个方法区以及一个
yucang52555
·
2015-03-22 18:00
jvm
虚拟机
管理
堆栈
体系结构
深入java虚拟机
——体系结构
阅读更多当Java虚拟机运行一个程序时,它需要内存来存储多个东西、例如,字节码、从已装载的class文件中得到的其他信息、对象、方法参数、返回值、局部变量以及运算的中间结果等等,Java虚拟机把这些东西组织到几个"运行时数据区"中,以便于管理。先贴一下结构图:某些运行时数据区是由程序中所有线程共享的,还有一些则只能由一个线程拥有,每个Java虚拟机实例都有一个方法区以及一个堆,它们是由该虚拟机实例
yucang52555
·
2015-03-22 18:00
jvm
虚拟机
体系结构
堆栈
管理
深入java虚拟机
——生命周期
java虚拟机的存在就是为了一个任务——执行java程序。程序开始是他运行,结束时他停止。对应的,需要指出,在一台机器上运行了三个程序的话,就会有三个运行中的虚拟机(曾经一度错误的理解过)。 java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(p
yucang52555
·
2015-03-22 14:00
java
jvm
虚拟机
生命周期
类加载器
深入java虚拟机
——生命周期
阅读更多java虚拟机的存在就是为了一个任务——执行java程序。程序开始是他运行,结束时他停止。对应的,需要指出,在一台机器上运行了三个程序的话,就会有三个运行中的虚拟机(曾经一度错误的理解过)。java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数
yucang52555
·
2015-03-22 14:00
java
生命周期
类加载器
虚拟机
jvm
深入java虚拟机
——生命周期
阅读更多java虚拟机的存在就是为了一个任务——执行java程序。程序开始是他运行,结束时他停止。对应的,需要指出,在一台机器上运行了三个程序的话,就会有三个运行中的虚拟机(曾经一度错误的理解过)。java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数
yucang52555
·
2015-03-22 14:00
java
生命周期
类加载器
虚拟机
jvm
深入java虚拟机
---Java内存区域与内存溢出
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数器(Program Counter Register) 一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,
linghu_java
·
2015-03-16 09:00
深入java虚拟机
系列之JMM布局篇(一)
Sun(Oracle)发起了Coin子项目来统一处理对java语法的细节修改,如二进制数的原生支持、在switch语句中支持字符串、”<>”操作符、异常处理的改进、简化变长参数方法调用、面向资源的try-catch-finally语句等都是在Coin项目之中提交的内容。另外,JSR-335中定义的Lambda表达式也将对java的语法和语言习惯产生很大的影响,函数式编程可能会成为主流。JDK7源码
a123456054zd10
·
2015-02-14 13:52
深入java虚拟机
系列之JMM布局篇(一)
Sun(Oracle)发起了Coin子项目来统一处理对java语法的细节修改,如二进制数的原生支持、在switch语句中支持字符串、”<>”操作符、异常处理的改进、简化变长参数方法调用、面向资源的try-catch-finally语句等都是在Coin项目之中提交的内容。另外,JSR-335中定义的Lambda表达式也将对java的语法和语言习惯产生很大的影响,函数式编程可能会成为主流。JDK7源码
四季的花开都有时
·
2015-02-14 13:00
java
虚拟机
【
深入Java虚拟机
】之四:类加载机制
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17881581类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶
HUXU981598436
·
2015-01-29 18:00
【
深入Java虚拟机
】之三:类初始化
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17845821 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需
HUXU981598436
·
2015-01-29 18:00
【
深入Java虚拟机
】之二:Class类文件结构
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Clas
HUXU981598436
·
2015-01-29 18:00
【
深入Java虚拟机
】之一:Java内存区域与内存溢出
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17565503内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数
HUXU981598436
·
2015-01-29 18:00
12月份工作总结暨2014年度总结
12月份自己干什么,现在回想起来,发生在上个月的事却感觉记忆很空白,零零碎碎,东忙西忙,不知道自己在干些什么,能记得的就是在广州出了一次差,然后看了点java方面的书,有一本叫编写高质量代码,还有一本叫
深入
HarderXin
·
2015-01-15 11:00
深入Java虚拟机
:JVM中的Stack和Heap
注:本文来自老杨博客,收集只为学习之用,权作笔记,请注重个人知识成果,阅读原文地址:http://www.cnblogs.com/laoyangHJ/archive/2011/08/17/gc-Stack.html在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。一
anddyhua
·
2015-01-12 19:00
与
的区别
今天在看
深入Java虚拟机
的class文件结构时,看到了这么一句话,可能出现在class文件中的两种编译器产生的方法是:实例初始化方法(名为)和类与接口初始化方法(名为)。 这两种方法有什么区别呢?
linghu323
·
2014-11-25 23:00
jvm
java体系结构
记得去支付宝的一次面试中对java体系结构回答得都不是很清楚,最近在读
深入java虚拟机
这本书,把书的一些知识点在这里记录一下。
spring5365
·
2014-11-20 09:00
java
深入java虚拟机
方法调用指令
阅读更多1方法调用指令2实例方法,类方法调用实例方法时,虚拟机从所调用方法栈内的操作数栈中弹出objectref和args,虚拟机把objectref作为局部变量0放到新的栈中,把所有args作为变量1,2,。。。等处理,objectref是隐式传给所有实例方法的this指针调用类方法时,虚拟机只从所调用方法栈桢中的操作数栈中弹出参数,并将它们放到新的栈桢中作为局部变量0,1,2。。。例1实例方法
abc08010051
·
2014-11-17 16:00
深入java虚拟机
方法调用
深入java虚拟机
方法调用指令
阅读更多1方法调用指令2实例方法,类方法调用实例方法时,虚拟机从所调用方法栈内的操作数栈中弹出objectref和args,虚拟机把objectref作为局部变量0放到新的栈中,把所有args作为变量1,2,。。。等处理,objectref是隐式传给所有实例方法的this指针调用类方法时,虚拟机只从所调用方法栈桢中的操作数栈中弹出参数,并将它们放到新的栈桢中作为局部变量0,1,2。。。例1实例方法
abc08010051
·
2014-11-17 16:00
深入java虚拟机
方法调用
深入java虚拟机
方法调用指令
1方法调用指令 2实例方法,类方法 调用实例方法时,虚拟机从所调用方法栈内的操作数栈中弹出objectref和args,虚拟机把objectref作为局部变量0放到新的栈中,把所有args作为变量1,2,。。。等处理,objectref是隐式传给所有实例方法的this指针 调用类方法时,虚拟机只从所调用方法栈桢中的操作数栈中弹出参数,并将它们放到新的栈桢中作为局部变量0,1,2。。。
abc08010051
·
2014-11-17 16:00
方法调用
深入java虚拟机
深入java虚拟机
finally,return问题
下面我们就结合《
深入java虚拟机
》第18章finally子语句和例子对应的字节码来探讨一下这个问题 看此篇文章之前可以看看前面一篇文章描述finally字节码:http://abc08010051.
abc08010051
·
2014-11-14 17:00
return
finally
深入java虚拟机
深入java虚拟机
异常,异常表, finally
每个异常表入口包含四个信息: 下面一个小例子: publicclassGreetDemo{ publicstaticvoidmain(String[]args){ GreetDemogd=newGreetDemo(); gd.testException(); } publicvoidtestException(){ try{ System.out.println("hi
abc08010051
·
2014-11-12 17:00
jvm
异常
finally
深入jvm
异常表
JVM GC 再深入一点
这篇文章写的不错,大多来自于
深入java虚拟机
,确实比很多文章都深入一点,直接拷贝吧。
yinwufeng
·
2014-11-10 18:00
jvm
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他