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内存区域与内存溢出1.内存分区1)程序计数器2)Java虚拟机栈3)本地方法栈4)堆区5)方法区6)常量池7)直接内存2.对象创建1)对象在内存上的分布2)对象的访问定位方式3)对象创建3.内存溢出1)堆内存溢出和内存泄露2)虚拟机栈及本地方法栈溢出3)方法区和运行时常量池溢出4)直接内存溢出二、垃圾收集器与内存分配策略1.对象是否存活1)引用计数法2)可达性算法3)引用2.垃圾回
执2017
·
2020-08-17 07:08
Java编程
深入理解Java
虚拟机----(九)程序编译和代码优化
早期优化javac把.java文件编译为class文件的这个编译过程,几乎没做什么优化,几乎将优化都放到了后端的即时编译器中,这样是为了其他非javac编译的程序也能享受到优化的待遇。但javac给我们提供了很多便于编程的语法糖,大大的方便了我们。可以说后端优化提高了运行效率,前端优化对于编码更加密切。javac编译过程可大致分3步:解析与填充符号表插入式注解处理器的注解处理分析与字节码生成:语义
end
·
2020-08-17 07:47
JVM
深入理解Java虚拟机
深入理解Java
的堆内存和线程内存
我们都知道Java对象都是在堆中创建的(开启逃逸分析的情况除外),我们也知道比如一个线程中有一段这样的代码:publicclassA{publicintxxx;}Aa=newA();会在堆中创建一个对象,并引用a指向了堆中对象的内存地址,也就是主内存中。也就是说线程中的引用指向了主内存中的对象地址,很多Java程序员甚至以为因为持有引用,所以对这个引用的赋值或者读取都是直接根据地址操作主内存的对象
杨江才
·
2020-08-17 06:40
Java
堆
线程
面试刷题10-3
感觉在Java方面如果把《
深入理解Java
虚拟机》、《
wwxy261
·
2020-08-16 22:13
算法
Java虚拟机必知必会---运行时数据区(3)--- 堆
参考:《
深入理解Java
虚拟机》《宋红康JVM教程》一、概述在介绍堆之前,简单的回顾一下运行时数据区的各个部分组成:堆是Java虚拟机所管理的最大的内存区域,由上图也可见,堆是线程共享的一个区域,在虚拟机启动时创建
四五又十
·
2020-08-16 22:26
JVM
Java虚拟机必知必会--运行时数据区(1)--- PC寄存器(程序计数器)
参考:《
深入理解Java
虚拟机第三版》《宋红康JVM教程》一、概述上两篇介绍了类加载的过程中,Java虚拟机应该要做什么工作,当类加载进Java虚拟机的内存中的时候,Java虚拟机将这些内存空间划分了几个不同的区域
四五又十
·
2020-08-16 22:26
JVM
Java虚拟机必知必会---类加载机制---双亲委派机制
参考:《
深入理解Java
虚拟机第三版》《宋红康JVM教程》前言:本文将介绍类加载器的分类,什么是双亲委派机制,这种机制有什么好处?在明白双亲委派机制的前提是要了解类加载器。
四五又十
·
2020-08-16 22:26
JVM
Java虚拟机必知必会---类加载机制--类的加载子系统
参考:《
深入理解Java
虚拟机第三版》《宋红康JVM教程》前言:JVM虚拟机运行的是字节码文件,一个.java文件通过编译变成一个.class字节码文件,.class字节码文件才是JVM虚拟机需要的文件
四五又十
·
2020-08-16 22:55
JVM
深入理解java
script原生拖放
前面的话拖放(drag-and-drop,DnD)其实是两个动作——拖和放。所以,它涉及到两个元素。一个是被拖的元素,称为拖放源;另一个是要放的目标,称为拖放目标。本文将通过拆分这两个概念来详细介绍原生拖放拖放源什么样的元素才是拖放源呢?HTML5为所有HTML元素规定了一个draggable属性,表示元素是否可以拖动图像和链接的draggable属性自动被设置成了true,而其他元素这个属性的默
weixin_33937778
·
2020-08-16 21:53
纯转一篇关于方法句柄的,对理解很多java poc帮助很大
http://book.2cto.com/201301/14119.html来源:
深入理解Java
7:核心技术与最佳实践写道方法句柄(methodhandle)是JSR292中引入的一个重要概念,它是对
wcf1987
·
2020-08-16 21:10
java
[
深入理解Java
虚拟机]第八章 字节码执行引擎-运行时栈帧结构
概述执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种
Coding-lover
·
2020-08-16 20:40
jvm
虚拟机
栈帧结构
执行引擎
2019秋招:460道Java后端面试高频题答案版【模块四:Java虚拟机】
下面介绍下我是如何学习Java虚拟机的:1、强推:周志明的《
深入理解Java
虚拟机》,这本书可以说基本上涵盖了面试的常问考点。
程序员乔戈里
·
2020-08-16 18:28
《
深入理解Java
虚拟机》学习笔记之类加载及类加载器
类加载机制:Java虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类加载的时机加载阶段合适开始,《Java虚拟机规范》并没有强制约束,交由虚拟机自己实现。而初始化阶段,严格规定有且只有以下六种情况,如果类型没有进行过初始化,必须对类进行初始化:遇到以下字节码指令:new:实例化对象的时候getstatic和putst
天乔巴夏丶
·
2020-08-16 18:12
JVM
【设计模式】
深入理解Java
的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:一.抽象类二.接口三.抽象类和接口的区别若有不正之处,请多多谅解并欢迎批评指正,不甚感激。请尊重作者劳动成果,转
keep!health
·
2020-08-16 15:28
......等级考试有关
......设计模式
《
深入理解Java
虚拟机》学习笔记
JDK:用于支持Java程序开发的最小环境,包括Java程序设计语言、Java虚拟机、JavaAPI三部分。JRE:支持Java程序运行的标准环境,包括JavaSEAPI子集和Java虚拟机。第一章Java虚拟机发展史1.SunClassic/ExactVMClassicVM:只能使用纯解释器方式来执行Java代码,如果要使用JIT编译器,必须进行外挂,而解释器与编译器不能配合工作。ExactVM
夏目川城
·
2020-08-16 09:08
深入理解Java
Script词法作用域与闭包
闭包关于闭包的定义:Aclosureisthecombinationofafunctionandthelexicalenvironmentwithinwhichthatfunctionwasdeclared.–MDNAclosureisthelocalvariablesforafunction-keptaliveafterthefunctionhasreturned.–javascriptkit词
Lay-Buddhist
·
2020-08-16 07:16
高级JavaScript
Java8内存溢出异常
多的不说最近看了周老师的
深入理解Java
虚拟机了解一点内存溢出异常知识。
蜗牛乌龟一起走
·
2020-08-16 07:17
java虚拟机
深入理解java
异常处理机制
转载地址:http://blog.csdn.net/hguisu/article/details/61556361.引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真
无法预料
·
2020-08-16 07:22
Java
Centos7 下编译 Openjdk8
本文主要介绍如何在Centos7下编译Openjdk8源码,《
深入理解java
虚拟机》第二版网上好多openjdk7的帖子,编译jdk8和7还是有些差别的,比如大家经常提到的makesanity在jdk8
angehui8702
·
2020-08-16 05:55
深入理解Java
虚拟机篇:GC垃圾回收机制总结
文章目录一、对象在内存中的状态1.三种状态2.可达性判断二、对象存活判断1.引用计数2.可达性分析三、Java引用的四种机制四、垃圾回收类型五、垃圾回收算法1.标记-清除算法(Mark-Sweep)2.复制算法3.标记-压缩算法4.分代收集算法(GenerationalCollection)★六、垃圾回收器1.串行(Serial)收集器2.parNew收集器3.ParallelScanvenge收
AthenaHe
·
2020-08-16 03:43
JVM
java
JVM吞吐量垃圾收集器
注:本文摘抄自周志明老师的《
深入理解Java
虚拟机》片段,在此表示感谢。
Forward233
·
2020-08-16 00:35
JVM
java
jvm
深入理解Java
Proxy和CGLIB动态代理原理
点击上方关注,每天进步一点点动态代理在Java中有着广泛的应用,比如SpringAOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在运行时确定的。静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性。今天我们来探讨Java中两种常见的动态代理方式:JDK原生动态代理和
weixin_34068198
·
2020-08-15 20:31
深入理解java
虚拟机 第2章(一):Java内存区域
运行时数据区域jvm将内存划分成若干个不同的数据区域,各区域各有用途,各自的创建,销毁时间。jvm运行时数据区示意图1、程序计数器较小的一块内存空间,当前线程所执行的字节码的行号指示器。java多线程是通过线程轮流切换并分配处理器的执行时间来实现,任一时刻,处理器只会执行一条线程中的指令,对于多线程之间的执行位置需要互不影响,因此每条线程需要一个对应的单独的计数器,便于处理器能正确切换到每个线程的
简单世界
·
2020-08-15 07:04
jvm学习笔记
深入理解java
虚拟机 第2章(三):OutOfMemoryError异常
出程序计数器之外,运行时数据区的几块内存区域均会出现OutOfMemoryError异常。1,java堆溢出java堆的作用是创建实例对象,分配内存。为防止内存越用越少,java使用了GC,垃圾回收机制,将内存中失效的对象内存空间进行回收,如果当java堆中充满大量对象,堆内存空间不够,则会出现OOM异常。对于该示例代码则是不断产生对象,充斥java堆,一般遇到堆内存OOM,排查方式:检查虚拟机堆
简单世界
·
2020-08-15 07:04
jvm学习笔记
再探Java抽象类与接口的设计理念差异
在以前的一篇文章初探Java抽象类与接口中谈到了他们语法的区别,在博客通过模板方法模式
深入理解Java
抽象类中写到了该如何正确使用抽象类,那么这次我就从更高的层次上——设计思想上谈谈它们的差异!
leeon_l
·
2020-08-15 04:21
Java
深入理解Java
多态性
看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类classA{publicStringshow(Dobj){return("AandD");}publicStringshow(Aobj){return("AandA");}}classBextendsA{publicStringshow(Bobj){ret
wjboy49
·
2020-08-15 04:42
java
对象序列化
本文是学习《
深入理解Java
7》的学习笔记在程序的运行过程中,活动对象的状态保存在内存中。内存中的数据是非持久化的。当虚拟机终止时,内存中对象的信息就会丢失。能够持久化保存对象数据的方式有很多。
我叫王哈哈
·
2020-08-15 03:37
java学习笔记
深入理解Java
多态性(写的太棒了)
看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类classA...{publicStringshow(Dobj)...{return("AandD");}publicStringshow(Aobj)...{return("AandA");}}classBextendsA...{publicStringsh
黎明踏浪号
·
2020-08-15 03:04
java
深入理解Java
基础类型
1、Java基础数据类型Java的基本数据类型可以分为两大类:数值类型和布尔类型。而数值类型又可以分为整型和浮点型,整型里的字符型往往也被单独对待。因此常常也把Java里的基本数据类型分为四类:a、整数类型(整型)byte:在内存中占1个字节(8位),表数范围-2^7到2^7-1(-128到127)short:在内存中占2个字节(16位),表数范围-2^15到2^15-1(-32768到32767
IdeasWorthSpreading
·
2020-08-15 03:23
深入理解Java基础
深入理解Java
多态性(转)
过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类classA...{publicStringshow(Dobj)...{return("AandD");}publicStringshow(Aobj)...{return("AandA");}}classBextendsA...{publicStringsho
tongdh
·
2020-08-15 03:25
JAVA
深入理解java
多态性
深入理解java
多态性昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类classA...
thinkGhoster
·
2020-08-15 03:50
java
overloading
c
工作
深入理解Java
的接口和抽象类[对抽象类与接口在设计模式概念上的解释]
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:一.抽象类二.接口三.抽象类和接口的区别若有不正之处,请多多谅解并欢迎批评指正,不甚感激。请尊重作者劳动成果,转
pois
·
2020-08-15 03:53
区别系列
读java源码的好处
下面结合自己读源码的体会,简单说下几点好处:1.
深入理解java
语言。
上道至简
·
2020-08-15 02:43
Java原理源码
《Thinking In Java》 VS 《Effective Java》 VS 《
深入理解Java
虚拟机》
从上个学期的暑假到现学期的11周里面,读了《ThinkingInJava》、《
深入理解Java
虚拟机》和《EffectiveJava》,感悟颇多。
J_小浩子
·
2020-08-15 02:46
Thinking
in
Java
Java虚拟机
Effective
Java
java
深入理解Java
的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abs
universe_ant
·
2020-08-15 01:05
Java
深入理解Java
的接口和抽象类
深入理解Java
的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。
E01014165
·
2020-08-15 01:03
java
深入理解java
多态性
昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类classA...{publicStringshow(Dobj)...{return("AandD");}publicStringshow(Aobj)...{return("AandA");}}classBextendsA...{publicStringshow
wrewrter
·
2020-08-15 01:57
java
深入理解Java
闭包概念
闭包又称词法闭包闭包最早定义为一种包含和的实体.解释一:闭包是引用了自由变量的函数,这个被引用的变量将和这个函数一同存在。解释二:闭包是函数和相关引用环境组成的实体。注::除了局部变量的其他变量简单理解:闭包能够将一个方法作为一个变量去存储,这个方法有能力去访问所在类的自由变量。Java中闭包实现关键点:如何用变量去存储方法?java中能够保存方法的变量指的就是普通的对象如何让这个普通对象能够访问
weixin_30656145
·
2020-08-15 00:52
《
深入理解Java
虚拟机》学习之openjdk12环境搭建
概述:《
深入理解Java
虚拟机》学习之openjdk12环境搭建前言越学习,越觉得自己无知。最近准备把年前买的《
深入理解Java
虚拟机》第三版看完,趁着有时间,深入底层去看看,努力成为一个优秀的人吧。
wing_yue
·
2020-08-14 21:24
Java线程执行native方法时程序计数器为空,如何确保native执行完后的程序执行的位置
絮叨今天在看
深入理解Java
虚拟机这本书的时候,里面有这句话,如果正在执行的是Native方法,这个计数器值为空(Ubdifined)。
小小孟啊
·
2020-08-14 21:36
JVM
Java
对JUC的学习和理解(一):Lock、生产者和消费者问题、虚假唤醒、多线程8锁
通过写售票代码回顾Synchronized和认识LockSynchronizedLocksynchorized与Lock锁的区别Synochorized的生产者和消费者问题虚假唤醒问题Lock中的生产者和消费者问题
深入理解
ClawBABE
·
2020-08-14 21:25
Java
J.U.C
几张图轻松理解String.intern()
转自:https://blog.csdn.net/soonfly/article/details/70147205在翻《
深入理解Java
虚拟机》的书时,又看到了2-7的String.intern()返回引用的测试
小猪佩奇啊
·
2020-08-14 21:47
转载
深入学习理解java虚拟机--1.win10 下构建64位 openJDK8
基于之前面试很多次被问到jvm运行原理及调优问题,以及jvm本身是技能提升不可逾越的一道坎,于是决定深入学习jvm,不久买了周志明的《
深入理解java
虚拟机--jvm高级特性与最佳实践》一书,拜读学习。
东谌
·
2020-08-14 19:00
jvm
深入理解java
虚拟机之一window下编译OpenJDK环境搭建
最近在看javaJVM的编译原理,才来研究这些。在window下搭建编译OpenJDK的环境,真的很蛋疼,不信的人可以试试。环境构建需要的工具1.cygwin工具。这个工具的主要用处是为了在window平台上模拟出一个unix虚拟环境。为了能够在window下编译openJDK,我们需要手动安装的工具如下:Devel:binutils,make.Interpreters:m4Utils:cpio,
放牧的太阳
·
2020-08-14 15:52
多少分
深入理解java
常量池
原文链接理论小菜先拙劣的表达一下jvm虚拟内存分布:程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。本地方法栈是jvm调用操作系统方法所使用的栈。虚拟机栈是jvm执行java代码所使用的栈。方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。虚拟机堆是jvm执行java代码所使用的堆。Java中的常量池,实际上分为两种形态:静态常量池和
the__apollo
·
2020-08-14 13:55
java学习
深入理解Java
虚拟机---第四章
第四章JDK中除了附带大量的命令行工具外,还提供了几个功能集成度更高的可视化工具,用户可以使用这些可视化工具以更加便捷的方式进行进程故障诊断和调试工作。这类工具主要包括JConsole、JHSDB、VisualVM和JMC四个JavaMissionControl,曾经是大名鼎鼎的来自BEA公司的图形化诊断工具,随着BEA公司被Oracle收购,它便被融合进OracleJDK之中JHSDB是一款基于
zzZsleep7
·
2020-08-14 12:52
深入理解Java虚拟机
《
深入理解Java
虚拟机》读书笔记(第三章)
垃圾收集器与内存分配策略(第三章)前言,众所周知,Java是由c++进化而来,c++在内存需自己申请,自己释放,于是就有了Java的动态内存分配。书的第三章开篇,有这样一句话描述的很妙——Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙内的人却想出来。如何判断对象已经死去引用计数器法概述:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;引
Horken Kason
·
2020-08-14 11:32
Java学习笔记
Java并发---并发理论
在多线程下代码执行的结果和预期的正确的结果不一致,该代码就是线程不安全的,否则就是线程安全的在
深入理解Java
虚拟机一书中看到的定义时当多个线程访问同一个对象时,如果不用考虑这些线程在运行环境下的调度和交替运行
mark-xiang
·
2020-08-14 10:00
JVM系统学习-4、垃圾回收
本节内容部分内容摘自《
深入理解Java
虚拟机:JVM高级特性与最佳实现(第3版)》本节内容前言垃圾回收算法标记-清除算法(Mark-Sweep)标记-复制算法(Mark-Copying)Appel式回收标记
努力挣扎的程序员
·
2020-08-14 08:47
jvm系统学习
浅谈JVM内存模型——模块概述
参考资料:
深入理解Java
虚拟机-JVM高级特性与最佳实践(电子书,大家可以在网上找到!里面讲的挺全的!可以参考一下!!)
幼儿园抢饭第一名
·
2020-08-14 07:14
Java
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
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
其他