2020年9月5日

摘要: 1 概述 NIO 指是:非阻塞I/O NIO有三大核心部分:Channel-通道,Buffer-缓冲区,Selector-选择器。 Channel 是一个通道 是对传统IO中的流的模拟,读入或者写出的所有数据必须通过一个Channel对象。 Channel 是全双工,所以它可以比流更好的地映射底层操 阅读全文
posted @ 2020-09-05 17:08 shumeigang 阅读(204) 评论(0) 推荐(0)
摘要: 五种网络I/O模型 一 Blocking I/O,阻塞 I/O 1 最常用的的I/O模型就是阻塞I/O模型 2 默认情况下,所有文件操作都是阻塞的。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内 阅读全文
posted @ 2020-09-05 17:05 shumeigang 阅读(344) 评论(0) 推荐(0)
摘要: 、Apache MINA 项目主页:http://mina.apache.org/ 为开发高性能和高可用性的网络应用程序提供了非常便利的框架;支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序 2、Grizzly 官网:http://xsocket.sourceforge 阅读全文
posted @ 2020-09-05 17:04 shumeigang 阅读(893) 评论(0) 推荐(0)

2020年8月22日

摘要: 永久代 在自定义类加载器还不是很常见的时候,类大多是static的,很少被卸载或收集,因此被成为“永久的(Permanent)”。 同时,由于类class是JVM实现的一部分,并不是由应用创建的,所以又被认为是“非堆(Non-Heap)”内存。 在JDK8之前的HotSpot JVM,存放这些“永久 阅读全文
posted @ 2020-08-22 16:56 shumeigang 阅读(852) 评论(0) 推荐(0)
摘要: 内存模型 方法区(Method Area):方法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。当方法区无法满足内存分配需求时,将抛出OutOfMemoryError 异常。方法区里存放着类的版本,字段,方法,接口和常量池。常量池里存储着字 阅读全文
posted @ 2020-08-22 16:03 shumeigang 阅读(218) 评论(0) 推荐(0)
摘要: 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。 内存溢出和内存泄漏有什么区别? 内存泄漏是由于使用不当,把一部分内存“丢掉了”,导致这部分内存不可用。当在堆中创建了对象,后来没有使用这个对象了,又没有把整个对象的相关引用 阅读全文
posted @ 2020-08-22 15:58 shumeigang 阅读(144) 评论(0) 推荐(0)
摘要: 引用计数器法 当一个地方引用它时,就+1;当引用失效时,就-1;GC会回收那些计数为0的对象。 优点:简单,快捷 缺点:对于相互引用的对象会失效 可达性分析算法 通过一系列成为“GCRoots”的对象,向下搜索,搜索所走过的路线成为引用链。若是一个对象无法通过任何引用链和GCRoots相连接,则说明 阅读全文
posted @ 2020-08-22 15:54 shumeigang 阅读(165) 评论(0) 推荐(0)

2020年8月21日

摘要: 堆与栈区别 栈是运行时的单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据; 堆解决的是数据存储的问题,即数据怎么放、放在哪儿。 栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储对象信息。 阅读全文
posted @ 2020-08-21 17:30 shumeigang 阅读(328) 评论(0) 推荐(0)
摘要: JVM内存区域 一 方法区 1 什么是方法区 方法区,也称非堆(Non-Heap),又是一个被线程共享的内存区域。其中主要存储加载的类字节码、class/method/field等元数据对象、static-final常量、static变量、jit编译器编译后的代码等数据,。另外,方法区包含了一个特殊 阅读全文
posted @ 2020-08-21 17:24 shumeigang 阅读(171) 评论(0) 推荐(0)
摘要: 1、概述 1991 年Sun 公司的James Gosling 等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA 等的微处理器;1994 年将Oak 语言更名为Java; java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“ 阅读全文
posted @ 2020-08-21 17:22 shumeigang 阅读(201) 评论(0) 推荐(0)

导航