- 浏览: 53294 次
- 性别:
- 来自: 上海
最新评论
-
HappyBoyLi:
谢谢分享,在jvm中怎么看-Xms是1M,-Xmx是64M参数 ...
java client VM 和java server VM
文章列表
JVM调优总结(四)-垃圾回收面临的问题
原创作者: 和你在一起
如何区分垃圾
上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对 ...
JVM调优总结(三)-基本垃圾回收算法
原创作者: 和你在一起
可以从不同的的角度去划分垃圾回收算法:
按照基本回收策略分
引用计数(Reference Counting):
比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。
标记-清除(Mark-Sweep):
此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需 ...
Java对象的大小
基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。
在Java中,一个空Object对象的大小是8byte
,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:
Object ob = new Object();
这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte
。4byte是上面部分所说的Java栈中保存引用的所需要的空间。而那8byte则是Java堆中对象的信息。因为所有的Java非基本类型的对象都需要默认继承Object对象,因此不论什 ...
转载自:http://www.iteye.com/wiki/jvm/2858-JVM
数据类型
Java虚拟机中,数据类型可以分为两类:基本类型
和引用类型
。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress
引用类型包括:类类型
,接口类型
和数组
。
堆与栈
堆和栈是程序运行的关键,很有 ...
在软件开发中,有时候可能会需要创建一些特别复杂的对象,如果系统中已经存在同样类型的对象,并且不同的属性个数相差不大的话,用Prototype模式可能是一个理想的选择。
定义 :用原型实例指定创建物件的种类,并且通过拷 ...
转载自:http://xupo.iteye.com/blog/463426
在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制,也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在single-threaded环境下的实现非常简单,然而在multi-threaded环境下却存在隐患。本文重点介绍惰性加载机制以及其在多线程环境下的使用方法。(作者numberzero,参考IBM文章《Double-checked locking and the Singleton pattern》,欢迎转载与讨论)
1 单例模式 ...
16进制浮点数的表示方法,根据IEEE的标准,分为32位和64位两种,参数分别如下:
符号位 指数位 尾数位 指数偏移量
32位 1[31] 8[23-30] 23[0-22] ...
转载自:http://blog.csdn.net/barenx/archive/2008/04/03/2246176.aspx
1. 编码知识
1.1 文本和字符
在计算机程序中或者数据文件里,文本(text)是作为数字序列存储的。序列中的数字是具有不同大小、取值和解释的整数。如何解释这些整数是 ...
java中堆栈(stack)和堆(heap)【转摘】
地址:http://blog.csdn.net/jerryao/archive/2006/07/04/874101.aspx
一、堆栈(stack)和堆(heap)?
(1)内存分配的策略
按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式 ...
17种正则表达式
"^\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[ ...
转载自:http://www.iteye.com/news/18725
下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:
http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns
Structural(结构模式)
Adapter:
把一个接口或是类变成另外一种 ...
Java 位运算[转]
一,Java 位运算
1.表示方法:
在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。
(l)正数的最高位为0,其余各位代表数值本身(二进制数)。
...
转自:http://www.iteye.com/topic/720209
exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞。
漏洞名称:Struts2/XWork < 2.2.0 Remote Command Execution Vulnerability
相关介绍:
•http://www.exploit-db.com/exploits/14360/
•http://sebug.net/exploit/19954/
Struts2的核心是使用的webwork框架,处理 action时通过调用底层的getter/setter方法来处理http ...
当使用 fail-fast iterator 对 Collection 或 Map 进行迭代操作过程中尝试直接修改 Collection / Map 的内容时,即使是在单线程下运行, java.util.ConcurrentModificationException 异常也将被抛出。
Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁。 Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出 ...
【转载自http://milk-36.iteye.com/blog/617155】
Java 1.5版本最终提供了对编程中最基础数据结构之一-Queue的内在支持。本文章将探究新添加到java.util包中的Queue接口,演示如何去使用这个新特性去使你的数据处理流式化。
by Kulvir Singh Bhogal (Translated by Victor Jan 2004-09-26 )
(英文原文见http://www.devx.com/Java/Article/21983/1954?pf=true )
在计算机学科中,基础数据结构之一 — Queue。你会想起Queue是一种数据 ...