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
并发2——Java线程实现原理
一线程的实现1.1概念线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。1.2线程的实现方式1.2.1使用内核线程实现(Java)这种实现方式线程直接由操作系统内核支持。程序一般不会直接去使用内核线程,而是去使用内核线程的一种高级接口——轻量级进程,轻量级进程与
砺晗
·
2020-07-10 20:30
Java
深入理解java
script原型和闭包(11)——执行上下文栈
继续上文的内容。执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。其实这是一个压栈出栈的过程——执行上下文栈。如下图:可根据以下代码来详细介绍上下文栈的压栈、出栈过程。如上代码。在执行代码之前,首先将创建全局上下文环境。然后是代码执行。代码执行到第
weixin_30716141
·
2020-07-10 19:48
深入理解Java
回调函数
废话不多说,像许多网上介绍回调机制的文章一样,我这里也以一个现实的例子开头:假设你公司的总经理出差前需要你帮他办件事情,这件事情你需要花些时间去做,这时候总经理肯定不能守着你做完再出差吧,于是就他告诉你他的手机号码叫你如果事情办完了你就打电话告诉他一声;这是一个现实生活中常能碰到的例子,我们用呢就用代码的方式来实现一个这个过程,看一下这个过程究竟是怎样的。首先在Eclipse中新建一个Java项目
Porsche520
·
2020-07-10 18:38
Java
JVM内存管理
——《
深入理解Java
虚拟机》周志明注:本文系《
深入理解Java
虚拟机》的读书笔记,外带扩展总结,部分内容直接照搬于原文,如有叙述不尽,请阅读原书。
微寒Super
·
2020-07-10 18:06
Java
编译及调试OpenJDK 8
看了
深入理解Java
虚拟机:JVM高级特性与最佳实践(第2版)之后决定自己编译一下OpenJDK,但是书中介绍的关于编译和调试部分已经过时了。所以根据搜索的资料,自己编译调试了一下。
FIMH
·
2020-07-10 17:54
MISC
《
深入理解Java
虚拟机》——JDK自带命令行工具
2019独角兽企业重金招聘Python工程师标准>>>给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据和定位解决问题的速度,但我们在学习工具前,也应当
weixin_34250434
·
2020-07-10 15:34
JVM学习笔记之codeCache
疫情期间把《
深入理解java
虚拟机》这本书又撸了一遍,顺便写下心得体会,和大家分享,温故知新。
Java老K
·
2020-07-10 15:11
java
jvm虚拟机
研究了 2 天,终于知道 JDK 8 默认 GC 收集器了!
《
深入理解Java
虚拟机》第三版第128页中提到JDK9之前,Server默认使用ParallelScavenge+SerialOld(PSMarkSweep),那么真的是这样的吗?我带着这个
Java技术栈
·
2020-07-10 13:06
浅谈Java虚拟机
本博客基于《
深入理解Java
虚拟机——JVM高级特性与最佳实践》——周志明前言终于拿到了众多知乎大佬推荐的JVM神书,可以开始学习Java虚拟机的相关知识了,以前学Java的时候一直都听到很多相关词汇,
WindFromFarEast
·
2020-07-10 13:19
java
深入理解Java
Stream流水线,学到了!
点击上方"程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Nomatterhowhardlifemaygetsometimes,ifwestaystrong,wewillalwaysconquer.无论日子多艰难,只要我们保持一颗坚强的心,一切都会过去的。每日掏心话人的成长是一段锥心的疼痛。自己是自己的朋友,自己是自己的敌人。来自:CarpenterLee|责编:
程序员小乐
·
2020-07-10 12:11
深入理解JAVA
虚拟机学习笔记15——字节码执行引擎(解释执行)
每天进步一点点!在第二篇方法调用中,我们主要学习的是确定目标方法,这篇我们就来看看方法内容的具体执行。目前基于虚拟机的语言中,既有编译执行的(以c,c++为代表),也有解释执行的(比如Python,JavaScript等)。下面让我们针对java虚拟机简单分析一下这两种执行的区别。编译执行:编译器将源文件编译成目标机器码文件,运行时不需要重新翻译,下次再运行该文件的时候也无需再次编译。典型的比如说
云水禅音
·
2020-07-10 12:25
JAVA虚拟机
JDK 1.8 下的 java.lang.Class 对象和 static 成员变量在堆还是方法区?
我们入门虚拟机的学习大多是通过《Java虚拟机规范》、《
深入理解Java
虚拟机》这两本经典。但是由于Java环境复杂、JDK版本更新、市面上的虚拟
无始无终123
·
2020-07-10 12:04
java
jvm
读Zepto源码之代码结构
源码版本本文阅读的源码为zepto1.2.0阅读zepto之前需要了解javascript原型链和闭包的知识,推荐阅读王福朋的这篇文章:
深入理解Java
script原型和闭包,写得很详细,也非常易于阅读
对角另一面
·
2020-07-10 11:59
小匠彻夜研究了2天终于知道 JDK8 默认的GC 收集器了
《
深入理解Java
虚拟机》第三版第128页中提到JDK9之前,Server默认使用ParallelScavenge+SerialOld(PSMarkSweep),那么真的是这样的吗?
码匠笔记
·
2020-07-10 10:00
结合JAVA面试题,
深入理解JAVA
(一)
一下都是小白自己整理,自己的看法(留下笔记,哈哈),请大佬们指教问:谈谈你对Java平台的理解?“java是解释执行”,这句话正确吗?首先,这个问题是考面试者对java学习是否系统化,知识是否结构化,所以,回答该类问题时,要表现出自己的思维深入并且系统化。下图是我个人总结的点。我个人的回答如下:个人印象比较深刻的是“Writeonce,runanywhere”,也就是java的平台无关性,非常容易
BaryLeo
·
2020-07-10 10:22
java
笔记
《
深入理解Java
虚拟机》——实战:eclipse优化
2019独角兽企业重金招聘Python工程师标准>>>实战:eclipse运行速度调优很多Java开发人员都有这样一个观念:系统调优的工作都是针对服务端应用而言的,规模越大的系统,需要越专业的调优运维团队参与。这个观念不能说不对,但是并不说明其他应用就不需要了。1.调优前的程序运行状态笔者使用SpringToolSuite(以下简称STS,Spring提供的带Spring插件的eclipse)作为
weixin_34248487
·
2020-07-10 08:34
深入理解Java
线程池:ScheduledThreadPoolExecutor
介绍自JDK1.5开始,JDK提供了ScheduledThreadPoolExecutor类来支持周期性任务的调度。在这之前的实现需要依靠Timer和TimerTask或者其它第三方工具来完成。但Timer有不少的缺陷:Timer是单线程模式;如果在执行任务期间某个TimerTask耗时较久,那么就会影响其它任务的调度;Timer的任务调度是基于绝对时间的,对系统时间敏感;Timer不会捕获执行T
weixin_30794851
·
2020-07-10 07:04
深入理解JAVA
集合系列三:HashMap的死循环解读
由于在公司项目中偶尔会遇到HashMap死循环造成CPU100%,重启后问题消失,隔一段时间又会反复出现。今天在这里来仔细剖析下多线程情况下HashMap所带来的问题:1、多线程put操作后,get操作导致死循环。2、多线程put非null元素后,get操作得到null值。3、多线程put操作,导致元素丢失。死循环场景重现下面我用一段简单的DEMO模拟HashMap死循环:1publicclass
weixin_30649641
·
2020-07-10 06:33
ECMAScript 和 JavaScript 的未来
本文摘自《
深入理解Java
Script特性》,本书将JavaScript新特性融入简单易懂的示例中,包括ES6及后续更新,助你大幅提升代码表达能力。
weixin_30299539
·
2020-07-10 06:44
深入理解JAVA
集合系列二:ConcurrentHashMap源码解读
HashMap和Hashtable的区别在正式开始这篇文章的主题之前,我们先来比较下HashMap和Hashtable之间的差异点:1、Hashtable是线程安全的,它对外提供的所有方法都是都使用了synchronized,是同步的,而HashMap是非线程安全的。2、Hashtable不允许value为空,否则会抛出空指针异常;而HashMap中key、value都可以为空。1publicsy
weixin_30273763
·
2020-07-10 06:38
java多线程中的关键字volatile
在《
深入理解java
虚拟机》一书中讲到,线程对volatile修饰的变量的use动作和load、read操作相关联,必须连续出现;相同地,线程对volatile修饰的变量的assign动作和store、
一个java小白的成长记录
·
2020-07-10 05:15
java并发
jvm如何判断对象是否可以被回收
内容基本来自周志明
深入理解java
虚拟机第二版第三章。这本书还可以,不过好像也没什么其他中文的关于jvm比较好的书了jvm要做垃圾回收时,首先要判断一个对象是否还有可能被使用。
1286085509
·
2020-07-10 04:37
jvm
JVM-内存模型
本篇其实就是一个读书笔记,书是《
深入理解JAVA
虚拟机》,在网上搜索JAVA内存,说的比较好的其实很多都源自这本书,作为一个JAVA程序员,理解虚拟机是通向高级程序员的必经道路。
shu_lin
·
2020-07-10 04:02
JAVA
JVM总结
CMS收集器与G1收集器
说明:本文摘自《
深入理解Java
虚拟机》,是自己看书总结文章。
太兮
·
2020-07-10 04:42
JVM
java基础
读书笔记
《
深入理解Java
虚拟机》Hotspot虚拟机中的对象创建与访问定位
环境:JDK1.7Hotspot虚拟机本文主要针对在Hotspot虚拟机中Java堆中:1.对象的分配;2.对象的内存是如何布局的3.以及如何访问对象。1.对象的创建过程在Java中对象的创建主要是通过new这个关键字来实现的,那么一个对象的创建过程是怎样的呢?通过下面几步来描述:)当虚拟机遇到一个new关键字时,首先去检查这个指令的能否在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类
惜暮
·
2020-07-10 04:58
Java虚拟机
深入理解Java
并发包之ConcurrentHashMap
【声明】本博客大部分内容来自公众号ImportNewHashMap的容量由负载因子决定,插入的元素超过了容量的范围就会触发扩容操作,就是rehash。在多线程环境下,若同时存在其他元素进行put操作,如果hash值相同,可能出现在同一数组下用链表表示,出现闭环,导致在get的操作会出现死循环,所以hashmap是线程不安全的。Hashtable是线程安全的,它在所有都涉及到多线程操作时都加了syn
sunwillz
·
2020-07-10 03:54
java
深入理解Java
集合之ArrayList
ArrayListArrayList是最常见以及每个Java开发者最熟悉的集合类了,顾名思义,ArrayList就是一个以数组形式实现的集合,以一张表格来看一下ArrayList里面有哪些基本的元素:元素作用privatetransientObject[]elementData;ArrayList是基于数组的一个实现,elementData就是底层的数组。privateintsize;ArrayL
Java-扫地僧
·
2020-07-10 00:24
Java
Java
集合
ArrayList
深入理解Java
集合之HashMap死循环
一、问题由于HashMap并非是线程安全的,所以在高并发的情况下必然会出现问题,如果是在单线程下使用HashMap,自然是没有问题的,如果后期由于代码优化,这段逻辑引入了多线程并发执行,在一个未知的时间点,会发现CPU占用100%,居高不下,通过查看堆栈,你会惊讶的发现,线程都Hang在hashMap的get()方法上,服务重启之后,问题消失,过段时间可能又复现了。二、原因分析HashMap的数据
Java-扫地僧
·
2020-07-10 00:24
Java
深入理解Java
中的final关键字
Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以声明成员变量、
麦伢子
·
2020-07-09 23:26
Java
深入理解Java
的线程池:的ScheduledThreadPoolExecutor 多线程定时器
介绍自JDK1.5开始,JDK提供了的ScheduledThreadPoolExecutor类来支持周期性任务的调度在这之前的实现需要依靠定时器和TimerTask的或者其它第三方工具来完成但计时器有不少的缺陷。:定时器是单线程模式;如果在执行任务期间某个TimerTask的耗时较久,那么就会影响其它任务的调度;计时器的任务调度是基于绝对时间的,对系统时间敏感;计时器不会捕获执行的TimerTas
assassin丶J
·
2020-07-09 22:24
java
彻夜研究了2天终于知道 JDK8 默认的GC 收集器了
《
深入理解Java
虚拟机》第三版第128页中提到JDK9之前,Server默认使用ParallelScavenge+SerialOld(PSMarkSweep),那么真的是这样的吗?
MrFred
·
2020-07-09 22:05
Java技术点
深入理解Java
虚拟机之Javac编译器
javac编译器(前端编译器)就是把.java(源代码)文件编译成.class(字节码)文件.编译过程-----1.词法,语法分析词法分析是将源代码一个字节一个字节的读进来,根据关键字、变量名,字面量,运算符进行做Token标记.就是把Java代码分解,成为一个个独立的词并进行标记,构成标记集合.如下://Token.PUBLICToken.VOIDToken.TESTpublicvoidTest
可苯
·
2020-07-09 22:06
虚拟机
JVM学习笔记(一)——本地方法栈及native方法
最近开始看《
深入理解Java
虚拟机》,确实是本宝书。看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。
Horizon_LGMH
·
2020-07-09 22:53
JVM
jvm
native
栈
虚拟机
jave
深入理解JAVA
虚拟机- Java内存区域与对象揭秘
此文是对《
深入理解JAVA
虚拟机》的一点总结,如果想要了解具体细节可以去看原书。运行时数据区域Java虚拟机在执行Java程序的过程中会把内存划分为若干个不同的数据区域。
Hc-Z
·
2020-07-09 22:44
书单
java
深入理解JAVA虚拟机
java
jvm
Java内存管理思维导图
最近在读《
深入理解Java
虚拟机》一书,关于内存管理机制的一些内容,用思维导图整理出来,方便理解和记忆。Java内存管理Tips如果您觉
码匠安徒生
·
2020-07-09 21:28
深入理解Java
HashMap
深入理解Java
HashMap本文我们探索java集合框架中最受欢迎Map接口实现类。首先我们需要指出,List和Set集合接口继承自Collection,但Map不是。
neweastsun
·
2020-07-09 20:56
从一道面试题来认识java类加载时机与过程
说明:本文的内容是看了《
深入理解Java
虚拟机:JVM高级特性与最佳实践》后为加印象和理解,便记录了重要的内容。
天魂地煞
·
2020-07-09 20:26
java
JVM虚拟机
HotSpot VM
根据阅读《
深入理解java
虚拟机》加上一点自己的理解。JVM运行时数据区域程序计数器:程序计数器是一个较小的内存空间,他可以看成是当前线程所执行的字节码的行号指示器。
zycisbg
·
2020-07-09 19:09
Java 运行时常量池 字符串常量池 类的常量池 局部变量表
welcometomyblog根据《
深入理解Java
虚拟机》和网上搜索的资料总结一下这三个的区别类的常量池(存在于字节码文件中)类的常量池存在于字节码文件中,也就是.class文件.要注意的是,类的常量池并不在内存中
littlehaes
·
2020-07-09 19:22
Java
开始Java虚拟机的学习--对象的访问定位
从今天开始养成写博客的习惯最近正在看《
深入理解java
虚拟机》这本书,已经看到第二章了,看到觉得有收获、以后可能需要温习的,就在此记录一下自己的理解。
Java小田
·
2020-07-09 19:52
《深入理解Java虚拟机》学习
java
虚拟机
对象的访问定位
JDK命令行工具
注:个人学习笔记,不保证正确性,摘抄至《
深入理解java
虚拟机第二版》jps:虚拟机进程状况工具jps(jvmprocessstatustool),类似于linux中的ps,可以列出正在运行的虚拟机进程
jingyuwang1
·
2020-07-09 18:25
Java synchronized 能防止指令重排序吗?
《
深入理解Java
虚拟机》-P374:如果在一个线程观察另一个线程,所有操作都是无序的指的是“指令重排序”和“工作内存与主内存同步延迟”现象。
MuziBlogs
·
2020-07-09 18:52
JVM-运行时内存模型
(摘取自【
深入理解java
虚拟机】)java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。
huchunbin2
·
2020-07-09 17:32
低调看__jvm
Java字节码执行方式--解释执行和JIT
注:主要参考自《分布式java应用:基础与实践》《
深入理解Java
虚拟机(第二版)》1、两种执行方式:·解释执行(运行期解释字节码并执行)·强制使用该模式:-Xint·编译为机器码执行(将字节码编译为机器码并执行
PhilerH
·
2020-07-09 17:43
Java代码执行机制
一行一行源码分析清楚 AbstractQueuedSynchronizer(二)
本文关注以下几点内容:深入理解ReentrantLock公平锁和非公平锁的区别深入分析AbstractQueuedSynchronizer中的ConditionObject
深入理解Java
线程中断和InterruptedException
mhHao
·
2020-07-09 17:58
java
多线程并发
JVM如何判断Java对象是否存活,是否要被GC回收?
参考:
深入理解Java
虚拟机:JVM高级特性与最佳实践(第3版)周志明著GC在对堆内存进行垃圾清理之前,需要判断哪些Java对象不再被使用,需要被回收。通常有两种算法:引用计数算法、可达性分析算法。
牧_风
·
2020-07-09 16:15
JVM虚拟机
深入理解Java
Script中的堆与栈 、浅拷贝与深拷贝
JavaScript中的浅拷贝与深拷贝 学了这么长时间的JavaScript想必大家对浅拷贝和深拷贝还不太熟悉吧,今天在项目中既然用到了,早晚也要理清一下思路了,在了解之前,我们还是先从JavaScript的数据类型存放的位置堆栈开始说起吧! 现在我们带着问题来学习!一:什么是堆栈? 我们都知道:在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项
flyingpig2016
·
2020-07-09 16:35
javascript
算法
java8 虚拟机(运行时数据区域,垃圾回收)
参考以下文章Java虚拟机Java虚拟机是什么
深入理解java
虚拟机JVM内存模型总结Java内存区域(运行时数据区域)和内存模型(JMM)1虚拟机是一个普通进程。2类加载器加载class文件。
fengqingyuebai19
·
2020-07-09 16:28
java
JVM学习笔记(九):基于栈的解释器执行过程
本文根据《
深入理解java
虚拟机》第8章部分内容整理根据一个代码实例来介绍虚拟机中解释器的执行过程,代码如下所示:publicintcalculate(){inta=100;intb=200;intc=
青葱岁月
·
2020-07-09 14:59
Java
JVM
java技术书籍
《疯狂java讲义》
深入理解Java
虚拟机:JVM高级特性与最佳实践Java7入门经典JavaEE类1.《javaWeb整合开发王者归来》2.《spring入门到精通》3.《J
chenxiong2200
·
2020-07-09 14:54
上一页
42
43
44
45
46
47
48
49
下一页
按字母分类:
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
其他