`
文章列表
Java尽管采用自动的内存管理方式,但是仍然存在泄露的可能,我们知道JVM认为对象没有引用时,会把这个对象视为垃圾。 Java内存泄露就存在于,这个对象实际上已经不再需要,但是仍然存在引用,此时就会产生内存泄露。   ...
人活着其实是挺好的,从小学到现在经历了很多人,很多事,人来人往,一年一年我们活下来了,有的人没有活下来。人生其实很无常,身边年轻的生命过早地结束了,留给了伤心的家人,痛苦的活着的人。   人活着,也得豁达,凡事得想得开。工作中,为了生活,为了更好的物质生活,人们无形中在伤害着自己。   人活着,也得珍惜,珍惜别人,更要懂得珍惜自己的身体。为了家人,也为了更长远的梦。永远不要放弃,也永远不能强求,人生有时候也得随遇而安。年轻的时候要懂得珍惜自己的身体,多多锻炼身体,为了更大,更长远的梦,没有身体,一切都会是空,即使你哪一天得到了事业,但是拖着一身的病痛,你也无法消受成功,得来只能是后悔。所 ...
OutOfMemory Error表明Java 堆没有足够的内存去装载对象。垃圾回收器不能回收足够的空间去容纳一个新的对象,与此同时,堆空间也无法再进行扩展。   当OutOfMemoryError抛出,栈会打印出信息。OutOfMemoryError也可能是在一个native的内存分配不能满足,由native库抛出,例如,交换空间比较小时,native 内存分配时就会抛出这种错误。   要查明OutOfMemoryError的原因,首先要知道这个错误发生的根本原因。是否是Java堆空间已经满了,或者是因为native堆空间已经满了。抛出这种异常有多种可能性,下面对常见的outOfm ...
Apache作为最流行的web服务器,有必要深入一下,现在就开始吧,带着很多疑问来写Apache的系列blog: 首先: Apache的工作模式,是进程模型还是线程模型或者是线程进程混搭模型? Apache的工作原理是什么? Apache的最大并发数是多大,在哪里可以配置? 如何对Apache进行调优? Apache的工作模型   Apache有两种工作模型,一种是基于进程的preforker模型,一种是基于线程和进程混合的Worker模型   1.prefork prefork采用预派生子进程方式,用单独的子进程来处理 不同的请求,进程之间彼此独立。在m ...
Java 中有HashMap,了解哈希的原理,不仅有助于用好HashMap,也有助于理解其它开源产品,甚至自己可以编写效率更高的哈希算法,例如在MemCached(著名的Cache开源产品)中,客户端根据key值定位到哪台server上,用的是求模哈希函数 ...
文件压缩和归档 有时候,我们需要把一组文件贮存成一个文件以便备份或传输到另一个目录甚至另一个计算机上。有时候,我们还需要把文件压缩成一个文件,因而它们仅使 用少量磁盘空间并能更快地通过互联网下载。 理 ...
http://jzhua.iteye.com/blog/517291   首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线 程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对 ...
http://www.iteye.com/topic/518066   阅读本文的读者,需要对Java 轻量级锁有一定的了解,知道lock record, mark word之类的名词。可以参考我的一篇博文:Java 轻量级锁原理详解(Lightweight Locking) Java 偏向锁(Biased Locking)是Java6引入的一项多线程优化。它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能。 轻量级锁也是一种多线程优化,它与偏向锁的区别在于,轻量级锁是通过CAS来避免进入开销较大的互斥操作,而偏向锁是在无竞争场景下完全消除同步,连CAS也不执行( ...
<c:forEach>标签的语法定义如下所示。 <c:forEach var="name" items="expression" varStatus="name" begin="expression" end="expression" step="expression"> ...
直接插入排序-是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。   初始序列:   i=1 [46] 58 15 45 90 18 10 62   ↓   i=2 [46 58] 15 45 90 18 10 62   ┌——┘   ↓   i=3 [15 46 58] 45 90 18 10 62   ┌——┘   ↓   i=4 [15 45 46 58] 90 18 10 62   ↓   i=5 [15 45 46 58 90] 18 10 62   ┌—————┘   ↓ ...
  UML 基础- 全面认识UML 类图元素     UML 基础 - 全面认识 UML 类图元素 ... 1 1. 元素 ... 1 1.1类( Class) ... 2 1.2包( Package) ...
java classLoader 体系结构(转)   原文出处:http://blog.chenlb.com/2009/06/java-classloader-architecture.html   Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作。 Extension ClassLoader/扩展类加载器 主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作。 ...
VM 的Permanent generation space,实际上就是方法区,存储了下面两种类型的数据:   1.Class的节本信息 Package Name Super class package name Class or interface Type modifiers Super inferface package name   2.其它信息 The constant pool for the type Field information Method information All class (static) variables decla ...
JVM -Server 与 -Client启动,最主要的差别在于:-Server启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。   JVM如果不显式指定是-Server还是-Client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本):     For J2SE 5.0, the definition of a server-class machine is one with at least 2 CPUs and at least 2GB of physical memory.         参考文献: ...
1.JConsole   Jconsole,Java Monitoring and Management Console。 java监控和管理控制台,从java5开始,在JDK中提供。 用于对JVM中内存,线程、类和虚拟机的运行情况等的监控。提供了本地监控和远程监控两种功能。         2.jps   [root@host bin]# ./jps 17515 Standalone 1487 Jps       3.jmap   jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方 ...
Global site tag (gtag.js) - Google Analytics