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最佳学习笔记---总览
2019独角兽企业重金招聘Python工程师标准>>>本笔记参照了周志明《
深入理解Java
虚拟机:JVM高级特性与最佳实践》第三版,读完之后受益匪浅,让我对Java虚拟机有了一个深刻的认识,这也是Jvm
weixin_33724659
·
2020-08-11 14:52
浅谈JAVA中静态绑定和动态绑定(源自《
深入理解Java
虚拟机》)
静态绑定:又称“前期绑定”,发生在编译期;主要是方法重载(overload);在编译阶段,javac编译器会根据参数的静态类型决定使用哪个重载版本。动态绑定:又称“后期绑定”,发生在运行期;主要是方法重写(override);在运行阶段,Java虚拟机根据参数的实际类型决定调用哪个重写版本,查找的顺序是从子类->父类,直到找到该方法的声明为止;如果在层次结构的任何类中都找不到该方法,则虚拟机抛出错
智造官
·
2020-08-11 12:07
JAVA
OOP面向对象编程思想
深入理解Java
中的堆和栈
我想这篇足以让大家很清晰理解Java的栈和堆栈的区别。下面的是我收集了好多网友的资料加以整理的。Java中的堆和栈Java把内存划分成两种:一种是栈内存,一种是堆内存。1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中
BridgeGeorge
·
2020-08-11 06:19
Java
《
深入理解java
虚拟机:jvm高级特性与最佳实践》笔记——Java线程和锁
a)线程实现:thread类的所有关键方法都是native的,意味着平台相关。i.使用内核线程(KLT直接由操作系统内核支持的线程)实现:内核通过调度器对线程进行调度,并负责将线程任务映射到各个处理器上。程序使用轻量级进程(LWP,一种内核线程的高级接口,即程序线程),这种内核线程与轻量级进程之间1:1的关系成为一对一的线程模型。【局限性】:进程操作需要进行系统调用,代价高,在用户态和内核态来回切
龙飞傲阳
·
2020-08-11 04:51
class和Class的区别
class和Class的区别Java中Class类的作用与
深入理解Java
中Class类的作用与深入理解在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。
super_柯
·
2020-08-11 04:32
java基础
JVM高级特性与最佳实战(六)————线程安全与锁优化
引言今天是我学习《
深入理解java
虚拟机》最后一天了,我希望能把最后一章讲解的清晰。根据我的开发经验讲出自己的解释,给大家一个直观的理解。学完这个以后,下一步我打算把设计模式学完。
select you from me
·
2020-08-11 03:35
JVM高级特性与最佳实战
《
深入理解Java
虚拟机——JVM高级特性与最佳实践》学习笔记——晚期(运行期)优化
晚期(运行期)优化概述在部分的商用虚拟机(SunHotSpot、IBMJ9)中,Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为”热点代码”(HotSpotCode),为了提供热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(JIT编译器)HotSp
benhuo931115
·
2020-08-11 02:58
jvm学习
《
深入理解Java
虚拟机——JVM高级特性与最佳实践》学习笔记——线程安全与锁优化
线程安全与锁优化线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的线程安全的代码都必须具备一个特征:代码本身封装了所有必要的正确性保障手段(如互斥同步等),令调用者无须关心多线程的问题,更无须自己采取任何措施来保证多线程的正确调用Java语言
benhuo931115
·
2020-08-11 02:27
jvm学习
软件开发:
深入理解Java
中的Arrays.sort()方法
Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。但是sort()的参数有好几种,基本上是大同小异,下面是以int型数组为例的Arrays.sort()的典型用法importjava.util.Arrays;importjava.util.Comparator;/***Arrays.sort()排序*/publicclassSo
weixin_44782140
·
2020-08-11 00:47
深入理解Java
垃圾收集策略
目录概述判断对象是否存活可达性分析算法四大引用垃圾收集算法标记-清除算法标记-复制算法标记-整理算法对比总结概述垃圾收集(GarbageCollection,简称GC)机制是Java类语言中的一个强大优势,在通常情况下,我们只需关注对象的创建,无需关注什么时候回收。当本应被回收对象没有及时回收的现象成为内存泄漏,当因为内存空间不足够分配给新的对象时就会导致了内存溢出,导致程序出错。垃圾收集机制能够
WhaleDev
·
2020-08-10 23:14
JVM
读书笔记
Java内存区域与对象探秘
目录前言内存区域对象对象创建过程内存布局访问定位前言本文是笔者阅读《
深入理解Java
虚拟机》第二章的读书笔记以及一些相关知识点的总结。
WhaleDev
·
2020-08-10 23:14
JVM
读书笔记
Java内存区域与内存溢出异常
参考《
深入理解Java
虚拟机》运行时数据区域方法区(共享)堆(共享)虚拟机栈(线程私有)本地方法栈(线程私有)程序计数器(线程私有)方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据不需要连续内存且可扩展也可固定大小
Sariel-
·
2020-08-10 21:15
java
【
深入理解java
集合】-TreeMap实现原理
一、红黑树介绍1、R-BTree概念红黑树(RedBlackTree,简称R-BTree)是一种自平衡二叉查找树,它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的:它可以在O(logn)时间内做查找,插入和删除,这里的n是树中元素的数目。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该
Wonder ZH
·
2020-08-10 20:36
Java集合
深入理解Java
Script的深拷贝和浅拷贝
深入理解Java
Script的深拷贝和浅拷贝为了更好的理解js的深浅拷贝,我们先来理解一些js基本的概念——Javascript有五种基本数据类型(也就是简单数据类型),它们分别是:Undefined,
惠子huiz
·
2020-08-10 19:22
Java对象内存大小计算
最近在读《
深入理解Java
虚拟机》,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存?
潘建南
·
2020-08-10 18:13
Java
JVM
从JVM运行角度解释 为什么类的成员变量有默认初始值 而方法内的局部变量却没有初始值
最近又重新研读了《
深入理解Java
虚拟机》,其中一个知识点在这里记录一下。类的成员变量有默认初始值,而方法内的局部变量却没有初始值。
一步一台阶
·
2020-08-10 17:39
java
深入理解Java
枚举类型 + EnumMap源码分析
一、基本概念枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类。二、枚举的优缺点1、优点EffctiveJava中之所以推荐用枚举代替所有常量Code,原因如下:(1)类型检查,有效性检查(2)枚举作为一个类,可以有自己的属性(通常应该是常量,我没遇到过不是的情况)以
素小暖
·
2020-08-10 16:40
Java
SE
Android游戏开发学习路线
2、阅读《
深入理解Java
虚拟机》周志明著,至少前五章,理解Java内存管理机制,继而可以有理有据进行代码优化。
Java_Super_Man
·
2020-08-10 15:37
Android
jvm-------GC算法:标记-清除/复制/标记-整理
(或者公众号内点击网赚获取彩蛋)参考书籍
深入理解Java
虚拟机第二版周志明著引言根搜索算法解决的是垃圾搜集的基本问题,也就是上面提到的第一个问题,也是最关键的问题,就是哪些对象可以被回收。
yueloveme
·
2020-08-10 12:50
jvm
JavaScript异步编程设计快速响应的网络应用
一、
深入理解Java
Script事件1.事件的调度JavaScript事件处理器在线程空闲之前不会
奋飛
·
2020-08-10 08:44
JavaScript异步编程
JavaScript异步编程
还搞不定方法区、常量池、字符串常量池吗?
方法区,常量池,运行时常量池一直困扰了我很久,最近看了很多博客又再看了一遍《
深入理解java
虚拟机》(第三版)方法区放啥?
manDD_HH
·
2020-08-10 06:55
JVM
jvm
java
jdk
【JVM虚拟机】深入理解JVM垃圾回收算法
在这篇文章是自己参考《
深入理解Java
虚拟机》一书学习后的总结,看完相信就会对垃圾回收有了一定的了解。垃圾回收一、哪些内存需要回收?1.对象是否还有用?
Moo_Lavender
·
2020-08-10 06:15
Java
《
深入理解Java
虚拟机》阅读笔记
内存管理机制Java内存区域与内存溢出异常运行时数据区域Java虚拟机在执行程序的过程中,会将内存划分为方法区,堆,虚拟机栈,本地方法栈,程序计数器。程序计数器:当前线程执行字节码的行号指示器。唯一一个没有规定OOM的区域,线程私有。Java虚拟机栈:生命周期与线程相同,线程私有。它描述的是Java方法执行的内存模型。Java方法在执行的同时都会创建一个栈帧(StackFrame)用于存储局部变量
SoarMagina
·
2020-08-10 05:27
Java
java
博客整体目录
数据结构重点掌握:二分、快排、归并剑指offerJava基本排序算法二分法三分法树的前中后序遍历平衡二叉树实现KMP算法最大公约数数学相关2.面试准备校招准备学习路线【计算机网络+操作系统】面试准备【
深入理解
佛系宅女
·
2020-08-10 04:36
近两年目标
java学习对ssh、ssm框架深入学习对redis学习《redis开发与运维》对dubbo学习《码出高效:Java开发手册》《java编程思想》《
深入理解Java
虚拟机》《Java并发编程艺术》《Java
weixin_30256505
·
2020-08-10 02:55
【Java线程】锁机制:synchronized、Lock、Condition
http://www.infoq.com/cn/articles/java-memory-model-5
深入理解Java
内存模型(五)——锁http://www.ibm.com/developerworks
AlphaWang
·
2020-08-10 02:02
【Java
SE】
深入理解Java
并发编程之线程池技术
本文转载自个人掘金博客:https://juejin.im/post/5ee75a2b6fb9a0480170718f线程池的好处Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池,相对于单线程串行处理(SerialProcessing)和为每一个任务分配一个新线程(OneTaskOneNewThread)的做法能够带来
Tear_code
·
2020-08-10 01:44
java
concurrent
java
别再说自己不会JVM了,看完这篇能和面试官扯上半小时
可以顺便加个关注哦,回家不迷路,不定期更新博客~~周志明那本《
深入理解JAVA
虚拟机》翻了一遍又一遍,终于鼓起勇气在这里写下关于JVM的博客!!!
Yangc_0815
·
2020-08-10 00:24
JVM技术内幕大揭秘
jvm
java
面试
学习笔记 |
深入理解Java
内存模型
Java内存模型Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域:程序计数器程序计数器(ProgramCounterRegister)是一块非常小的内存空间,它的作用可以看作是当前
lgfeng218
·
2020-08-09 22:01
深入理解Java
虚拟机(第二版) 第九章:类加载及执行子系统的案例与实战
第九章类加载及执行子系统的案例与实战9.1概述9.2Tomcat:正统的类加载器架构9.3OSGi:灵活的类加载器架构9.4字节码生成技术与动态代理的实现9.5Retrotranslator:跨越JDK版本9.1概述在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多,Class文件以何种格式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行
lzcWHUT
·
2020-08-09 21:06
JVM
【程序猿历程】2019 年总结,2020 年计划
2019年总结1、读书读书情况良好,但是感觉领悟略少,只是停留在读的阶段了2、结婚生子这个完成的很好3、涨工资1000元这个没有达成2020年计划1、读书《
深入理解java
虚拟机》第二版《重构改善既有代码的设计
素小暖
·
2020-08-09 21:05
程序猿历程
JVM对循环引用对象的回收
(参考《
深入理解JAVA
虚拟机》--周志明)$catReferenceCountingGC.javapubl
chenzuancong9642
·
2020-08-09 20:34
深入思考jvm虚拟机的线程工作内存到底拷贝了 主内存的 什么?,以及volatile修饰对象和基本类型的区别
在
深入理解java
虚拟机(第一版)这本书中说:每个线程工作时,都会把主内存中的数据拷贝到线程自己的工作内存中去。
changqijihua
·
2020-08-09 20:39
java学习
android
Java虚拟机中的内存区域划分——运行时数据区域解析
深入理解Java
虚拟机的前提是熟悉Java
boker_han
·
2020-08-09 20:04
JVM学习
Jvm垃圾回收GC Root与安全点Safepoint
我看很多资料在介绍GCRoot时,并没有说栈帧的操作数栈上引用的对象也是GCRoot,包括我去翻阅《
深入理解Java
虚拟机》这本书也是一样。所以我才好奇。
Java艺术
·
2020-08-09 19:01
java接口与对象区别
“`列表内容
深入理解Java
的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。
Yw_Ambition
·
2020-08-09 19:36
java
面向对象编程
【Java虚拟机】《
深入理解Java
虚拟机》| 垃圾收集器与内存分配策略
垃圾收集器与内存分配策略前提概念什么是垃圾回收(GC)?那些内存要回收?什么时候回收?如何回收?如何判断那些对象可以回收?引用计数法可达性分析法强引用、软引用、弱引用、虚引用不可达对象死亡前的救赎-finalize()方法回收方法区垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法垃圾收集器的介绍(基于JDK1.7)Serial收集器/SerialOld收集器ParNew收集器Paral
SnailMann
·
2020-08-09 19:02
Java虚拟机
JAVA方面的书籍推荐
《
深入理解Java
虚拟机:JVM高级特性与最佳实践》如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:1、了解Java代码的底层运行机制2、定位性能问题3
Flykos
·
2020-08-09 18:21
每周一写
Java内存模型-
深入理解JAVA
虚拟机-笔记(一)
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里的人却想出来。运行时数据区域Java虚拟机在执行Java程序的过程中,会把所有它管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,.根据的规定,java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示:1.程序计数器程序计数器(ProgramCounterRegister)是一块较小的
柴犬E
·
2020-08-09 14:39
Android
为什么CAS加锁是线程安全的?--理解原子操作
synchronized进行重大优化后,其广为人诟病的性能问题也得到了改善,与ReentrankLock相比性能方面相差无几性能的改善得益于偏向锁、轻量级锁的引入,它们具体的实现方式可参考《Java并发编程的艺术》和《
深入理解
codespoon
·
2020-08-09 14:00
为什么CAS加锁是线程安全的?--理解原子操作
synchronized进行重大优化后,其广为人诟病的性能问题也得到了改善,与ReentrankLock相比性能方面相差无几性能的改善得益于偏向锁、轻量级锁的引入,它们具体的实现方式可参考《Java并发编程的艺术》和《
深入理解
codespoon
·
2020-08-09 14:00
Java基础——
深入理解Java
线程池
简介我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Jav
蹲街式等待
·
2020-08-09 13:27
Java基础
深入理解java
虚拟机(二)
垃圾收集器与内存分配策略哪些内存需要回收?1、判断对象是否存活的算法引用计数器算法、可达性分析算法2、垃圾收集算法a、标记清楚法b、复制算法c、标记整理算法d、分代收集算法什么时候回收?如果对象在进行可行性分析后发现没有与GCROOTS相连接的引用链,那它将会被第一次标记并筛选是否有必要进行finalize()方法,如果没有被finalize()覆盖或者已经被调用过一次,则可进进去等待回收队列F-
毛豆粉
·
2020-08-09 07:43
Java
jvm
深入理解Java
注解类型(@Annotation)
关联文章:
深入理解Java
类型信息(Class对象)与反射机制
深入理解Java
枚举类型(enum)
深入理解Java
注解类型(@Annotation)
深入理解Java
并发之synchronized实现原理
深入理解
zhengfei1992
·
2020-08-09 06:22
java
java
Annotation
注解
深入理解Java
类加载器(ClassLoader)
关联文章:
深入理解Java
类型信息(Class对象)与反射机制
深入理解Java
枚举类型(enum)
深入理解Java
注解类型(@Annotation)
深入理解Java
类加载器(ClassLoader)
深入理解
zhengfei1992
·
2020-08-09 06:21
java
java
类加载器
ClassLoader
java中的volatile详解
参考资料:《
深入理解java
虚拟机》(周志明)java中的volatile详解1.JAVA为什么要有一个volatile修饰符?
吐痰高手
·
2020-08-09 04:53
JVM学习
深入理解Java
线程池(3):ThreadPoolExecutor 线程池关闭相关方法与操作
shutdown用于关闭线程池的方法之一。简单来说,会等任务都完成后在关闭线程池。publicvoidshutdown(){finalReentrantLockmainLock=this.mainLock;mainLock.lock();//全局锁try{//查看调用shutdown的线程是否有权限结束线程池中的worker线程checkShutdownAccess();//变更标志位advanc
xiaoyuchencsdn
·
2020-08-09 03:07
java8
volatile原理-指令重排序
内容参考自《
深入理解java
虚拟机》1保证可见性。
草丛里的码农
·
2020-08-09 02:42
JVM
java
JVM必知必会---运行时数据区(2)--- Java虚拟机栈
参考:《
深入理解Java
虚拟机第三版》《宋红康JVM教程》目录一、概述二、对Java虚拟机栈的理解1.虚拟机栈的特点2.通过程序来理解3.栈中可能出现的异常4.设置栈的内存大小5.Java虚拟机栈的内部结构三
四五又十
·
2020-08-09 02:22
JVM
深入理解Java
HelloWorld
HelloWorld是每个Java程序员都知道的程序。它很简单,但是简单的开始可以引导你去深入了解更复杂的东西。这篇文章将探究从这个HelloWorld这个简单程序中可以学到的东西。如果你对HelloWorld有独到的理解,欢迎留下你的评论。HelloWorld.java?12345678910111213publicclassHelloWorld{/****@paramargs*/publics
weixin_30364147
·
2020-08-08 23:38
上一页
31
32
33
34
35
36
37
38
下一页
按字母分类:
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
其他