Java1.8集合源码:ArrayList 详细解析

List接口的可变数组的实现。实现了所有可选列表操作,并允许包括null在内的所有元素。非线程安全。在多线程情况下操作时,一定要加上synchronized,才能保证多个线程同时对ArrayList进行访问时数据的安全性。底层使用的数据结构是数组。适合查改,弱于增删。实现了Serializable接口,因此它支持序列化,能够通过序列化传 …… 阅读全文

某科学的超 Java网络编程:Socket通信原理及实例学习

首先来思考几个问题:如何把互联网上的网页抓下来?如何与互联网上的网络资源通信?如何在两个Java程序之间建立网络?面向连接与非面向连接的通信方式有什么区别?接下来以此篇文章来学习:理解计算机网络编程的概念,掌握如何使用Java在一台或多台计算机之间进行基于TCP/IP协议的网络通讯。通过理解TCP/IP协议的通讯模型,以JDK提供的java.net包为工具,掌握各种基 …… 阅读全文

JVM高级特性与实践(一):Java内存区域 与 内存溢出异常

套用《围城》中的一句话,“墙外面的人想进去,墙里面的人想出来”,用此来形容Java与C++之间这堵内存动态分配和垃圾收集技术所围成的“围墙”就再合适不过了。对于从事C、C++的开发人员而言,在内存管理领域,他们具有绝对的“权利”——拥有每个对象的控制权,并担负着每个对象生命周期的维护责任。而对于Java开发人员而言,在虚拟机自动内存管理机制的帮助下,无需为每一个创建new操作去配对 delete/f …… 阅读全文

JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收

关于垃圾回收器GC(Garbage Collection),多数人意味它是Java语言的伴生产物。事实上,GC的历史远比Java悠远,于1960年诞生在MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp尚在胚胎时期,开发人员就在思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?目前GC早已解决了以上问题,内存的动态分配与内存回收机制已经相当成熟, …… 阅读全文

JVM高级特性与实践(三):垃圾收集算法 与 垃圾收集器实现

内存回收与垃圾收集器在很多时候都是影响系统性能、并发能力的主要因素之一此篇博文将详细探讨垃圾收集算法和七大垃圾收集器实现,大致知识点如下:4种垃圾收集算法概念的学习各个算法之间的优缺点、原理运作过程Java堆内存结构7种垃圾收集器特征的学习各个垃圾收集器的原理、运作过程、使用场景、优缺点 JVM高级特性与实践(一):Java内存区域 与 内存溢出异常 JVM高级特性与实践(二):对象 …… 阅读全文

JVM高级特性与实践(四):内存分配 与 回收策略

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:分配内存给对象、回收分配给对象的内存。关于第二点的回收内存,在之前的博文中已经讲解过虚拟机中的垃圾收集体系以及运作原理,而此篇文章就来探讨学习有关分配内存给对象,相关知识点如下:对象内存分配、回收解析Minor GC 与 Full GC概念五大策略解析策略应用到代码实践原理解析JVM高级特性与实践(一):Java …… 阅读全文