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虚拟机栈(关于java虚拟机内存的那些事)
《
深入理解java
虚拟机》读书扩展作者:淮左白衣写于2018年4月13日16:26:51目录文章目录java虚拟机栈是什么特点栈帧局部变量表什么时候抛出`StackOverflowError`、`OutOfMemoryError
淮左白衣
·
2020-07-06 11:00
深入理解
java
虚拟机
读书笔记
深入理解Java
虚拟机
什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的解释:虚拟机是一种抽
搞IT的王蜀黍
·
2020-07-06 10:17
JVM学习
JVM中的堆
关于JVM堆的详细介绍推荐阅读《
深入理解Java
虚拟机》。我们知道对象存放到JVM堆中,更加具体是存放到堆中新生区的伊甸区。而GC也是集中在堆中,一个JVM中的堆内存的大小可以调节的。
GZ-豆浆油条
·
2020-07-06 10:49
JVM
深入理解Java
虚拟机(七)字节码执行引擎(栈帧、动态连接、方法调用)
执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。一、栈帧(StackFrame)栈帧(StackFrame)是虚拟机运行时数据区中的
_superhuihui
·
2020-07-06 09:28
Java虚拟机
读
深入理解Java
虚拟机有感
上大学期间最开始入门C语言,后来跟着学长学习C++,那时候被学长灌输了一些错误的观念,总觉得C++天下无敌,学好C++才是厉害的技术人,他们天天说,Java就是调用一下封装好的库,工作了就是增删改查。后来,机缘巧合下,觉得有必要学习一下Java,当时的考虑就是面向求职学习,最开始是跟着视频学习,跟着视频敲一些代码,因为有C++基础,所以Java这门高度面向对象的语言,学起来也不是那么吃力。之后就学
xiaoW2014
·
2020-07-06 08:38
深入理解Java
之JVM堆内存分配
Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。Java把内存分成两种:栈内存和堆内存。关于堆内存和栈内存的区别与联系。简单的来讲,堆内存用于存放由new创建的对象和数组,在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。而栈内存由使用的人
xiangzhihong8
·
2020-07-06 08:30
java
开发语言系列
内存分配
jvm
虚拟机
深入理解java
虚拟机
深入理解java
虚拟机大学里非科班生出身,在学习java的路上,有很多前辈一直力荐这本书,不管什么段位都在推荐,让我对这本神奇的书产生了浓厚的兴趣.由于基础薄弱主要挑选了书中的看上去见过的几个理论知识部分
jay_XY
·
2020-07-06 08:53
JVM详解之Java垃圾回收机制详解和调优
JVM详解之Java垃圾回收机制详解和调优转自:http://java.ccidnet.com/art/3539/20060314/476073_1.html缘起在看《
深入理解Java
虚拟机第二版》时,
xiajian2010
·
2020-07-06 08:40
JVM
经验类
java
深入理解java
三种开发模式
工厂模式简单地讲就是用工厂方法代替了new的操作,在编程时,需要定义一个工厂接口,由不同的的子类去实现,再定一个具体工厂类,定义一个产生实例的方法,我们通过这个方法来获得实例就行了.工厂模式主要是为创建对象提供了接口。工厂模式按照《Java与模式》中的提法分为三类:1.简单工厂模式(SimpleFactory)2.工厂方法模式(FactoryMethod)3.抽象工厂模式(AbstractFact
xfl4629712
·
2020-07-06 08:40
java设计模式
再有人问你Java内存模型是什么,就把这篇文章发给他。
网上有很多关于Java内存模型的文章,在《
深入理解Java
虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。
西安北大青鸟
·
2020-07-06 07:50
JVM学习笔记(一):JVM整体体系结构
话不多说,最近在看
深入理解java
虚拟机这本书,整理一下学习思路,做点笔记,权当纪念看书的美好时光。JVM是什么?
忧犹侑柚
·
2020-07-06 02:47
JVM学习
深入理解Java
中的String
一、String类想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码:publicfinalclassStringimplementsjava.io.Serializable,Comparable,CharSequence{/**Thevalueisusedforcharacterstorage.*/privatefinalcharvalue[];/**Theoffs
weixin_34117211
·
2020-07-06 00:29
深入理解Java
:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。JavaSE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement):Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口。
weixin_33895475
·
2020-07-05 23:17
深入理解Java
Script系列(4):立即调用的函数表达式
前言大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用的函数表达式”。本文
weixin_33763244
·
2020-07-05 22:05
深入理解Java
线程池:ThreadPoolExecutor
线程池介绍在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。那么有没有一
weixin_30871701
·
2020-07-05 22:23
深入理解Java
虚拟机---学习感悟以及笔记
一、为什么要学习Java虚拟机?这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器。曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理GC的,这个时候当出现这个问题的时候我就明白需要查找GCRoot,或者查看GC日志,去查找这个问题的根
weixin_30827565
·
2020-07-05 22:22
[转]
深入理解java
虚拟机 精华总结(面试)
原文http://www.cnblogs.com/prayers/p/5515245.html一、运行时数据区域31.1程序计数器31.2Java虚拟机栈31.3本地方法栈31.4Java堆31.5方法区31.6运行时常量池4二、hotspot虚拟机对象42.1对象的创建41.检查42.分配内存43.Init42.2对象的内存布局42.3对象的访问定位41.使用句柄访问42.使用直接指针访问5三、
メイ
·
2020-07-05 22:50
深入理解java
script中的立即调用的函数表达式(IIFE)
在弄清楚什么是立即调用的函数表达式(IIFE)之前,我们先了解一些函数的基本概念。函数声明、函数表达式、匿名函数函数声明:functionfunctionName(){...};使用function关键字声明一个函数,再指定一个函数名,叫函数声明。函数声明后不会立即执行,会在我们需要的时候调用到。函数表达式:vartest=function(){…};使用function关键字声明一个函数,但未给
weixin_30568591
·
2020-07-05 21:54
Java内存区域之程序计数器--《
深入理解Java
虚拟机》学习笔记及个人理解(一)
Java虚拟机程序计数器在书上的P39页程序计数器干嘛的?有了它,字节码解释器才可以知道下一条要执行的字节码指令是哪个。无论是取下一条指令还是分支、循环、跳转、中断、线程恢复,都需要这个程序计数器。程序计数器存在哪?虚拟机区别于硬件,组成原理里学的程序计数器是用CS和IP寄存器来存,来表示指令地址。而Java把程序计数器存在内存里。我好像在操作系统中也听说过程序计数器?是跟操作系统中的程序计数器有
weixin_30335575
·
2020-07-05 20:04
【
深入理解Java
原理】垃圾回收原理
内存模型相关什么时候触发GC?本文章完整内容发表在公众号:程序员开发者社区,关注后免费看内存模型相关参考:点击打开链接CMS垃圾回收器ConcurentMarkedSweep并行的标记垃圾回收器获取最短停顿的回收器,标记清除算法实现缺点是:1.对cpu资源敏感2.无法处理浮动垃圾3.有大量碎片产生六个步骤流程如下:1.初始标记初始标记会触发stoptheworld,从垃圾回收的根对象开始查找,这个
wangxiaoming
·
2020-07-05 19:41
深入理解
JVM
原理
线程安全与锁优化
摘自《
深入理解Java
虚拟机:JVM高级特性与最佳实践》(第二版)并发处理的广泛应用是使得Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。
wiljm
·
2020-07-05 18:19
《深入理解
Java
虚拟机》
《
深入理解JAVA
虚拟机》学习笔记(一)JAVA内存划分
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java虚拟机规范(JavaSE7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域1、程序计数器线程私有,当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,功能相当于机器的pc取址寄存器2、JAVA虚拟机栈线程私有,虚拟机
郭大侠写leetcode
·
2020-07-05 18:32
JAVA虚拟机
Java虚拟机--Java虚拟机栈
文章引用:1《
深入理解Java
虚拟机》2https://www.cnblogs.com/niejunlei/p/5987611.html3https://blog.csdn.net/ZhongGuoZhiChuang
可乐丶
·
2020-07-05 18:59
JAVA相关技术
深入理解JVM之Java内存区域与内存溢出异常
读了《
深入理解Java
虚拟机-JVM高级特性与最佳实践》的第二章,明白了在虚拟机中内存是如何划分的,哪部分区域、什么样的代码和操作可能导致内存溢出异常。
不贰过先生
·
2020-07-05 17:18
深入理解Java虚拟机
JVM基础知识
根据《
深入理解Java
虚拟机》可知,运行时数据区通常包括这几个部分:程序计数器(ProgramCounterRegister)、Java栈(VMStack)、本地方法栈(NativeMethodStack
禾夕
·
2020-07-05 17:47
学习笔记整理
深入理解Java
Script系列(三): 作用域链与闭包
1.作用域链1.创建时函数的[[Scope]]属性包含这个函数被定义时它所有的域对象。varname='scope1';functiontellScope(){console.log(name);//[[Scope]]=[{name:'scope1'}]}functiontestScope(){varname='scope2';tellScope();}testScope();//scope12)
沈鸿斌
·
2020-07-05 17:30
前端
《
深入理解java
虚拟机》学习笔记之虚拟机即时编译详解
郑重声明:本片博客是学习一书所记录的笔记,内容基本为书中知识.Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”,为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器,即时编译器编译性能的好坏、代码优化程度的高
伯努力不努力
·
2020-07-05 16:45
java
java中堆和栈的概念解析
本人看的概念来自于《
深入理解Java
虚拟机》这本书,这本书可谓是讲解JVM原理的一本圣经。首先,jav
易灬小侠
·
2020-07-05 15:06
Java
深入理解Java
虚拟机(类文件结构)
直到后来细读了《
深入理解Java
虚拟机》中虚拟机执行子系统的相关内容,才建立了清晰的认知。如果你也和我一样,不了解类结构和类加载,但是工作中又涉及到字节码相关内容,相信后面两篇文章会对你有
菜鸟飞不动
·
2020-07-05 15:59
产生OutOfMemoryError异常的原因
最近在看周志明的《
深入理解Java
虚拟机》,觉得还是一本不错的书。
无心人偶
·
2020-07-05 12:15
JVM
java
深入理解Java
Script MVC 框架
Model–View–Controller(MVC)是一种把信息展现逻辑和用户交互分离的计算机用户界面开发模式;Model包含应用的数据和业务逻辑;Controller负责把用户的输入,转换为命令传递给Model和View;这是维基百科的解释;这种模式最初是由TrygveReenskaug在使用Smalltalk-80(1979)工作时设计的,刚开始叫做Model-View-Controller-
slalx
·
2020-07-05 12:28
前端开发
前端架构
JVM 内存模型笔记
最近在看《
深入理解Java
虚拟机》,准备边看书、边结合一些收集的资料以及自己在工作中的实践写一系列学习和总结的笔记,本篇文章为该系列的第一篇文章。
GeorgeDon
·
2020-07-05 12:21
通过Java字节码
深入理解Java
执行过程及JVM底层结构
在读本文时,可以参考我的另外两篇介绍jvm的博客。JVM底层结构Java堆内存介绍及简单性能调优生成一个字节码文件首先我们编写一个简单的Java文件在文件夹中找到这个文件,可以看到只有一个.java文件在命令行使用Javac命令,生成.class文件使用Javap-c命令,生成字节码文件看到这个乱七八糟的代码,你可能会问,,这tm是什么鬼。下面通过JVM指令手册从Java底层对字节码进行分析字节码
drz_cs_dn
·
2020-07-05 10:12
Jvm
Java 语法糖(五): 成员内部类
参考文献https://mp.weixin.qq.com/s/xl1ibkfUc00NY8HCa_fcPg(
深入理解Java
内部类)https://www.benf.org/other/cfr/inner-class-fake-friends.htmlhttps
jyjz2008
·
2020-07-05 10:24
深入理解Java
虚拟机(三)之详拆运行时数据区的各个结构----本地方法栈
本地方法栈本地方法栈的特点为什么要使用本地方法?本地方法栈的特点我们观察JVM运行时数据域发现java有两个栈,一个本地方法栈,一个Java虚拟机栈。Java虚拟机栈用于管理Java方法的调用,本地方法栈用于管理本地方法(底层用c/c++等非Java语言写的)线程私有允许被实现成固定大小或者可动态扩展内存如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机就会抛出StackOver
是鹿鸣啊
·
2020-07-05 08:13
JVM
JVM自动内存管理机制
本文是基于周志明的《
深入理解Java
虚拟机》对从事C和C++的程序员来说,在内存管理方面,他们既是拥有最高权利的人,也是从事最基础工作的“劳动人民”。
qq_35661171
·
2020-07-05 05:08
JVM
JVM
深入理解java
编译后的字节码文件
也许你写了无数行的代码,也许你能非常溜的使用高级语言,但是你未必了解那些高级语言的执行过程。例如大行其道的Java。Java号称是一门“一次编译到处运行”的语言,但是我们对这句话的理解深度又有多少呢?从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;而我们的java虚拟机执行的就是字节码文件。不论该字节码文件来自何方,由哪种编译器编译
战血石LoveYY
·
2020-07-05 05:34
Java
战血石LoveYY的专栏
JVM内存区域解析
JVM内存区域基本结构图:《
深入理解Java
虚拟机(第二版)》中的描述是下面这个样子的:1、程序计数器:程序计数器(ProgramCounterRegister)是当前线程执行的字节码的行号指示器,存放该字节码指令的位置
zml400
·
2020-07-05 05:36
JVM
2.2 堆在整个jvm内存中的运行流程以及jvisualvm工具的使用
一.堆和GC介绍java堆的特点《
深入理解java
虚拟机》是怎么描述java堆的Java堆(JavaHeap)是java虚拟机所管理的内存中最大的一块java堆被所有线程共享的一块内存区域虚拟机启动时创建
盛开的太阳
·
2020-07-05 05:00
【
深入理解Java
虚拟机】方法调用之静态分派与动态分派
静态分派与动态分派方法调用并不等同于方法执行,方法调用的唯一任务就是确定被调用方法的版本(即调用哪个版本),暂时不涉及方法内部的具体运行过程。因为Class文件的编译过程,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行内存中的入库地址(直接引用),这个特点使得java更具有动态扩展能力。1.解析解析就是所有调用方法在Class文中都是常量池里的一个符号引用,在类加载解析
方友运
·
2020-07-05 03:37
java虚拟机
jvm的java虚拟机栈探秘
注:资料来源《
深入理解Java
虚拟机-jvm的高级特性与最佳实践》--周志明著下面重点介绍虚拟机栈VMStack:虚拟机栈描述的Java方法执行的内存模型:每个方法在执行的同
Liu_Kuny
·
2020-07-05 00:14
jvm
深入理解Java
内存模型的语义
image前言Java内存模型(JMM)给我们介绍了在当代不同的硬件架构情况下,多线程程序需要关注什么问题以及如何利用JMM来正确的处理这些问题。多线程带来的问题多线程程序主要关注两个问题:(1)共享变量可见性问题(2)代码重排序一致性问题Java内存模型的关键点JMM已经保证了as-if-serial原则,也就是Java的程序在单线程情况下,不管JIT做不做重排序,也不管代码指令在几个CPU上执
三劫散仙
·
2020-07-05 00:47
javascript设计模式读书笔记一单例模式
主要用的还是闭包的知识,以及重写构造函数,构造函数中返回值类型和引用类型的区别代码来自汤姆大叔的博客(
深入理解Java
Script系列(25):设计模式之单例模式),阅读过程中我自己加上了一些注释1.包含私有成员和方法
若邪Y
·
2020-07-04 23:19
深入理解java
反射------通过配置文件运行类中的方法
这个小案例帮助了我更深刻的理解了反射,也让我对后面框架原理有了一些新的认识,因此记录再次,希望能让更多的人看到,当然,大佬就直接跳过就好。实体类:Student.javapublicclassStudent{publicvoidlove(){System.out.println("爱生活,爱Java");}}Teacher.javapublicclassTeacher{publicvoidlove
loli_kong
·
2020-07-04 22:05
java
Java虚拟机学习资料整理
深入理解java
虚拟机第二版文字版本-带目录.PDF--下载地址链接:https://pan.baidu.com/s/1gNEo1gn4iyl48UkPpmaRyA提取码:emg6
深入理解java
虚拟机第二版极简版
lj淡然一笑
·
2020-07-04 22:44
Java
《
深入理解Java
虚拟机》读书笔记7——线程安全与锁优化
BrianGoetz对线程安全的定义:当多个线程访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调度方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。1.Java语言中的线程安全按照线程安全的“安全程度”由强至弱来排序,java里面各种操作共享的数据分为以下5类:不可变,绝对线程安全,相对线程安全,线程兼容,
零下九度
·
2020-07-04 21:10
读书笔记
Java虚拟机
深入理解Java
虚拟机笔记---运行时栈帧结构
栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(VirtualMachineStack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在编译
再见理想1992
·
2020-07-04 21:07
Java基础
JVM 程序计数器
--摘自《
深入理解Java
虚拟机》特点如果线程正在执行的是Java方法,则这个计数器记录的是正在执行的虚拟机字节码指令地址如果正在执行的是Na
猕猴桃0303
·
2020-07-04 21:08
java-虚拟机
理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么
理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么最近在看《
深入理解Java
虚拟机》弄明白了很多java的底层知识,决定分几部分总结下,从.java文件编译,到类加载机制,内存分配垃圾回收机制
hucheng91
·
2020-07-04 20:43
解密线程安全问题
线程基础->->
深入理解java
多线程1.多线程操作同一数据*多线程并发操作同一数据时,就有可能出现线程安全问题*使用同步技术可以解决这种问题,把操作数据的代码进行同步,不要多个线程一起操作例子:火车站卖票问题
Junieson
·
2020-07-04 18:29
Java
上一页
45
46
47
48
49
50
51
52
下一页
按字母分类:
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
其他