摘要:
6. Hashcode的作用 官方对于hashCode的解释如下: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode met 阅读全文
posted @ 2017-06-09 02:36
不会就问咯
阅读(365)
评论(0)
推荐(1)
摘要:
学习一门语言基础是非常重要的,因此本文总结了一些常见的Java基础问题的解答,希望可以帮到大家。 1. 九种基本数据类型的大小,以及他们的封装类。 9种基本数据类型 基本类型 包装类型 大小 boolean Boolean - byte Byte 8bit short Short 16bit int 阅读全文
posted @ 2017-06-09 02:35
不会就问咯
阅读(392)
评论(0)
推荐(1)
摘要:
这篇文章详细描述了Java虚拟机的内在结构。下面这张图来自《The Java Virtual Machine Specification Java SE 7 Edition》,它展示了一个典型的JVM的主要的内部结构。 接下来的2个部分,将详细介绍这幅图中所有组成结构。 第一部分涵盖了每个线程都会生 阅读全文
posted @ 2017-06-09 02:30
不会就问咯
阅读(351)
评论(0)
推荐(1)
摘要:
参数设置 在Java虚拟机的参数中,有3种表示方法用“ps -ef |grep "java"命令,可以得到当前Java进程的所有启动参数和配置参数: 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现 阅读全文
posted @ 2017-06-09 02:29
不会就问咯
阅读(4061)
评论(0)
推荐(0)
摘要:
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。 一、Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆。按照官方的说法:“ 阅读全文
posted @ 2017-06-09 02:28
不会就问咯
阅读(207)
评论(0)
推荐(0)
摘要:
这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。您可以选择自己的需要选择不同的操作系统和对应的JDK的版本,但还是推荐您使用Sun公司发布的JDK。 Tomcat配置JVM参数 Tomcat本身不能直 阅读全文
posted @ 2017-06-09 02:28
不会就问咯
阅读(747)
评论(0)
推荐(0)
摘要:
在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后,内功就更主要了。一个内功低的人招式在奇妙也打不过一个内功高的人。比如,你剑法再厉害,一剑刺过来,别 阅读全文
posted @ 2017-06-09 02:27
不会就问咯
阅读(304)
评论(0)
推荐(0)
摘要:
16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析 阅读全文
posted @ 2017-06-09 02:27
不会就问咯
阅读(263)
评论(0)
推荐(0)
摘要:
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 堆栈是栈 JVM栈和本地方法栈划分 Java中的堆,栈和c/c++中的堆,栈 数据结构层面的堆,栈 os层面的堆,栈 JVM的堆,栈和os如何对应 为啥方法的调用需要栈 属于月经问题了,正好碰上有人问我这类比 阅读全文
posted @ 2017-06-09 02:26
不会就问咯
阅读(2014)
评论(0)
推荐(0)
摘要:
深入Java虚拟机,ClassLoader是其中重要的一个环节。看书+查资料+动手,整理出如下要点: 另附ClassLoader.loadClass与Class.forName的区别,主要在于是否初始化: from: https://yq.aliyun.com/articles/27110?spm= 阅读全文
posted @ 2017-06-09 02:24
不会就问咯
阅读(380)
评论(0)
推荐(0)
摘要:
原文:http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html 格式和部分内容稍作修改。 在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来 阅读全文
posted @ 2017-06-09 02:24
不会就问咯
阅读(772)
评论(0)
推荐(0)
摘要:
使用BCEL动态改变Class内容 之前对Class文件中的常量池,Method的字节码指令进行了说明。JVM Class详解之一JVM Class详解之二 Method字节码指令现在我们开始实际动手,使用BCEL改变字节码指令,对Class文件进行功能扩充。 先介绍下BCEL全程Apache By 阅读全文
posted @ 2017-06-09 02:18
不会就问咯
阅读(1014)
评论(0)
推荐(0)
摘要:
首先看Class中包含哪些信息简单的说所有Java文件中有的信息class文件都有,编译器帮我们将java文件转化成了JVM能看懂的class格式而已 Class 概述 Class文件是一组以8位字节为基础的二进制流,各个数据项目按照严格顺序紧凑排列在Class文件中。所有的16位,32位,64位长 阅读全文
posted @ 2017-06-09 02:17
不会就问咯
阅读(259)
评论(0)
推荐(0)
摘要:
一些不得不说的概念 JVM JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Ja 阅读全文
posted @ 2017-06-09 02:16
不会就问咯
阅读(289)
评论(0)
推荐(0)
摘要:
前言 现在市场上最常见的虚拟化软件有VMWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等,这些软件统称之为VMM(Virtual Machine Monitor),使用不同的虚拟化实现。而这 阅读全文
posted @ 2017-06-09 02:15
不会就问咯
阅读(2412)
评论(0)
推荐(0)
摘要:
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。 对JVM内存的系统级的调优主要 阅读全文
posted @ 2017-06-09 02:14
不会就问咯
阅读(232)
评论(0)
推荐(0)
摘要:
JVM内存组成结构 JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和 阅读全文
posted @ 2017-06-09 02:13
不会就问咯
阅读(164)
评论(0)
推荐(0)
摘要:
Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析 阅读全文
posted @ 2017-06-09 02:12
不会就问咯
阅读(182)
评论(0)
推荐(0)
摘要:
前言 在Java语言开发过程中,out of memory错误是很常见的一种错误。对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生。在Java 8中内存结构有进行了改变,Metaspace替代了PermGen。 内存结构简介 JVM的内存结构如下图所示:(图片来 阅读全文
posted @ 2017-06-09 02:12
不会就问咯
阅读(204)
评论(0)
推荐(0)
摘要:
本文主要内容: 堆的回顾 串行收集器 并行收集器 CMS收集器 零、堆的回顾: 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块比较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。当回收时,将Eden 阅读全文
posted @ 2017-06-09 02:11
不会就问咯
阅读(216)
评论(0)
推荐(0)
摘要:
HotSpot是较新的Java虚拟机技术,用来代替JIT(Just in Time)技术,可以大大提高Java运行的性能。Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢。而该技术将常用的部分代码编译为本地(原生,native)代码,这样显著提高了性能。用于服务器版和标准版的HotS 阅读全文
posted @ 2017-06-09 02:10
不会就问咯
阅读(405)
评论(0)
推荐(0)
摘要:
本文主要内容: GC的概念 GC算法 引用计数法(无法解决循环引用的问题,不被Java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集 Stop-The-World 一、GC的概念: GC:Garbage Collection 垃圾收集 阅读全文
posted @ 2017-06-09 02:10
不会就问咯
阅读(320)
评论(0)
推荐(0)
摘要:
本文主要内容: Trace跟踪参数 堆的分配参数 栈的分配参数 零、在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现在就告诉你怎么打印。 (1) 阅读全文
posted @ 2017-06-09 02:09
不会就问咯
阅读(360)
评论(0)
推荐(0)
摘要:
主要内容如下: JVM启动流程 JVM基本结构 内存模型 编译和解释运行的概念 一、JVM启动流程: JVM启动时,是由Java命令/javaw命令来启动的。 二、JVM基本结构: JVM基本结构图: 《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的: Java中的内存分配: Java程 阅读全文
posted @ 2017-06-09 02:08
不会就问咯
阅读(272)
评论(0)
推荐(0)
摘要:
主要内容如下: JVM的概念 JVM发展历史 JVM种类 Java语言规范 JVM规范 一、JVM的概念: JVM: Java Virtual Machine,意为Java虚拟机。 虚拟机: 指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统 有哪些虚拟机: VMWar 阅读全文
posted @ 2017-06-09 02:07
不会就问咯
阅读(277)
评论(0)
推荐(0)
摘要:
先把本文的目录画一个思维导图:(图的源文件在本文末尾) 一、Java引用的四种状态: 强引用: 用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。 如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMe 阅读全文
posted @ 2017-06-09 01:58
不会就问咯
阅读(545)
评论(0)
推荐(0)
摘要:
内存管理是计算机编程中的一个重要问题,一般来说,内存管理主要包括内存分配和内存回收两个部分。不同的编程语言有不同的内存管理机制,本文在对比C++和Java语言内存管理机制的不同的基础上,浅析java中的内存分配和内存回收机制,包括java对象初始化及其内存分配,内存回收方法及其注意事项等…… jav 阅读全文
posted @ 2017-06-09 01:56
不会就问咯
阅读(18435)
评论(0)
推荐(1)
摘要:
本篇文章主要介绍了"JAVA GC垃圾收集器的分析",主要涉及到JAVA GC垃圾收集器的分析方面的内容,对于JAVA GC垃圾收集器的分析感兴趣的同学可以参考一下。 在 很多人看来,java中内存的动态分配与内存回收已经不用用户担心了,因为它给我们提供了GC自动回收 ,感觉一切都进入了自动化了,但 阅读全文
posted @ 2017-06-09 01:53
不会就问咯
阅读(404)
评论(0)
推荐(0)
摘要:
对象死亡历程 1.基本的mark&sweep是必须的,后续的都是对他的改进, 2.young代理的survivor就是使用了复制算法,避免碎片 3.还有标记整理算法(压缩),就是将存活的对象移动到一块,空出连续的空间; 4.当然还有分代算法 “引用的定义” JDK1.2之前,引用很纯粹,也很狭隘,对 阅读全文
posted @ 2017-06-09 01:42
不会就问咯
阅读(610)
评论(0)
推荐(0)
摘要:
《JAVA编程思想》: Java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的 阅读全文
posted @ 2017-06-09 01:27
不会就问咯
阅读(409)
评论(0)
推荐(0)
摘要:
总结:强引用:普通new对象的引用User user = new User();jvm宁愿抛出OutOfMemory异常也不会去回收该对象软引用:SoftReference引用的装饰的对象,该对象的强引用应该赋值空这里配合ReferenceQueue使用(也可以不配合),因为SoftReferenc 阅读全文
posted @ 2017-06-09 00:59
不会就问咯
阅读(211)
评论(0)
推荐(0)

浙公网安备 33010602011771号