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虚拟机栈
面试 JVM 八股文五问五答第二期
(JVM内存布局)
虚拟机栈
和本地方法栈的区别?Java
虚拟机栈
存储Java方法的调用帧,而本地方法栈则存储Native方法的调用帧。2.堆中年轻代和老年代的垃圾回放算法?
程序员小白条
·
2023-12-17 07:36
面试八股文系列
面试
jvm
职场和发展
java
八股文
JVM运行内存
大话前端:
深入理解Java
Script的内存回收与性能优化
深入理解Java
Script的内存回收与性能优化引言在前端开发领域,优化JavaScript的性能和内存管理是提升应用性能的关键。类似于仓库管理员精心管理库存空间,开发者需要精确控制代码的内存使用。
王蛟(宗佑)
·
2023-12-17 03:11
前端
javascript
性能优化
深入理解Java
虚拟机 第二章 Java运行时数据区域
虚拟机栈
、本地方法栈和程序计数器是线程私有的内存。2.2.1程序计数器程序计数器(ProgramCounterRegister)是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。
baiiu
·
2023-12-17 03:08
dalvik/art虚拟机
多线程
java
虚拟机
深入理解java虚拟机
深入理解Java
虚拟机 第七章 虚拟机类加载时机与过程
虚拟机类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类在虚拟机中的生命周期包括(其中验证、准备、解析3个部分称为连接。加载(Loading)验证(Verification)连接(Linking)----准备(Preparation)解析(Resolution)初始化(Initialization)使用(U
baiiu
·
2023-12-17 03:38
dalvik/art虚拟机
多线程
java
虚拟机
深入理解java虚拟机
深入理解Java
虚拟机 第七章 虚拟机类加载器
7.4类加载器类加载阶段中通过一个类的全限定名来获取描述此类的二进制字节流这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块成为类加载器。1.类与类加载器对于任何一个类,都需要由它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。每一个类加载器,都拥有一个独立的类名称空间。即比较两个类是否相等,只有在这两个类是由同一个类加载器加载的前
baiiu
·
2023-12-17 03:38
dalvik/art虚拟机
多线程
java
虚拟机
深入理解java虚拟机
JVM和性能优化
每个时刻正在执行的当前方法就是
虚拟机栈
顶的栈桢。方法的执行就对应着栈帧在
虚拟机栈
中入栈和出栈的过程
李飞_fd28
·
2023-12-17 01:04
JVM的内存分区以及垃圾收集
1.2
虚拟机栈
虚拟机栈
也就是我们平时说的栈内存,它是为java方法服务的。每个方法在执行的时候都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接和方法出口等信息。
春日部小学森
·
2023-12-16 22:05
jvm
java
开发语言
第2章Java内存区域与内存溢出异常
运行时数据区域程序计数器是一块较小的内存空间,他可以看做是当前线程所执行字节码的行号指示器线程私有没有规定任何OutOfMemoryError情况的区域Java
虚拟机栈
线程私有,每个方法执行时都会同步创建一个栈帧描述的是
后会有7
·
2023-12-16 21:31
深入理解Java
虚拟机---类加载机制
类加载机制什么是类加载机制类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证准备解析初始化类加载器双亲委派模型什么是类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍
kk变色龙13
·
2023-12-16 20:50
java
jvm
开发语言
深入理解Java
虚拟机---对象的创建和内存异常溢出
深入理解Java
虚拟机---对象的创建和内存异常溢出对象的创建对象内存布局对象的访问定位内存溢出Java堆溢出
虚拟机栈
和本地方法栈溢出方法区和运行时常量池溢出本地直接内存溢出对象的创建Step1:虚拟机遇到一条
kk变色龙13
·
2023-12-16 20:20
java
jvm
开发语言
深入理解Java
虚拟机---线程安全与锁优化
线程安全与锁优化线程安全的实现方法1.互斥同步2.非阻塞同步3.无同步方案锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁线程安全的实现方法1.互斥同步互斥同步是一种最常见也是最主要的并发正确性保障手段。同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一条线程使用。而互斥是实现同步的一种手段,临界区(CriticalSection)、互斥量(Mutex)和信号量(Semapho
kk变色龙13
·
2023-12-16 20:20
java
安全
开发语言
【JVM从入门到实战】(七)运行时数据区的组成
《Java虚拟机规范》中规定了每一部分的作用线程不共享:程序计数器、
虚拟机栈
、本地方法栈线程共享:方法区,堆1.程序计数器(ProgramCounterRegister)程序计数器也叫PC寄存器,每个线程会通过程序计数器记录当前要执行的的字节码指令的地址
小星星*
·
2023-12-16 17:33
Java
jvm
python
开发语言
深入理解Java
中的I/O模型:超市购物给你的灵感
你是否曾在超市排队结账时,想过这个过程与计算机的I/O模型有何相似之处?让我们以超市购物为例,探索一下Java中不同的I/O模型,看看它们如何影响着我们编写的代码。1.BIO(BlockingI/O):排队结账想象一下,你在超市购物后站在长长的排队队伍中,每个人一个接一个地结账。就像这样的排队结账,我们可以使用Java的ServerSocket和Socket实现一个基于BIO的简单服务器://省略
CodeArtisanX
·
2023-12-16 16:15
java
开发语言
【Java JVM】运行时数据区
根据《Java虚拟机规范》中规定,JVM所管理的内存大致包括以下几个运行时数据区域,如图所示:这个运行时数据区被分为了5大块方法区(MethodArea)堆(Heap)
虚拟机栈
(VirtualMachineStacks
lcn29
·
2023-12-16 02:50
Java
Java
JVM
【并发篇】
深入理解Java
线程池的运作原理
线程池详解首先回顾一下单个线程的创建方式1、继承Thread类这是一种比较传统的创建线程的方式。你可以创建一个类,继承自Thread类,并重写run方法来定义线程的执行逻辑。classMyThreadextendsThread{@Overridepublicvoidrun(){//线程的执行逻辑}}//创建并启动线程MyThreadthread=newMyThread();thread.start
沉梦听雨.
·
2023-12-15 19:55
Java
java
八股
JVM虚拟机系统性学习-运行时数据区(
虚拟机栈
、本地方法栈)
虚拟机栈
虚拟机栈
为每个线程所私有的,如下图:栈帧是什么?
无敌少年小旋风
·
2023-12-15 19:57
JVM
jvm
学习
JVM之堆学习
一、Java虚拟机内存结构图二、堆的介绍1.前面学习的程序计数器,
虚拟机栈
和本地方法栈都是线程私有的,堆是线程共享的;2.通过new关键字,创建的对象都会使用堆内存,其特点是:它是线程共享的,堆中对象都需要考虑线程安全的问题
太自由
·
2023-12-15 10:19
Java
jvm
学习
深入理解Java
面向对象的三大基本特性
一、继承1.概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。2.目的:实现代码的复用。3.理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,是is-a的关系,子类是父类更加详细的分类。如classdogextendsanimal,就可以理解为dogisaanimal.注意设计继承的时候,若要让某个类能继承,父类需适当开放访问权限,遵循里氏代换
sao.hk
·
2023-12-15 09:46
技术
java
actor
class
扩展
string
jvm
深入理解 Java 虚拟机(JVM)从入门到精通
目录一、JVM内存结构1、堆(Heap)(1)特点(2)堆内存分配(3)晋升到老年代的方式(4)堆内存检验方式2、
虚拟机栈
(VMStack)(1)特点(2)局部变量表(3)操作栈(4)动态连接(5)方法返回地址
一个搬砖的农民工
·
2023-12-15 01:11
JVM
java
jvm
垃圾回收
jvm调优
堆栈
【从零开始学习JVM | 第七篇】深入了解 堆回收
因此,
深入理解Java
堆回收的原理、机制和优化策略,对于Java开发人员具有重要的意义。
我是一盘牛肉
·
2023-12-14 20:34
【从零开始学习JVM】
学习
jvm
算法
过滤器
[JVM 基础 - Java 类加载机制]
这篇文章将带你
深入理解Java
类加载机制。
奥耶可乐冰
·
2023-12-14 20:02
Java
python
开发语言
java
jvm
算法
【从零开始学习JVM | 第五篇】快速了解运行时数据区
JVM运行时数据区是Java程序在运行过程中分配内存和管理数据的重要区域,它包括了方法区、堆、
虚拟机栈
、程序计数器和本地方法栈等部分。
我是一盘牛肉
·
2023-12-14 20:55
【从零开始学习JVM】
学习
jvm
java
redis
分布式
spring
浅谈jvm full gc
1、前言jvm的内存模型分为:堆、本地方法栈、
虚拟机栈
,方法区、程序计数器。其中,gc(垃圾回收)主要集中在堆,堆又划分为2个区域:新生代、老年代。
讲不出 再见
·
2023-12-14 16:25
full
gc
新生代
老年代
担保机制
深入理解Java
类加载过程
目录Java类加载机制概述1、加载(Loading)2、链接(Linking)3、初始化(Initialization)静态变量与非静态变量的赋值与初始化过程1、静态变量2、实例变量3、静态初始化块4、总结Java作为一门成熟的面向对象编程语言,在底层架构中融入了一个复杂而精妙的类加载机制。类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,负责动态加载类文件到内存中。了解类加载
一个搬砖的农民工
·
2023-12-06 17:38
JVM
java
类加载机制
静态变量
jvm
深入理解Java
中的逃逸分析
目录1.对象作用域分析2.栈上分配3.同步省略(锁消除)4.标量替换逃逸分析是一种编译器优化技术,用于确定对象的作用域和生命周期。其主要特点包括:对象作用域分析、栈上分配、同步省略和标量替换。现在将详细阐述这些特点,并以Java代码为例说明。1.对象作用域分析对象作用域分析是逃逸分析的基础,编译器通过这一过程判断一个对象是否可能被当前方法或线程之外的代码访问到。如果一个对象在方法中被创建并且其引用
一个搬砖的农民工
·
2023-12-06 14:30
JVM
jvm
逃逸分析
标量替换
栈上分配
同步消除
Java内存模型
本文主要内容出自周志明老师《
深入理解Java
虚拟机》一书,是笔者结合自己的理解,提取重点,重新组织排版后,总结的读书笔记。计算机性能摩尔定律:描述处理器晶体管数量与运行效率之间的发展关系。
未子涵
·
2023-12-05 17:46
JVM之内存区域(二)
JVM内存区域JVM内存区域主要分为线程私有区域【程序计数器、
虚拟机栈
、本地方法区】、线程共享区域【JAVA堆、方法区】、直接内存。
武昌库里写JAVA
·
2023-12-05 09:01
高手面试
jvm
JVM字节码指令表
虚拟机字节码指令表(《
深入理解Java
虚拟机》第二版)JVM指令表常量型本地变量数组变量类型将值存入变量将值存入数组将值弹出栈顶复制栈顶数值指令交换指令变量计算变量增加指定值跳转指令返回指令获值/赋值指令调用方法指令创建对象指令异常指令锁指令常量型助记符指令含义
狂奔的蜗牛已被占用
·
2023-12-05 09:33
JavaSE
JVM
指令表
深入理解Java
线程
1.线程基础知识1.1线程和进程进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源1.2上下文切换(Contextswitch)上下文切换是指CPU(中央处理单元)从一个进程或线程到另一个进程或线程的切换。上下文切换只能在内核模式下发生。内核模式是CPU的特权模式,其中只有内核运行
子墨将
·
2023-12-05 09:58
并发
java
java
linux
数据结构——栈
数据结构——栈一、理解栈1.栈的定义2.什么是Java
虚拟机栈
3.什么是栈帧二、测试Java实现栈的方法测试一测试二三、通过顺序表实现自己的栈创建一个类Stack表示栈中的情况创建一个类Test用来测试对栈的操作测试一测试二思考用什么结构实现栈最优
十七ing
·
2023-12-05 04:27
数据结构
数据结构
java
intellij-idea
深入理解Java
中继承的高级使用方案
摘要:继承是Java中的一项强大的特性,它允许子类从父类中继承属性和方法。然而,继承的高级使用方案涉及更复杂的概念和技术,可以帮助开发人员构建更加灵活、可维护和可扩展的代码。本文将深入探讨Java中继承的高级用法,包括抽象类、接口、多态、以及一些设计模式的应用。1.抽象类的应用1.1抽象方法抽象类是包含抽象方法的类,这些方法在子类中必须被实现。通过抽象方法,可以强制子类提供特定的实现。public
疯风0409
·
2023-12-05 02:19
Java
java
开发语言
深入理解Java
中抽象的高级使用
摘要:在Java编程中,抽象是一种强大的工具,它可以帮助我们构建更加灵活和可维护的代码。本文将深入探讨Java中抽象的高级使用,包括抽象类、抽象方法、接口、以及一些设计模式的应用。1.抽象类的高级应用1.1构造方法与抽象类抽象类可以有构造方法,这样在子类实例化时可以执行一些初始化操作。publicabstractclassShape{protectedStringcolor;publicShape
疯风0409
·
2023-12-05 02:19
Java
java
开发语言
深入理解Java
8中的Lambda表达式与函数式接口
摘要:Java8引入了Lambda表达式和函数式接口的概念,为Java编程带来了重要的变革。本文将深入探讨Java8中Lambda表达式的语法和用法,以及函数式接口的概念,帮助读者更好地理解和利用这一强大的编程特性。1.Lambda表达式1.1基本语法Lambda表达式是一种紧凑、简洁的语法,用于表示函数式接口(FunctionalInterface)的实例。其基本语法如下:(parameters
疯风0409
·
2023-12-05 02:48
Java
java
开发语言
《
深入理解JAVA
虚拟机》学习笔记--JAVA内存模型
Java虚拟机规范中试图定义一种Java内存模型(JavaMemoryModel,JMM)来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(MainMemory)中。每条线程还有自己的工作内存(WorkingMemory),线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝(这
木子小三金
·
2023-12-05 02:02
java中jvm虚拟机详解_
深入理解Java
虚拟机(一) -- 详解JVM内存区域
前言在周志明老师的《
深入理解Java
虚拟机:JVM高级特性和最佳实践》中有下面一段话:Java与C++之间有一堵有内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里面的人却想出来。
Hey'u
·
2023-12-05 01:50
java中jvm虚拟机详解
虚拟机设计与实现:以jvm为例 pdf_Java虚拟机:Jvm概念和原理详解以及GC机制的分析...
2.JVM栈(java
虚拟机栈
):(1)每个线程创建的同时会创建一个JVM栈帧,JVM栈中每个栈帧存放的为当前线程中局部
weixin_39842519
·
2023-12-05 01:50
虚拟机设计与实现:以jvm为例
pdf
白话说Java虚拟机原理系列【第二章】:Class字节码文件详解
Constant_Pool_Count常量池中数据的类型:字面量/符号引用常量池Constant_Pool的结构5.访问标志6.类索引/父类索引/接口索引集合7.字段表集合8.方发表集合9.属性表集合10.字节码指令前导说明:本文基于《
深入理解
上树的蜗牛儿
·
2023-12-05 01:18
Java虚拟机原理
java
jvm
开发语言
class字节码文件
面试题-JVM性能调优
目录前言JVM性能调优内存溢出错误堆溢出错误和预判堆溢出的错误
虚拟机栈
和本地方法栈溢出错误方法区(元数据区)和运行时常量池溢出直接内存区域的溢出实践案例如何正确利用大内存-高性能硬件上的程序部署策略如何排查内存溢出错误如何排查系统
java领域
·
2023-12-04 13:16
java
面试
经验分享
程序人生
分布式
深入解析JVM内存结构:Metaspace、堆与垃圾收集器
目录前言JVM内存结构方法区(Metaspace)堆(Heap)
虚拟机栈
(VMStack)本地方法栈(NativeMethodStack)PC寄存器常量池Java8中的内存结构变化Metaspace替代了永久代
有来技术
·
2023-12-04 09:44
#
Java
jvm
java
解读注解使用
一、注解:
深入理解JAVA
注解要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。
进击的三文鱼
·
2023-12-04 07:40
JVM内存结构
class文件的过程JVM分为类加载器,内存结构,执行引擎三部分一、类加载器负责加载二进制字节码文件二、方法区存储类,具体的类对象实例存储在堆中,栈中存放堆中对象的引用地址,当类对象调用方法则会在栈中调用
虚拟机栈
东大资土是冠军
·
2023-12-04 07:40
JVM
jvm
Java并发编程
线程是更小的单位,一次进程中,可能会有多个线程,可能会相互影响,各个线程有自己的程序计数器,
虚拟机栈
和本地方法栈,同时共同使用堆和方法区资源线程的生命周期和状态NEW:线程被创建出来,但是未调用start
chuyufengling
·
2023-12-03 18:50
java
开发语言
jvm
深入理解Java
虚拟机
1走近Java71.1概述71.2Java技术体系71.3Java发展史72Java内存区域与内存溢出异常82.1概述82.2运行时数据区域82.2.1程序计数器82.2.2Java
虚拟机栈
82.2.3
HelloWorld_AA
·
2023-12-03 18:02
java虚拟机
java虚拟机
Jave内存模型 与 CPU硬件架构 的交互图
如果两者一定要勉强对应起来,那么从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分,工作内存则对应于
虚拟机栈
中的部分区域。
张紫娃
·
2023-12-03 18:31
并发编程
硬件架构
JVM运行时数据区域
文章目录内存结构程序计数器(寄存器)
虚拟机栈
局部变量表两类异常状况线程运行诊断本地方法栈堆方法区运行时常量池串池(StringTable)字符串的拼接串池的位置StringTable垃圾回收StringTable
this.xxxx
·
2023-12-03 16:56
Java
jvm
python
开发语言
深入理解Java
中的锁机制
引言大家好,我是小黑。今天咱们来聊聊Java中的锁机制,这可是并发编程的核心。你知道吗,在并发编程的世界里,正确地使用锁就像是掌握了一把神奇的钥匙,它能帮咱们在多线程的混战中保持秩序,防止数据被乱改。但如果用错了,那可就是自找麻烦了。所以,这篇博客的目标就是让咱们一起深入浅出地理解Java中的锁机制,无论你是新手还是有经验的开发者,相信都能从中学到一些东西。基础知识回顾在咱们深入研究之前,让我们先
宋小黑
·
2023-12-03 13:32
java
并发
多线程
锁
深入探讨Java Stream技术:优雅、高效的数据处理
深入理解Java
Stream:优雅而强大的数据处理在Java编程世界中,数据处理是一个不可避免的任务。为了更高效、更简洁地处理数据,Java8引入了StreamAPI。
摇曳的精灵
·
2023-12-03 08:33
JAVA
java
stream
方法
map
collect
group
垃圾回收 - 小疑问
为什么需要垃圾回收在内存的动态分配和回收机制十分成熟的情况下、仍然没办法避免排查各种内存溢出、内存泄露的问题,当垃圾收集称为系统达到更高并发量的瓶颈时、就需要了解gc的细节、对gc进行必要的监控和调节程序计数器、
虚拟机栈
牛牛_735d
·
2023-12-03 06:03
JVM 常识
内存区域划分栈Java
虚拟机栈
(JavaVirtualMachineStacks):作用:存储局部变量和部分方法信息,每个方法在执行时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息
世真
·
2023-12-03 06:15
Java
jvm
Windows使用WSL编译自己的JDK
Windows使用WSL编译自己的JDK一、获取源码二、构建编译环境三、进行编译验证编译结果四、配置环境变量五、使用CLion进行调试参考资料:《
深入理解java
虚拟机》笔者使用的操作系统为windows
元元元元元yuan
·
2023-12-03 03:19
周记
windows
java
开发语言
ubuntu
jvm
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他