| 2014/11/10 | J2EE | 被围观 2,479 views+
小哥最近在分析项目中的内存泄露情况,使用了Eclipse Memory Analyzer,移步到这里下载最新版本: http://www.eclipse.org/mat/ 我们知道,不同版本的虚拟机和JDK版本,垃圾回收机制和内存空间布局都是有所差别的,我使用的是这个版本的JDK java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) 1、下面监控一下我开发环境下的Resin服务器: 首先,运行JDK bin目录下的jconsole.exe文件,链接到Resin服务器: 进入之后,就可以查看到堆内存,类,CPU的使用情况了。 细心的读者...
| 2014/6/9 | J2EE | 被围观 4,240 views+
这里还是使用搜狗的扩展词库 扩展词典添加搜狗词库: http://pinyin.sogou.com/dict/cell.php?id=11640 词条 大小 392790个 13737KB 先直接用java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法 进行计算。 先把这92790个放入到ext.dic文件中。 加上IKAnalyzer默认加载的这两个词典: org/wltea/analyzer/dic/main2012.dic 275713个 org/wltea/analyzer/dic/quantifier.dic 316个 总格的词条是66W多。 执行如下代码: public static void main(String[] args){ calculateMem(); } public static void calculateMem...
| 2014/6/8 | J2EE | 被围观 6,916 views+
使用system.gc()和java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory()这几个方法测量Java对象的大小。这种方法通常使用在需要对很多资源进行精确确定对象的大小。这种方法几乎无用等生产系统缓存的实现。这种方法的优点是数据类型大小无关的,不同的操作系统,都可以得到占用的内存。 一个更加好的方法是:http://www.javaspecialists.co.za/archive/Issue078.html。 它使用反射API用于遍历对象的成员变量的层次结构和计算所有原始变量的大小。这种方法不需要如此多的资源,可用于缓存的实现。缺点是原始类型大小是不同的不同的JVM实现对应有不同的计算方法。 JDK5.0之后Instrumenta...
| 2014/3/16 | J2EE | 被围观 3,091 views+
10、通配符 泛型参数表达式中的问号。 首先来看一个例子,可以向导出类型Apple的数组,赋予基类型的数组引用: class Fruit {} class Apple extends Fruit {} class Jonathan extends Apple {} class Orange extends Fruit {} class CovariantArrays { public static void main(String[] args) { Fruit[] fruit = new Apple[10]; fruit[0] = new Apple(); // OK fruit[1] = new Jonathan(); // OK // Runtime type is Apple[], not Fruit[] or Orange[]: try { // Compiler allows you to add Fruit: // 运行时抛出异常,此时的数组机制知道它...
| 2014/3/16 | J2EE | 被围观 4,786 views+
1、与C++的比较 Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限。 2、简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类。 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的对象的类型 class Holder1 { private Circle a; public Holder1(Circle a) { this.a = a; } Circle get() { return a; } } 上面的类的可重用性不怎么样,无法持有其他类型的任何对象,下面通过持有Object类型的对象实现 class Holder2 { private Object a; public Holder2(Object a) { this.a = a; } public void set(Object a) { this.a = a...
| 2014/3/14 | J2EE | 被围观 4,524 views+
1、数组为什么特殊 数组与其他种类容器之间的区别:效率,类型和保存基本类型的能力。 数组是一种效率最高的存储和随机访问对象引用序列的方式。 优点:元素访问非常快 缺点:为这种速度所付出的的代价是数组对象的大小固定,并且在其生命周期中不可改变。 与ArrayList对比:ArrayList的弹性分配空间需要开销,效率低很多。 与泛型前的容器相比,数组可以持有某种具体类型,这样就可以使用编译器检查防止插入错误类型和抽取不恰当类型。也就是数组可以持有基本类型,而泛型之前的容器则不能。有了泛型:容器则可以检查它们所持有对象的类型,并且有了自动包装机制,容器还能够持有基本...
| 2014/1/21 | J2EE | 被围观 2,961 views+
1、与C++的比较 Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限。 2、简单泛型 Mike Jason,你知道什么是泛型吗? Jason 不知道。 Mike 下面我就举个例子吧,我们在一个类中保存一个Object引用,这样就可以通过这个Object应用存储任何类型的对象了: 先来声明一下要使用到的类: public interface Animal { public void speak(); } public class Cat implements Animal{ @Override public void speak() { System.out.println("miao~ miao~"); } } public class Dog implements Animal{ @Override publ...
| 2013/12/25 | J2EE | 被围观 3,796 views+
反射:运行时的类信息 如果不知道某个对象的确切类型,RTTI可以告诉你,但是前提是在编译时必须已知,这样才能使用RTTI识别它,并利用这些信息做一些有用的事情。也就是在编译时,编译器必须知道所有要通过RTTI来处理的类。 考虑这种情况:假设你获取了一个指向某个并不在你程序空间中的对象的引用,这个时候,在编译时,程序就无法获取到这个对象所属的类。 这个时候反射就登场啦。反射提供了一种机制,用来检查可用的方法,并返回方法名。另外,在这种情况下我们也会需要在运行时获取类的信息:希望提供在跨网络的远程平台上创建和运行对象的能力。 反射机制的支持类:Class类与java.lang.re...
| 2013/12/24 | J2EE | 被围观 2,939 views+
刚写Java的时候,以为类型转换是万能的,比如使用(Shape)这种方式进行强制转换,若真是万能的,则再好不过了,可是现实却给了无数次ClassCastException的打击。默然回首,才发现最好在类型转换前做一下检查方位上策。 类型转换前先做检查 编译器允许你自由的做向上转型的赋值操作,而不需要任何显示的转型操作,就好像给超类的引用赋值那样。 然而如果不使用显示的类型转换,编译器就不允许你执行向下转换赋值,这个时候我们不妨先来检查一下对象是不是某个特定类型的实例,使用到了关键字 instanceof: if(x instanceof Dog) ((Dog) x).bark(); RTTI的形式: 所以,到目前为止,我...
| 2013/12/20 | J2EE | 被围观 3,624 views+
1、RTTI: 运行时类型信息可以让你在程序运行时发现和使用类型信息。 在Java中运行时识别对象和类的信息有两种方式:传统的RTTI,以及反射。下面就来说下RTTI。 RTTI:在运行时,识别一个对象的类型。但是这个类型在编译时必须已知。 下面通过一个例子来看下RTTI的使用。这里涉及到了多态的概念:让代码只操作基类的引用,而实际上调用具体的子类的方法,通常会创建一个具体的对象(Circle,Square,或者Triangle,见下例),把它向上转型为Shape(忽略了对象的具体类型),并在后面的程序中使用匿名(即不知道具体类型)的Shape引用: abstract class Shape { // this 调用当前类的toSt...
随机文章 本月热门 热评
1 Win7中安装Rational Rose,启动提示计算机丢失suite objects.dll 2011/5/22
2 Javascript中的for in语句获取对象属性的顺序问题 2012/8/16
3 Struts has detected an unhandled exception错误原因及解决方法 2011/5/30
4 【转】纳森·弗莱切:被遗忘的“搜索引擎之父” 2013/9/6
5 JavaScript设计模式笔记 – 工厂模式 桥接模式 2012/11/6
6 JSP的运行机制与原理 2011/6/17
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.