2012年6月19日

摘要: 垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 引用计数收... 阅读全文
posted @ 2012-06-19 19:30 20:49 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 【引自边城愚夫的博客】继承是面向对象中很重要的概念。如果考虑到Java语言特性,继承分为两种:接口继承和实现继承。这只是技术层面的问题,即便C++中不存在接口的概念,但它的虚基类实际上也相当于接口。对于OO的初学者来说,他们很希望自己的程序中出现大量的继承,因为这样看起来很OO。但滥用继承会带来很多问题,尽管有时候我们又不得不使用继承解决问题。 相比于接口继承,实现继承的问题要更多,它会带来更多... 阅读全文
posted @ 2012-06-19 19:28 20:49 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 创建Java线程 在Java程序中创建线程有几种方法。每个Java程序至少包含一个线程:主线程。其它线程都是通过Thread构造器或实例化继承类Thread的类来创建的。 51CTO编辑推荐:Java线程从入门到实践 Java线程可以通过直接实例化Thread对象或实例化继承Thread的对象来创建其它线程。在线程基础中的示例(其中,我们在十秒钟之内计算尽量多的素数)中,我们通过实例化Cal... 阅读全文
posted @ 2012-06-19 19:27 20:49 阅读(1042) 评论(1) 推荐(0) 编辑
摘要: 一. 编译器对C++的多态是通过在Class里面插入一个vptr指针,同时生成一个virtual table, 让vptr指向这个virtual table来实现的,那么什么样的Class才有必要设置vptr指针呢?如下图所示: 下面分6种情况讨论 (1)有虚函数的基类 Cpp代码 class A { public: virtual void foo() {} ... 阅读全文
posted @ 2012-06-19 19:26 20:49 阅读(217) 评论(0) 推荐(0) 编辑
摘要: Java栈与堆 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Jav... 阅读全文
posted @ 2012-06-19 19:24 20:49 阅读(189) 评论(0) 推荐(0) 编辑
摘要: GOF 的设计模式推出以后,受到程序员的热烈追捧,很多程序员不亦乐乎的埋头苦读甚至背诵其 23 个设计模式,并以熟悉设计模式而自豪。然而,在实际的程序设计中,很多程序员并未能把设计模式应用到自己的场景中。原因有很多,设计模式太多以至于常常被 混淆;设计模式应用场景太局限或者程序员自己意识不到应用的场景。综合各种原因,根本原因只有一个,程序员并不能透彻理解,熟练应用设计模式的核心思想。 笔者认为,设... 阅读全文
posted @ 2012-06-19 19:23 20:49 阅读(251) 评论(0) 推荐(0) 编辑
摘要: waitpublic final voidwait(long timeout) throws 导致当前的线程等待,直到其他线程调用此对象的notify()方法或notifyAll()方法,或者超过指定的时间量。 当前的线程必须拥有此对象监视器。 此方法导致当前线程(称之为T)将其自身放置在对象的等待集中,然后放弃此对象上的所有同步要求。出于线程调度目的,线程 T被... 阅读全文
posted @ 2012-06-19 15:37 20:49 阅读(636) 评论(0) 推荐(0) 编辑

2012年6月18日

摘要: 1 什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式来鉴别代码是否符合一些固定的规范。 2 如何安装FindBugs? 作为Eclipse的一个插件,可以将Fi... 阅读全文
posted @ 2012-06-18 21:21 20:49 阅读(12931) 评论(0) 推荐(0) 编辑
摘要: Eclipse提供了一个可扩展插件的开发系统。这就使得Eclipse在运行系统之上可以实现各种功能。这些插件也不同于其他的应用(插件的功能 是最难用代码实现的)。拥有合适的Eclipse插件是非常重要的,因为它们能让Java开发者们无缝的开发基于J2EE和服务的应用程序。 Eclipse的插件也能帮助他们开发不同应用架构上的程序。 下面列出来的是25个最好的免费Eclipse插件,可以让开发者更... 阅读全文
posted @ 2012-06-18 21:03 20:49 阅读(573) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte, short, int, long, char, float, double, Boolean, returnAddress ... 阅读全文
posted @ 2012-06-18 20:46 20:49 阅读(210) 评论(0) 推荐(0) 编辑

导航