在内存管理方面,Java相对于C和C++的区别在于Java具有内存动态分配以及垃圾收集技术,但平时我们很少去关注JVM的内存结构以及GC,在出现内存泄露或溢出方面的问题,排查工作将变得异常艰难。 1. 运行时数据区域 Java虚拟机在执行Java程序时会将其管理的内存按照用于划分为...
分类:
编程语言 时间:
2015-03-19 17:58:51
阅读次数:
231
收集算法是内存回收的方法论,垃圾收集据是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现没有规定,不同的厂商、不同版本的虚拟机所提供的垃圾收集器可能会有很大差别,一般都会提供参数供用户根据自己的所用特点和要求组合出各个年代所使用的收集器。直到现在还没有最好的收集器,更加设有万能的收集器,只是对具体应用选择最合适的收集器。...
分类:
其他好文 时间:
2015-03-19 10:19:13
阅读次数:
199
第二章 操作系统结构在具有多个命令解释程序选择的系统中,解释程序被称为外壳(shell)命令解释程序的主要作用是获取并执行用户指定的下一条命令。有三种应用程序员常用的API,适用于windows系统的win32API,适用于POSIX系统的POSIX API,以及用于设计运行于JAVA虚拟机程序的J...
分类:
其他好文 时间:
2015-03-19 08:51:00
阅读次数:
206
1、强引用 平时我们编程的时候例如:Object object=new Object();那object就是一个强引用了。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不....
分类:
编程语言 时间:
2015-03-18 23:15:09
阅读次数:
263
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。一、Java JVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Ja...
分类:
其他好文 时间:
2015-03-18 17:26:35
阅读次数:
133
垃圾收集器在对堆进行回收前,首先要做的事情就是要确定这些对象之中哪些还“存活”着, 哪些已经“死去" (即不可能再被任何途径使用的对象)。...
分类:
编程语言 时间:
2015-03-18 16:04:02
阅读次数:
164
最近开始读tij,好急性不如烂笔头,所以还是记录一下,方便以后查阅。
方法重载的问题:
方法的重载,区别是靠传入方法的参数,而不是返回值。比如f(),如果是返回值的话,容易产生歧义。
方法的重载中,会出现传入参数的类型提升或者降低;比如说如果有个方法可以接受int型,如果传入一个char类型,调用...
分类:
编程语言 时间:
2015-03-18 16:01:01
阅读次数:
174
使用JAVA已经快三年了,但说来惭愧,一直以来认为Java就是Java语言本身,最多再包括一个JVM,对于整个Java的体系结构还是不甚明了,现在有时间把《深入理解Java虚拟机》这本书读了一下,也算解答了自己很多的疑惑。 JAVA不仅仅是一门语言,而是由一系列软件和规范形成的技术体系,我们...
分类:
编程语言 时间:
2015-03-18 15:34:31
阅读次数:
148
1.系统默认三个类加载器,每个加载器是负责加载特定位置的类,本身也要被类加载器BootStrap加载 BootStrap ExtClassLoader AppClassLoader 2.Java虚拟机中所有类加载器采用具有父子关系的树形结构进行组织,在实例化每隔类加载器对象时, ...
分类:
其他好文 时间:
2015-03-17 23:14:00
阅读次数:
132
**Java内存存放区域与内存溢出异常(一)**
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有着各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖于用户进程的启动和结束而建立和销毁,java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图一。
1、在这里先介绍程序计数器
程序计...
分类:
编程语言 时间:
2015-03-17 20:17:35
阅读次数:
178