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
并发编程之Synchronized关键字实现原理剖析
引言Synchronized关键字(互斥锁)原理,一线大厂不变的面试题,同时也是理解Java并发编程必不可少的一环!其中覆盖的知识面很多,需要理解的点也很多,本文是以相关书籍和结合自己的个人理解从基础的应用范围到底层深入剖析的方式进行阐述,如果错误或疑问欢迎各位看官评论区留言纠正,谢谢!一、Synchronized应用方式及锁类型众所周知,在项目开发过程中使用多线程的效果就是一个字:快!多线程编程
竹子爱熊猫
·
2021-04-18 19:38
阿里腾讯高频Android面试题;JVM虚拟机原理深入解析
其实周志明的《
深入理解Java
虚拟机》就有回答:Dakvik并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能执行Java的cla
蓝斯_867
·
2021-04-18 18:30
深入理解Java
并发编程之线程池、工作原理、复用原理及源码分析
一、引言一般在开发过程中,一个功能是运行时长太久了,一般是通过什么方式去优化的?异步/多线程,对于一个业务方法而言,如果其中的调用链太长势必会引起程序运行时间延长,导致整个系统吞吐来量下降,而我们使用多线程方式来对该方法的调用链进行优化,对于一些耦合度不是特别高的调用关系可以直接通过多线程来走异步的方式进行处理,大大的缩短了程序的运行时长,但是如果我们的多线程创建方式是通过newThread();
竹子爱熊猫
·
2021-04-18 09:58
Android开发大佬的Offer收割之旅,从字节跳动到BAT
对于Java基础,推荐《
深入理解Java
虚拟机》《EffectiveJava》《Java并发编程之美》,Android推荐阅读《Android开发艺术探索》和《Android源码设计模式解析与实战》,Android
Android开发架构师
·
2021-04-18 03:12
JVM第一篇:一个Java内存泄漏的排查案例
最近在看《
深入理解Java
虚拟机:JVM高级特性与最佳实践》(第二版)这本书,理论+实践结合,深入浅出,强烈推荐给大家。
小怪聊职场
·
2021-04-17 21:58
3.6 内存分配与回收策略
参考书籍(豆瓣)
深入理解Java
虚拟机(第2版),以下简称为书简述书中的3.6节为内存分配与回收策略,涉及以下5个小节3.6.1对象优先在Eden分配3.6.2大对象直接进入老年代3.6.3长期存活的对象将进入老年代
jyjz2008
·
2021-04-17 15:56
JVM套餐
这几天研习了一下《
深入理解Java
虚拟机》这本书,算是补补课、充充电,有边看边记笔记的习惯(不然看完还是忘),分享给大家。稍微有些长,但还是没有各个方面覆盖到,希望最好能够帮助到一些人。
UP7CR
·
2021-04-15 00:34
深入理解Java
中SPI机制
背景说到JavaSPI,事情得追溯到数月前。那天打开webp-imageio-core的源码准备稍微看下,点开项目第一眼就看到了WebPImageWriterSpi.java,起初是对这个类的命名有点疑惑,为啥叫Spi而不叫Interface呢,带着疑惑去问下了度娘,才了解到原来SPI是JDK内置的一种服务提供发现机制。简介SPI(ServiceProviderInterface),是JDK内置的
岁月如歌丶Eason
·
2021-04-14 23:51
深入理解Java
Script中的值(array、string、number...)
数组(array)JavaScript中,数组可以容纳任何类型的值多维数组vara=[1,'2',[3]]a.length//3a[0]//1a[2][0]//3注意:使用delete可以删除数组中的元素,但不会改变数组的length属性。稀疏数组数组的索引可以是数字,可以是字符串vara=[]a[0]=1;a['demo']=2a.length//思考一下:这里为什么是1,不是2a['demo'
·
2021-04-12 16:33
javascript前端
深入理解Java
Script中的类型
一、类型的定义大多数人认为,像JavaScript这样的动态语言是没有类型(type)的。也有人认为,JavaScript中的“类型”应该称为“标签”(tag)或者“子类型”(subtype)。定义:类型是值的内部特征,它定义了值的行为,目的是为了区分其他值。怎么理解?变量是没有类型的,值才具有类型,类型描述了值的行为特征;换句话说,当某个值发生改变,类型也随之改变(如a=1-->a='1')。二
·
2021-04-12 16:47
javascript前端
深入理解Java
Script中的值(array、string、number...)
数组(array)JavaScript中,数组可以容纳任何类型的值多维数组vara=[1,'2',[3]]a.length//3a[0]//1a[2][0]//3注意:使用delete可以删除数组中的元素,但不会改变数组的length属性。稀疏数组数组的索引可以是数字,可以是字符串vara=[]a[0]=1;a['demo']=2a.length//思考一下:这里为什么是1,不是2a['demo'
·
2021-04-12 15:03
javascript前端
深入理解Java
Script中的类型
一、类型的定义大多数人认为,像JavaScript这样的动态语言是没有类型(type)的。也有人认为,JavaScript中的“类型”应该称为“标签”(tag)或者“子类型”(subtype)。定义:类型是值的内部特征,它定义了值的行为,目的是为了区分其他值。怎么理解?变量是没有类型的,值才具有类型,类型描述了值的行为特征;换句话说,当某个值发生改变,类型也随之改变(如a=1-->a='1')。二
·
2021-04-10 18:55
javascript前端
深入理解Java
虚拟机学习之内存区域与内存溢出异常
1.概述Java中内存管理由虚拟机自动管理,虽然不需要手动去清理回收垃圾,出现内存泄漏和溢出时,了解虚拟机是如何使用内存的,对于Java程序员排查错误和修正问题来说是有很大帮助的2.运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,如下图所示:类加载器子系统用于将编译好的.Class文件加载到JVM中运行时数据区用于存储在JVM运行过程中产生的数据
liu320yj
·
2021-03-28 09:40
Java虚拟机
java虚拟机
内存泄漏
这个Bug的排查之路,真的太有趣了。
这是why哥的第92篇原创文章在《
深入理解Java
虚拟机》一书中有这样一段代码:public class VolatileTest { public static volatile int race
·
2021-03-16 22:42
java
这个Bug的排查之路,真的太有趣了。
这是why哥的第92篇原创文章在《
深入理解Java
虚拟机》一书中有这样一段代码:public class VolatileTest { public static volatile int race
·
2021-03-16 22:19
java
深入理解Java
Script中的this指向
与其他语言相比,js中的this有所不同,也是比较头疼的问题。在参考了一些资料后,今天,就来深入解析一下this指向问题,有不对的地方望大家指出。为什么要用this对于前端开发者来说,this是比较复杂的机制,那么为什么要花大量时间来学习呢,先来看一段代码。如果不使用this,要给identify()和speak()显式传入一个对象:functionidentify(context){return
·
2021-03-16 17:15
深入理解Java
虚拟机(第3版):JVM高级特性与最佳实践 周志明著 PDF下载
深入理解Java
虚拟机(第3版):JVM高级特性与最佳实践周志明著PDF下载作者:周志明出版社:出版社机械工业出版社出版日期:2019-12内容介绍这是一部从工作原理和工程实践两个维度深入剖析JVM的著作
·
2021-03-13 04:47
java
学Java需要学哪些书?
《
深入理解Java
虚拟机:JVM高级特性与最佳实践》如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:1、了解J
秦歌i
·
2021-03-12 17:10
java
java
深入理解Java
虚拟机问题
走近JavaJDK、JRE与JVMJDK全称为JavaSEDevelopmentKit(Java开发工具),提供了编译和运行Java程序所需的各种资源和工具,包括:JRE+java开发工具。JRE全称为Javaruntimeenvironment(Java运行环境),包括:虚拟机+java的核心类库。JVM是运行Java程序的核心虚拟机。内存溢出的问题及解决如上面代码所示,不断向堆内存中加入对象,
0 and 1
·
2021-03-12 13:30
Java
jvm
java
linux
spring
后端
JVM之内存结构
背景:看完《
深入理解Java
虚拟机》和相关博客,对JVM还是没有一个条理清晰的认识,遂提取了书中相关知识点和参考相关优秀博客并整理成JVM专题博文系列,帮助自己巩固并理清有关JVM的知识重点,也分享出来给有需要的童鞋
Jacknolfskin
·
2021-03-11 16:01
关于使用MethodHandle在子类中调用祖父类重写方法的探究
注:这个例子原本出现在周志明先生的《
深入理解Java
虚拟机》--虚拟机字节码执行引擎章节,介于有读者朋友有疑问,这里基于Java代码层面解释一下(原文在《
深入理解Java
虚拟机》读书笔记(七)--虚拟机字节码执行引擎
黄智霖-blog
·
2021-03-11 13:50
深入理解Java虚拟机读书笔记
JVM
JAVA
java
jvm
MethodHandle
03/16牛客刷题总结
深入理解Java
虚拟机p66,真正宣布一个对象死亡,至少需要经历2次标记过程。当第一次标记时会同时进行一次筛选(判断此对象是否有必要执行fi
lhsjohn
·
2021-03-11 10:23
终于讲清楚了:
深入理解Java
应用程序中 final 关键字的各种使用场景
在Java语言众多的关键字中,final关键字无疑是被提到最多的,也是在面试过程中经常被问到的知识点。今天,老王查找了很多材料,最后终于收集了关于final关键字比较全的知识点。首先,final关键字可以修饰的对象有三个:一是修饰变量、二是修饰方法、三是修饰类,下面我们来看经过final关键字修饰的这三种对象会有着怎样的不同。1,final关键字修饰变量在使用final关键字修饰变量时,又可以分为
·
2021-03-09 22:02
javafinal
《
深入理解Java
虚拟机》读书笔记(七)--虚拟机字节码执行引擎(下)
目录一、Java动态类型语言支持1.1MethodHandle1.2MethodHandle和Reflection的区别1.3invokedynamic指令二、基于栈的字节码解释执行引擎2.1基于栈和基于寄存器2.2基于栈的解释器执行过程三、总结一、Java动态类型语言支持动态类型语言的关键特征是它的类型检查的主体过程是在运行期而不是编译期,满足这个特征的语言有很多,比如JavaScript、Py
黄智霖-blog
·
2021-03-08 00:32
深入理解Java虚拟机读书笔记
JVM
JAVA
jvm
java
字节码执行引擎
《
深入理解Java
虚拟机》读书笔记(七)--虚拟机字节码执行引擎(上)
目录前言一、运行时栈帧结构1.1局部变量表1.2操作数栈1.3动态连接1.4方法返回地址1.5附加信息二、确定执行方法2.1解析2.2分派2.2.1静态分派2.2.2动态分派2.2.3单分派和多分派2.2.4虚拟机动态分派的实现前言本章主要讲述虚拟机如何确定调用方法的版本和如何执行方法。一、运行时栈帧结构1.1局部变量表用于存放方法参数和方法内定义的局部变量。在编译阶段,就在方法表的Code属性的
黄智霖-blog
·
2021-03-07 02:30
JVM
深入理解Java虚拟机读书笔记
JAVA
jvm
java
方法调用
Java高级工程师必备技术栈
学会这本神书《
深入理解Java
虚拟机》你就可以入门JVM并且应付大部分人了。4Java多线程高并发第一层学会Java线程基础知识以及常见的锁的用法第二层去理解锁机制,线程的底层原理。
Gun+ing
·
2021-03-07 00:34
入门篇
数据库
java
spring
深入理解Java
虚拟机第三版学习笔记
第2章Java内存区域与内存溢出异常虚拟机运行时内存模型1.方法区方法区(MethodArea)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。虽然《Java虚拟机规范》中把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫作“非堆”(Non-Heap),目的是与Java堆区分开来。2.虚拟机栈与程序计数器一样,Ja
竹草席
·
2021-03-04 15:38
深入理解Java
虚拟机是怎么实现synchronized的?
文章收录地址:Java-Bang专注于系统架构、高可用、高性能、高并发类技术分享在Java程序中,我们可以利用synchronized关键字来对程序进行加锁。它既可以用来声明一个synchronized代码块,也可以直接标记静态方法或者实例方法。当声明synchronized代码块时,编译而成的字节码将包含monitorenter和monitorexit指令。这两种指令均会消耗操作数栈上的一个引用
·
2021-02-26 21:22
深入理解 Java 类加载
本文目的:
深入理解Java
类加载机制;理解各个类加载器特别是线程上下文加载器;Java虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的
码农私房话
·
2021-02-24 20:30
深入理解Java
虚拟机(一)
在此之前我们先来看一下JDK和JRE。我们可以把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK(JavaDevelopmentKit),JDK是用于支持Java程序开发的最小环境。可以把Java类库API中的JavaSEAPI子集和Java虚拟机这两部分统称为JRE(JavaRuntimeEnvironment),JRE是支持Java程序运行的标准环境。Java内存区域一、
╱/.独﹄無㈡oоΟ
·
2021-02-22 19:55
JVM
Java
jvm
《
深入理解Java
虚拟机》读书笔记(四)--虚拟机性能监控与故障处理工具
目录一、JDK命令行工具1.1jps:虚拟机进程状况工具1.2jstat:虚拟机统计信息监视工具1.3jinfo:Java配置信息工具1.4jmap:Java内存映像工具1.5jhat:虚拟机堆转储快照分析工具1.6jstack:Java堆栈跟踪工具1.7HSDIS:JIT生成代码反汇编二、JDK可视化工具2.1JConsole2.2VisualVM三、总结一、JDK命令行工具注:此书是第二版,本
黄智霖-blog
·
2021-02-22 00:20
深入理解Java虚拟机读书笔记
JVM
JAVA
jvm
java
工具
《
深入理解Java
虚拟机》阅读——垃圾回收机制
《
深入理解Java
虚拟机》阅读——垃圾回收机制前言why——为什么需要垃圾回收what——垃圾回收做些什么where——去哪里回收垃圾how——垃圾回收是怎么做的垃圾是否要回收引用计数法可达性分析算法方法区判断是否可回收垃圾回收的方式方法论标记
God works
·
2021-02-21 22:23
study
jvm
垃圾回收
java
深入理解java
的 抽象类和接口
抽象类和接口抽象类语法规则注意事项接口理解接口常见的两个接口ComparableComparatorCloneable抽象类语法规则没有实际工作的方法,比如上篇文章的Shape类,我们可以把它设计成一个抽象方法(abstractmethod),包含抽象方法的类我们称为抽象类(abstractclass)abstractclassShape{abstractpublicvoiddraw();}在dr
满眼*星辰
·
2021-02-21 15:24
javaSE
抽象类
多态
接口
java
《
深入理解Java
虚拟机》读书笔记(三)--垃圾收集器与内存分配策略(上)
一、垃圾回收1.1判断对象是否可用判断对象是否可用主要有两种方法:引用计数法和可达性分析。引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不再被使用的。python、Squirrel等使用这种算法。优点:实现简单,效率高缺点:可能出现循环引用(A引用B,B引用A,除此之外再没有任何地方引用A和B,由于两者相互引用,
黄智霖-blog
·
2021-02-18 01:56
深入理解Java虚拟机读书笔记
JVM
JAVA
垃圾收集
java
jvm
《
深入理解Java
虚拟机》读书笔记(二)--自动内存管理机制
目录一、运行时数据区域1.1程序计数器1.2虚拟机栈1.2.1局部变量表1.3本地方法栈1.4堆1.5方法区1.5.1运行时常量池1.5.2本地直接内存二、HotSpot虚拟机对象探秘2.1对象的创建2.1.1内存空间分配2.2对象内存布局2.2.1对象头2.2.2实例数据2.2.3对齐填充2.3对象的访问定位2.3.1句柄2.3.2直接指针三、总结一、运行时数据区域Java虚拟机在执行Java程
黄智霖-blog
·
2021-02-17 01:34
深入理解Java虚拟机读书笔记
JVM
JAVA
jvm
java
hotspot
深入了解java web_《
深入理解Java
Web开发技术:探索基于主流框架的
图书目录:第1章javaweb初体验1.1学习java的巨大优势1.2学习java需要了解的那些事1.3web技术介绍和工作原理1.4开发前的准备1.5安装并配置tomcat服务器1.6初学者应该明白的几个问题第2章html技术介绍2.1创建基本静态页面2.2html页面布局2.3处理表单2.4特效和多媒体处理2.5谈xml与html的区别2.6初学者应该明白的几个问题第3章css技术基石出3.1
谢流远
·
2021-02-13 03:23
深入了解java
web
深入理解Java
之jvm启动流程
jvm是java的核心运行平台,自然是个非常复杂的系统。当然了,说jvm是个平台,实际上也是个泛称。准确的说,它是一个java虚拟机的统称,它并不指具体的某个虚拟机。所以,谈到java虚拟机时,往往我们通常说的都是一些规范性质的东西。那么,如果想要研究jvm是如何工作的,就不能是泛泛而谈了。我们必须要具体到某个指定的虚拟机实现,以便说清其过程。1.说说openjdk因为java实际上已经被orac
·
2021-02-08 16:01
深入理解java
script中的this
深入理解Js中的thisJavaScript作用域为静态作用域staticscope,但是在Js中的this却是一个例外,this的指向问题就类似于动态作用域,其并不关心函数和作用域是如何声明以及在何处声明的,只关心它们从何处调用,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,当然实际上this的最终指向的是那个调用它的对象。作用域我们先来了解一下Jav
·
2021-02-08 10:40
深入理解Java
中的SPI机制
本文通过探析JDK提供的,在开源项目中比较常用的JavaSPI机制,希望给大家在实际开发实践、学习开源项目提供参考。1SPI是什么SPI全称ServiceProviderInterface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。整体机制图如下:JavaSPI实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。系统设计的各个抽象,往
·
2021-02-07 16:14
JAVA_LINE
JAVA进阶相关书籍:《JAVA并发编程实践》、《LinuxShell脚本攻略》、《spring揭秘精选版》、《高性能Mysql》、《
深入理解Java
虚拟机[JVM高级特性与最佳实践](周志明)》、《图解
一只程序猿_44202871
·
2021-02-06 17:02
资料
深入理解Java
Script执行上下文和执行栈
前言如果你是一名JavaScript开发者,或者想要成为一名JavaScript开发者,那么你必须知道JavaScript程序内部的执行机制。执行上下文和执行栈是JavaScript中关键概念之一,是JavaScript难点之一。理解执行上下文和执行栈同样有助于理解其他的JavaScript概念如提升机制、作用域和闭包等。本文尽可能用通俗易懂的方式来介绍这些概念。一、执行上下文(Execution
·
2021-02-02 13:02
JVM学习之路1-内存模型
这里总结和回顾的是Jvm系列,是基于周志明写的《
深入理解java
虚拟机》进行的总结,本章是对jvm内存模型的整理。知识点:jvm内存模型依照书中所写,对这块内容画一个图,我们依照这幅图来讲。
·
2021-02-02 02:23
jvm
深入理解Java
Script执行上下文和执行栈
前言如果你是一名JavaScript开发者,或者想要成为一名JavaScript开发者,那么你必须知道JavaScript程序内部的执行机制。执行上下文和执行栈是JavaScript中关键概念之一,是JavaScript难点之一。理解执行上下文和执行栈同样有助于理解其他的JavaScript概念如提升机制、作用域和闭包等。本文尽可能用通俗易懂的方式来介绍这些概念。一、执行上下文(Execution
·
2021-02-01 11:37
如何理解和运用ClassLoader
定义根据《
深入理解Java
虚拟机》提到“通过一个类的全限定名(packageName.ClassName)来获取描述此类的二进制字节(class文件字节)这个动作的代码模块就叫做类加载器(ClassLoader
·
2021-01-30 17:19
深入理解Java
Script作用域和作用域链
前言JavaScript中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域和作用域链,希望大家有所收获!作用域(Scope)1.什么是作用域作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理解,我们先来看个例子:fu
·
2021-01-30 13:46
深入理解Java
Script作用域和作用域链
前言JavaScript中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域和作用域链,希望大家有所收获!作用域(Scope)1.什么是作用域作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理解,我们先来看个例子:fu
·
2021-01-30 13:19
《
深入理解Java
虚拟机》-- 对缓存的理解
不才,笔者第一次学习缓存,是在学习redis的时候,是在培训班学习了一些java的启蒙知识。但是在后来的深入学习之后,对缓存又有了新的认识。1.池的思想。比如java的各种池,常量池,线程池,句柄池,连接池,池的思想也是源于缓存,就是把一些需要反复建立的对象从一个空间***搬***到一个更快更容易获取的空间,减少了因为对象的建立而导致的等待时间,也减少了反复新建一个对象的资源和空间。2.Java的
零陵上将邢道荣
·
2021-01-26 17:15
java
spring
《
深入理解Java
虚拟机》读后感 -- final
**粗读《
深入理解Java
虚拟机》之后,对final关键字的思考**最近在读《
深入理解Java
虚拟机》之后产生的一些思考,故写这边文章表达自己的一些看法。
零陵上将邢道荣
·
2021-01-26 16:17
java
JVM:虚拟机执行子程序-虚拟机类加载机制
本博客主要参考周志明老师的《
深入理解Java
虚拟机》第三版欢迎指出文章的不足之处;更多内容请点进爱敲代码的小游子查看虚拟机类加载机制目录概述一、类加载的时机1、被动引用例子一2、被动引用例子二3、被动引用的例子之三
小游子:
·
2021-01-26 09:18
Java虚拟机
java
jvm
面试
编程语言
一些比较实用的书籍推荐
核心技术·卷I(原书第10版):基础知识》——有一点基础《Java核心技术·卷II(原书第10版):高级特性》——有一点基础《Java编程思想(第4版)》《Effectivejava中文版(第2版)》《
深入理解
努力的耿耿努力
·
2021-01-22 16:07
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
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
其他