
Book Reviews
iteye_16074
这个作者很懒,什么都没留下…
展开
-
C++书籍阅读列表
学习C++是一个循序渐进,而且非常漫长的过程,对于处于不同阶段的学习者,应该有自己独特的学习路线图。根据个人的知识结构,我的学习路线图分为五个阶段:[color=blue]第一阶段[/color]《C++编程规范:101条规则、准则与最佳实践》《C++沉思录》(Ruminations on C++)《C和指针》(POINTERS ON C)《C和C++经典著作:C陷阱与缺陷...原创 2012-06-11 16:23:16 · 249 阅读 · 0 评论 -
手动升级CentOS中的Python编译器
在CentOS 6.1中,Python编译器的版本已经比较古老了,默认的是2.4.3版本。现在主流的版本是2.7.x和3.2.*,我们的工作很多都需要更高的版本才能支持,于是去Python的官网下载了Python3.2,在CentOS中进行手动升级。1、到http://www.python.org/ftp/python/3.2/,下载Python-3.2.tar.bz2版本编译器。...原创 2012-03-16 16:49:54 · 216 阅读 · 0 评论 -
Java面试问题之五十九
问题:Java虚拟机中采用了哪些垃圾回收的算法?请简要说明。答:JVM中垃圾回收算法主要分为四种: (1)标记-清除算法(Mark-Sweep Algorithm):算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后同一回收掉所有被标记的对象。这个算法主要有两个缺点:第一个是效率问题,标记和清除过程的效率都不高;另外一个是空间问题,标记清除之后产生大...原创 2011-11-22 10:52:53 · 94 阅读 · 0 评论 -
Java面试问题之五十八
问题:Java虚拟机是如何判断哪些对象应该放在新生代,哪些对象应该放在老年代中,提供何种机制来实现?答:Java虚拟机一般采用分代的思想来内存的,为了确定一个对象年龄(Age),虚拟机给每个对象都引进了一个对象年龄计数器。如果对象在Eden出生并经过第一次Minor GC后仍然存活,并且能够被Survivor容纳的话,将被移动到Survivor空间中,并将对象的年龄设定为1。对象在Su...原创 2011-11-18 14:29:11 · 125 阅读 · 0 评论 -
Java面试问题之五十七
问题:在Java垃圾收集机制中的Minor GC和Full GC分别指什么,有和不同?答:Minor GC是指新生代GC,是发生在新生代的垃圾收集动作,因为Java对象大多都具有“朝生夕灭”的特性,所以Minor GC非常频繁,一般回收速度也比较快;Full GC(也称为Major GC)是指老年代的GC,Full GC的速度一般会比Minor GC慢10倍以上。相关知识扩展:...原创 2011-11-17 20:11:15 · 144 阅读 · 0 评论 -
Java面试问题之五十六
[百度面试问题之三]:请谈谈你对Java垃圾收集器中并行和并发概念的理解。答:并行和并发这两个概念都是编程中的概念,在垃圾收集器的上下文语境中,我们应该这样理 解: (1)并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 (2)并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能...原创 2011-11-17 12:11:01 · 140 阅读 · 0 评论 -
Java面试问题之五十五
[百度面试题问题之一]:请分析一下Java的垃圾回收机制中对方法区的回收过程,在何种条件下才会触发GC对方法区进行回收工作。答:所谓的方法区也就是HotSpot虚拟机中的永久代,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集机制,而且在方法区回收的“性价比”一般比较低;在堆中,尤其是在新生代中,常规应用进行一次垃圾收集可以回收70%~95%的空间,而永久代的垃圾收集效率远...原创 2011-11-16 15:30:40 · 133 阅读 · 0 评论 -
Java面试问题之五十三
问题:请问Java的运行时数据区域是如何划分的,分为几个部分,每个部分主要有什么作用?答:Java的运行时数据区主要分为如下几个部分: (1)程序计数器(Program Counter Register):它是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳...原创 2011-11-12 22:15:12 · 120 阅读 · 0 评论 -
Java面试问题之五十二
问题:请分析一下Java中StackOverflowError异常和OutOfMemoryError异常之间联系与区别,什么时候会产生StackOverflowError异常?什么时候产生OutOfMemoryError异常?答:在Java虚拟机规范中是这样描述这两类异常的: (1)如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异...原创 2011-11-12 18:26:58 · 163 阅读 · 0 评论 -
Java面试问题之三十一
请谈谈Java线程的运行机制。答:在Java虚拟机进程中,执行程序代码任务是由线程来完成的。每个线程都有一个独立的程序计数器和方法调用栈(method invocation stack)。(1)程序计数器:也称为PC寄存器,当线程执行一个方法时,程序计数器指向方法区中下一个要执行的字节码指令。(2)方法调用栈:简称方法栈,用来跟踪程序运行中一系列方法调用过程,栈中的元素称为...原创 2011-09-17 11:49:22 · 112 阅读 · 0 评论 -
Java面试问题之二十九
请你说一下Java内部类都有哪些用途以及在什么情况下才需要使用内部类。答:个人认为Java内部类主要有三个用途:第一,起到封装类的作用;第二,可以直接访问外部类的成员;第三,回调外部类的方法。作为Java内部类的作用,第三点尤为重要。(1)封装类型:面向对象的核心思想之一就是封装,把所有不希望对外公开的实现细节封装起来。顶层类只能处于public和默认两种访问级别,而成员内部类可以...原创 2011-09-15 13:48:09 · 122 阅读 · 0 评论 -
Java面试问题之二十六
请问Java中的局部内部类有何特点?答:局部内部类是在一个方法中定义的内部类,它的可见范围是当前方法。和局部变量一样,局部内部类不能用访问控制修饰符(public、private和protected)以及static修饰符来修饰。局部内部类具有以下几个特点:(1)局部内部类只能在当前方法中使用。(2)局部内部类和实例内部类一样,不能包含静态成员。(3)在局部内部类中定义的内...原创 2011-09-14 12:54:00 · 111 阅读 · 0 评论 -
Java面试问题之二十五
请说明一下静态内部类有哪些特点?答:静态内部类是成员内部类的一种,要使用static修饰。静态内部类具有以下几个特点: (1)静态内部类的实例不会自动持有外部类的特定实例的引用,在创建内部类的实例时,不 创建外部类的实例。 (2)静态内部类可以直接访问外部类的静态成员,如果访问外部类的实例成员,就必须通过 外部...原创 2011-09-13 22:13:14 · 120 阅读 · 0 评论 -
Java面试问题之二十四
请详细阐述一下Java中实例内部类的特点。答:实例内部类是成员内部类的一种类型,没有static修饰。实例内部类就是一个实例内部类。实例内部类具有以下几个特点:(1)在创建实例内部类的实例时,外部类的实例必须已经存在。例如,一个内部类InnerTool类,它的外部类是Outer,那么如果要创建InnerTool类的实例,必须先创建Outer外部类的实例。[code="java"...原创 2011-09-13 21:47:19 · 77 阅读 · 0 评论 -
Java中WeakHashMap类型使用示例
在Java集合中有一种特殊的Map类型——WeakHashMap,在这种Map中存放了键对象的弱引用,当一个键对象被垃圾回收器回收时,那么相应的值对象的引用会从Map中删除。WeakHashMap能够节省存储空间,可用来缓存那些非必须存在的数据。下面程序段测试了垃圾回收器对WeakHashMap中值对象的回收过程,其中能够被3整除的键不会被垃圾回收器回收是由于其引用是强引用。...原创 2011-09-13 19:28:56 · 177 阅读 · 0 评论 -
Java中软引用、弱引用和虚引用的使用方法示例
在Java引用中,使用最多的无疑是强引用类型,对于其余三种级别的引用类型用得比较少。它们使用的方式与强引用也有些区别。下面使用一个例子来介绍一下其余三种引用(包括软引用、弱引用和虚引用)的使用方法。[code="java"]import java.lang.ref.*;import java.util.*;class Grocery { private...原创 2011-09-12 20:28:48 · 374 阅读 · 0 评论 -
Java中的不可变类的设计模式
在Java中有两种基本类类型,就是可变类与不可变类。所谓不可变类,是指当创建了这个类实例之后,就不允许修改它的任何属性值。在JDK的基本类库中,所有基本类型的包装类,比如Integer类和Long类,都是不可变类,还有最常见的就是java.lang.String类也是不可变类。那么创建自己的不可变类时,需要考虑的基本设计模式如下:(1)把所有属性定义为private final类型。...原创 2011-09-06 15:17:44 · 165 阅读 · 0 评论 -
Java面试问题之十三
类加载器是Java虚拟机中重要的部分,请自定义一个类加载器来实现.class文件的加载功能。答:要创建一个用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定了类的名称,返回对应Class对象的引用。下面编写一个MyClassLoader来实现.class文件的加载功能。...原创 2011-09-04 11:26:23 · 110 阅读 · 0 评论 -
Java虚拟机中的类加载器的类型
所谓Java类加载器就是虚拟机用来将类加载在其内部的字节文件加载模块。Java虚拟机采用了父亲委托机制,这种机制能更好地保证Java平台的安全。在这种委托机制中,除了Java虚拟机自带的根类加载器以外,其余的类加载器都有且只有一个父加载器。加载器的加载逻辑是,加载器首先委托其父加载器去加载需要加载的类,若父加载器能够顺利加载此类,则加载工作全部交给父加载器完成,否则将由加载器自身去完成加载工作。...原创 2011-09-02 17:58:10 · 102 阅读 · 0 评论