摘要:Java虚拟机在执行Java程序的时候,会将它所管理的内存划分为几个区域,这些区域有着各种的用途以及生命周期。有的区域随着虚拟机进程的启动而创建,而有的区域则随着用户线程的启动而建立和销毁。 虚拟机所管理的内存会分成以下几个运行时数据区: 1.程序计数器(Program Counter Regist
阅读全文
摘要:1.概述 ArrayList其实可以理解为一个动态数组,是一个复杂的Array。与普通的数组相比,它仅能存储对象(普通的数组可以存储对象和基本类型的元素),而且它是动态的,动态数组的意思就是指底层的数组大小并不是固定的,而是根据添加的元素大小进行一个判断,不够的话就动态扩容。每个 ArrayList
阅读全文
摘要:1.概述 HashMap可以说是在java中应用最频繁Map类型了。HashMap 是基于哈希表的 Map 接口的非同步实现 >这里可以说明,它不能保证映射的顺序,特别是它不能保证该顺序亘古不变,因为加入的元素是根据哈希值来存储的。HashMap允许存储null的key值和null的value值。
阅读全文
摘要:类加载的时机 一个类的生命周期包括:加载、验证、准备、解析、初始化、使用、卸载这七个部分。其中的验证、准备、解析这三个部分又可以称为连接。其中加载、验证、准备、初始化和卸载这5个步骤是按部就班去完成的,而解析这个阶段,则不一定:它可以在某些情况下在初始化之后再进行解析,这是为了支持Java语言的动态
阅读全文
摘要:在Java中,所有的异常对象都是派生与java.lang.Throwable这个类。但在下一阶段,Throwable会分解成两个部分:Error与Exception。 基本上,遇到Error类的问题,都是由于系统的运行错误或者资源耗尽,而不是由于程序的设计错误。在这种情况下,我们除了将错误报告给用户
阅读全文
摘要:A)多线程的作用 1)发挥多核CPU的优势 现在的计算机,基本都是多核的。如果是单线程的程序,那么CPU得不到充分的利用,比如说,如果是四核的CPU,运行一个单线程程序,那么它就只是利用了其中的25%,还有75%是处于空闲的状态,这是一种“浪费”。而在单核CPU,我们所谓的“多线程”,其实是假的,在
阅读全文