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
虚拟机》HotSpot 的算法实现
前面的blog在理论上介绍了对象存活判定算法和垃圾收集算法,然而在HotSpot虚拟机上实现这些算法时必须对算法的执行效率有足够严格的考量,才能保证虚拟机高效运行。1.可达性分析算法中的枚举根节点在对象存活算法的可达性分析算法中从GCRoots节点找引用链这个操作为例。其中可达性分析对执行时间的敏感点的一个体现就是GC停顿上面,因为这项分析工作必须在一个能确保一致性的快照中进行–这里的一致性是指在
惜暮
·
2020-08-21 05:30
Java虚拟机
java的Native方法
今天看《
深入理解JAVA
虚拟机》感觉自己好像跳过了什么重要的知识==好多东西只能看懂大概不能完全理解。。可能还是写的demo程序太小了。。涉及不到复杂的底层操作。
silence---
·
2020-08-21 05:04
深入理解Java
虚拟机_JVM高级特性与最佳实践 第2版
深入理解Java
虚拟机_JVM高级特性与最佳实践第2版下载地址:https://pan.baidu.com/s/15_ADwgj7VPdMJhcMVUxYlQ扫码下面二维码关注公众号回复100013获取分享码本书目录结构如下
余松
·
2020-08-21 04:20
jvm
java
个人所看书籍清单
个人书库本书库用于显示个人已经看过的书籍Android相关Android编程权威指南第一行代码AndroidAndroid疯狂讲义java相关java核心技术卷Ijava核心技术卷IIjava编程思想java多线程核心编程技术
深入理解
jimmysenior
·
2020-08-21 02:47
读书清单
《
深入理解Java
虚拟机》第 3 版里面到底多了哪些知识点?竟然得到了本书作者的认可!
这是why的第47篇原创文章荒腔走板大家好,我是why。老规矩,先是简短的荒腔走板聊聊生活。上面的图是前几天拍的,那天晚上下班后,刚刚走进小区就看到了这一轮弯月和旁边那一颗特别特别亮的星星。不知道为什么,一瞬间,我感觉一下回到了小时候的夏天。脑海里浮现出了一些画面:一个大铁勺子舀一勺透心凉的井水、经过水缸冰镇的西瓜、树荫下卖樱桃的老爷爷、小河边嬉笑着抓螃蟹的同伴、提着一杯凉白开走在上学路上的自己,
why技术
·
2020-08-21 02:02
java
虚拟机
jvm
《
深入理解Java
虚拟机》第 3 版里面到底多了哪些知识点?竟然得到了本书作者的认可!
这是why的第47篇原创文章荒腔走板大家好,我是why。老规矩,先是简短的荒腔走板聊聊生活。上面的图是前几天拍的,那天晚上下班后,刚刚走进小区就看到了这一轮弯月和旁边那一颗特别特别亮的星星。不知道为什么,一瞬间,我感觉一下回到了小时候的夏天。脑海里浮现出了一些画面:一个大铁勺子舀一勺透心凉的井水、经过水缸冰镇的西瓜、树荫下卖樱桃的老爷爷、小河边嬉笑着抓螃蟹的同伴、提着一杯凉白开走在上学路上的自己,
why技术
·
2020-08-21 02:51
java
虚拟机
jvm
深入理解java
.lang.StackOverflowError
StackOverflowError:栈溢出错误,如果一个线程所需用到栈的大小>配置允许最大的栈大小,那么jvm就会抛出StackOverflow。栈的特点:1、栈,也叫栈内存,是jvm的内存模型之一,每当启动一个新线程的时候,jvm都会为它分配一个java栈。jvm只会直接对java栈执行两种操作,以帧为单位的压栈和出栈。2、栈存储的内容:方法内的局部变量表、操作数、动态链接、方法出口信息、其他
RXLH929903
·
2020-08-21 01:17
Android Support Annotation介绍
对注解还不太了解的盆友,可以看看这篇博客
深入理解Java
注解类型Nullness注解@Nullable和@NonNull这两个注解都是标
爱吃甜食的欧妮酱
·
2020-08-21 00:31
Android
深入理解java
的泛型
简介泛型是JDK5引入的概念,泛型的引入主要是为了保证java中类型的安全性,有点像C++中的模板。但是Java为了保证向下兼容性,它的泛型全部都是在编译期间实现的。编译器执行类型检查和类型推断,然后生成普通的非泛型的字节码。这种就叫做类型擦除。编译器在编译的过程中执行类型检查来保证类型安全,但是在随后的字节码生成之前将其擦除。这样就会带来让人困惑的结果。本文将会详细讲解泛型在java中的使用,以
flydean
·
2020-08-20 23:59
java
jvm
泛型
深入理解java
的泛型
简介泛型是JDK5引入的概念,泛型的引入主要是为了保证java中类型的安全性,有点像C++中的模板。但是Java为了保证向下兼容性,它的泛型全部都是在编译期间实现的。编译器执行类型检查和类型推断,然后生成普通的非泛型的字节码。这种就叫做类型擦除。编译器在编译的过程中执行类型检查来保证类型安全,但是在随后的字节码生成之前将其擦除。这样就会带来让人困惑的结果。本文将会详细讲解泛型在java中的使用,以
flydean
·
2020-08-20 23:59
java
jvm
泛型
深入理解Java
Script原型
前言在软件工程中,代码重用的模式极为重要,因为他们可以显著地减少软件开发的成本。在那些主流的基于类的语言(比如Java,C++)中都是通过继承(extend)来实现代码复用,同时类继承引入了一套类型规范。而JavaScript是一门弱类型的语言,从来不需要类型装换,在JavaScript中变量可以指向任何类型的value(ES6规范中的类也只是语法糖,基于类的继承本质上也是通过原型实现)。而基于原
sponia_joker
·
2020-08-20 23:37
枚举类
1.枚举枚举介绍见链接:zejian_
深入理解Java
枚举类型(enum)使用具体链接:Java枚举(enum)详解7种常见的用法2.注意点enum和class、interface的地位一样使用enum
hobe
·
2020-08-20 20:29
enum
枚举
枚举类
1.枚举枚举介绍见链接:zejian_
深入理解Java
枚举类型(enum)使用具体链接:Java枚举(enum)详解7种常见的用法2.注意点enum和class、interface的地位一样使用enum
hobe
·
2020-08-20 20:28
enum
枚举
深入理解Java
script箭头函数中的this
今日头条:https://m.jb51.net/article/105340.htm添加链接描述javaScript的箭头函数详解----https://blog.csdn.net/qq_43059674/article/details/87603235在通常需要varself=this(或者换种形式,如函数.bind(this)调用)的时候,基于运行原则相同,可以把=>箭头函数作为一个很好的替代
阳光下的
·
2020-08-20 18:38
javascript
深入理解Java
虚拟机 #01# 自己编译JDK
x首先用书上的脚本尝试,失败。之后根据源文件的README编译,抛出:root@linux:/opt/openjdk#sh./get_source.shERROR:Needinitialrepositorytousethisscript采用下面的方案解决:你jdk8版本太老了,但是你系统又比较新(很多工具,例如make也是最新的),导致很多不匹配。解决办法换成最新版本的jdk8吧。具体方法:hgc
bangtuo9862
·
2020-08-20 15:25
深入理解Java
虚拟机-内存模型及多线程
系列阅读1.
深入理解Java
虚拟机-GC&运行时数据区2.
深入理解Java
虚拟机-类文件结构及加载3.
深入理解Java
虚拟机-内存模型及多线程1.Java内存模型主内存(MainMemory)是各个线程共享的内存区域
liaowenhao
·
2020-08-20 15:58
Java内存模型
深入理解Java
内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。
in_han
·
2020-08-20 14:28
收藏
编程
JVM内存管理机制
——《
深入理解Java
虚拟机:JVM高级特性与最佳实践》Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途。以及创建和销毁的时间。
Java猫
·
2020-08-20 14:07
深入理解Java
线程池
线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。线程池的作用:线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手
·
2020-08-20 13:52
线程的上下文切换
参考http://www.cnblogs.com/dolphin0520/p/3920357.html,《
深入理解java
虚拟机》对于单核CPU来说(对于多核CPU,此处就理解为一个核),CPU在一个时刻只能运行一个线程
weixin_30642267
·
2020-08-20 12:13
[java] 一个java程序从写出来到执行
概述在阅读
深入理解java
虚拟机这本书时,觉得作者写得很好,看了有很多收获,同时也发现了一个问题,就是作者并没有完整的按照一个java程序从java文件到最后运行结束做出一个整体的分析。
topEngineerray
·
2020-08-20 11:38
《
深入理解java
虚拟机》读书笔记之类加载案例实战
前言最近在读《
深入理解java
虚拟机》,第三部分-虚拟及执行子系统。
Happy琼鬼
·
2020-08-20 11:34
深入理解JAVA
虚拟机学习笔记16——Javac编译器
由于笔者最近几天小病了一场,几天没有更新了,对朋友们说一声抱歉,同时也提醒亲爱的朋友们,身体是革命的本钱,一点也不假啊!不过笔者现在好了,还能大跳了!还是那句话,每天天进步一点点!在上一篇中,我们讨论编译执行和解释执行中,我们已经分析过了,Java的编译过程划分是没有那么明确的,可能会经过三类编译器的加工。1.前端编译器:负责把Java文件编译成Class文件,如Sun的Javac;2.后端运行期
云水禅音
·
2020-08-20 09:47
JAVA虚拟机
深入理解JAVA
虚拟机学习笔记15——字节码执行引擎(动态类型语言与lambda表达式)
每天进步一点点!在我们刚接触Java时候,我们就被告知,Java是一门静态类型语言。随着开发技术的发展,出现了更多的动态语言,比如我们耳熟能详的Groovy,List,Python,Ruby,JavaScript等。这也就迫使Java需要做出改变,从jdk7开始,Java提供了对动态类型语言的支持,引入了invokedymanic指令提供对动态类型语言的支持。随之在jdk8开始,推出了lambda
云水禅音
·
2020-08-20 09:46
JAVA虚拟机
深入理解JAVA
虚拟机学习笔记15——字节码执行引擎(栈帧)
每天进步一点点!今天主要了解一下栈帧中的内容,大部分为内容都比较容易理解,且做以下记录。首先介绍以下栈帧的概念:栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(VirtualMachineStack)的栈元素。栈帧中主要存储了5方面的内容:方法的局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在编译代码的时候,栈帧中
云水禅音
·
2020-08-20 09:46
JAVA虚拟机
深入理解JAVA
虚拟机学习笔记15——字节码执行引擎(方法调用)
每天进步一点点!这里说的方法调用阶段的任务并不是执行过程,而是确定方法运行时的入口地址。前面我们已经学习过,在Class文件的常量池中,类型为CONSTANT_Methodref_info的,存储的就是方法信息,并最终指向方法的符号引用。对于方法调用,首先要进行的就是解析,这个其实在前面我们已经有了一些涉及,虚拟机提供了五条字节码指令,用于方法调用,我们再来回顾一下。1.invokestatic:
云水禅音
·
2020-08-20 09:46
JAVA虚拟机
java
虚拟机
jvm
字节码执行引擎(
方法调用
深入理解java
虚拟机-第三章:JDK可视化工具
一、JConsole:Java监视与管理控制台1.启动在jdk所在目录bin目录下,双击“jconsole”,即可打开。启动jconsole之后,将自动搜索出本机所有虚拟机进程;双击其中一个即可监控。选择一条,进入2.内存监控用于监视收集器管理的虚拟机内存(Java堆和永久代)的变化趋势。staticclassoom{publicbyte[]placeholder=newbyte[64*1024]
麦子小小跑
·
2020-08-20 07:47
JVM
从synchronized中看锁的优化
本文是学习《
深入理解JAVA
虚拟机》的第6篇笔记乐观锁、悲观锁做技术基本都听过。
every__day
·
2020-08-20 06:05
JAVA虚拟机
深入理解JAVA
虚拟机学习笔记10——JDK可视化工具JConsole
JConsole:Java监视与管理控制台,基于JMX的可视化监视,管理工具。在jdk的bin目录下(如D:\Java\jdk1.8.0_131\bin),就可以找到jconsole.exe。在运行之前,我们先写用debug执行一段程序,创建一个线程,sleep30分钟。然后,再双击启动jconsole.exe。在如下界面中选择本地进程,笔者使用的是IDEA,这里选择第二个。打开之后,我们可以看到
云水禅音
·
2020-08-20 05:31
JAVA虚拟机
深入理解Java
异常处理机制
一、引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。1packageexception;23/**4
早起的小虫子
·
2020-08-19 21:00
从一道面试题来认识java类加载时机与过程
2019独角兽企业重金招聘Python工程师标准>>>说明:本文的内容是看了《
深入理解Java
虚拟机:JVM高级特性与最佳实践》后为加印象和理解,便记录了重要的内容。
weixin_34210740
·
2020-08-19 21:43
10本Java书籍推荐
《
深入理解Java
虚拟机》是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义
weixin_34088583
·
2020-08-19 21:58
深入理解Java
虚拟机:(一)Java代码是如何运行的?
一、前言我刚接触Java的时候,我和我同学就Java的运行环境要下载JRE还是JDK争议了好久,我认为JRE是JavaRuntimeEnvironment,翻译过来就是Java运行环境,所以我当时认为Java代码要运行当然要安装JRE。而我同学强硬说要安装JDK,至于原因他也说不上来,反正写代码就要先下载个JDK,最后的聊天以他对我说的一句话结束,我到现在还清晰的记得:不要以为你英语好就觉得你说的
riemann_
·
2020-08-19 19:44
JVM
深入理解Java
类加载器(1):Java类加载原理解析
目录1基本信息2Java虚拟机类加载器结构简述2.1JVM三种预定义类型类加载器2.2类加载双亲委派机制介绍和分析2.3类加载双亲委派示例3java程序动态扩展方式3.1调用java.lang.Class.forName(…)加载类3.2用户自定义类加载器4常见问题分析4.1由不同的类加载器加载的指定类还是相同的类型吗?4.2在代码中直接调用Class.forName(Stringname)方法,
pengjunlee
·
2020-08-19 18:45
深入理解Java虚拟机
深入理解JAVA
--线程池:shutdown、shutdownNow、awaitTermination
转自:https://www.cnblogs.com/siriusckx/articles/3989057.htmlhttps://www.jianshu.com/p/b5e2283e869c1、shutdown()问:shutdown()有什么功能?答:阻止新来的任务提交,对已经提交了的任务不会产生任何影响。当已经提交的任务执行完后,它会将那些闲置的线程(idleWorks)进行中断,这个过程是
AlinaIDE
·
2020-08-19 18:29
多线程
如何
深入理解Java
内存回收机制?
Java作为一门优秀的编程语言,有着很多优点。其中,就有内存自动管理这一项。Java提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,不会再被那些可怕的内存分配错误打扰。但是,Java对于内存的自动管理并不是万能的,Java依然会存在内存泄漏的情况。让我们来举个栗子,这个栗子在平时十分的常见。//我们要采用基于数组的方式实现一个StackpublicclassStack{//存放栈内元
小林同学的daily
·
2020-08-19 18:40
Java进阶
深入理解Java
虚拟机_1(Java内存区域与内存溢出异常)
Ceratedbywestfallonon8/19运行时数据区域程序技术器程序计数器(ProgramCounterRegister)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成为了线程切换后能恢复到正确的
westfallon
·
2020-08-19 17:15
注解(Annotation)自定义注解入门
深入理解Java
:注解(Annotation)基本概念什么是注解(Annotation):Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法
小马童鞋
·
2020-08-19 15:01
Effective Java读书笔记(1-2章-创建和销毁对象)
Java经典的书籍有几本,都是很多有经验的开发人员推荐的,包括Java编程思想,
深入理解Java
虚拟机,Java核心技术和EffectiveJava。
小鱼的博客
·
2020-08-19 15:15
Effective
Java读书笔记
【专题】Java技术体系
这是《
深入理解Java
虚拟机》的读书笔记。
都有米
·
2020-08-19 10:58
深入理解Java
虚拟机到底是什么
什么是Java虚拟机作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?先看网上搜索到的比较靠谱的解释:虚拟机是一种抽
美的让人心动
·
2020-08-19 10:27
深入理解java
IO
本文的目录视图如下:JavaIO概要a.JavaIO中常用的类b.Java流类的类结构图1.流的概念和作用2.JavaIO所采用的模型:3.IO流的分类4.JavaIO流对象1.输入字节流InputStream2.输出字节流OutputStream3.字符输入流Reader4.字符输出流Writer5.字符流的输入与输出的对应6.字符流与字节流转换7.字节流和字符流的区别8.File类9.Rand
chuodan5158
·
2020-08-19 09:18
java
人工智能
运维
深入理解Java
中的泛型
一、泛型的本质和作用泛型的作用:用来限定类型本质1:把对象/集合里面元素的类型推迟到创建的时候本质2:类型参数化二、为何使用泛型?场景:如何实现可以传入不同类型的ArrayList类,在Jdk1.5之前,没有泛型,是如何实现的?下面实现了一个ArrayListSelf类可以实现这个功能,用object数组来实现了add和get方法publicclassArrayListDemo{publicsta
True | Fasle
·
2020-08-19 09:35
Java学习
备战BAT面试:查漏补缺——JVM内存模型
区域介绍方法区注:在最新的《
深入理解Java
虚拟机》一书中,已经取消了方法区“永久代”的称呼。方法区是用来存储已被JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据这个
猎猎风中
·
2020-08-19 08:13
备战BAT面试
Java 与 C/C++ 的编译器对比
前言这两天重温了周志明的《
深入理解Java
虚拟机》第2版,发现第11章第4节关于Java编译器的内容写得太棒了~本文完全摘自《
深入理解Java
虚拟机》第2版0_oJava与C/C++编译器大多数程序员都认为
被称为L的男人
·
2020-08-19 06:21
微服务架构——技术选型参考
一、Dubbo1、
深入理解Java
微服务架构Dubbo系列——第一回结缘http://blog.csdn.net/hopeztm/article/details/52497323二、SpringCloud1
recyclebin
·
2020-08-19 05:46
1.
深入理解java
集合List
下图是java集合框架图,Collection、Map是集合框架的顶级类,Iterator是集合迭代器。Collection介绍(主要讲解实现类,主要特点,适用场景,实现原理)1、List接口,主要实现类Vector、ArrayList、LinkedList(1)Vector,如下图源码结构,可以看出Vector主要有3个成员变量,elementData是Vector保存数据的数组成员,eleme
HelloJava89
·
2020-08-19 04:52
深入理解java集合
[
深入理解Java
虚拟机]第六章 Class类文件的结构
在本章关于Class文件结构的讲解中,我们将以《Java虚拟机规范(第2版)》(1999年发布,对应于JDK1.4时代的Java虚拟机)中的定义为主线,这部分内容虽然古老,但它所包含的指令、属性是Class文件中最重要和最基础的。同时,我们也会以后续JDK1.5〜JDK1.7中添加的内容为支线进行较为简略的、介绍性的讲解,如果读者对这部分内容特别感兴趣,建议参考笔者所翻译的《Java虚拟机规范(J
Coding-lover
·
2020-08-19 02:05
jvm
深入理解java
script之this
javascript中的this含义非常丰富,它可以是全局对象,当前对象或者是任意对象,这都取决于函数的调用方式。函数有以下几种调用方式:作为对象方法调用、作为函数调用、作为构造函数调用、apply或call调用。对象方法调用作为对象方法调用的时候,this会被绑定到该对象。varpoint={x:0,y:0,moveTo:function(x,y){this.x=this.x+x;this.y=
布瑞泽的童话
·
2020-08-18 21:42
javascript
深入理解javascript
Java面试题剖析(基础篇) | 第五篇:
深入理解Java
面向对象设计的六大原则(上)
这篇博文主要讲的是在Java面向对象设计中,我们应该遵循的六大原则。只有掌握了这几大原则,我们才能更好的理解设计模式。Java面向对象设计的六大原则如下:单一职责原则——SRP开闭原则——OCP里式替换原则——LSP依赖倒置原则——DIP接口隔离原则——ISP迪米特原则——LOD下面我们会通过具体的实例逐个讲解这几大原则。一、单一职责原则(SRP)单一职责原则定义接口或类和职责的关系是一一对应的,
男儿何必尽成功
·
2020-08-18 20:27
Java面试题剖析
Java面试题剖析
上一页
28
29
30
31
32
33
34
35
下一页
按字母分类:
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
其他