io.netty.buffer包中是netty ByteBuf的实现。ByteBuf是一个二进制缓冲区的抽象接口,它的功能有: 可以随机访问、顺序访问。 支持基本数据类型(byte, short, int, long, float, double)的序 ...
分类:
Web程序 时间:
2019-09-21 14:32:07
阅读次数:
103
首先,JVM除了程序计数器之外,都可能发生内存溢出OutOfMemoryError(OOM)异常。这里主要对可能发生内存溢出的区域,原因进行总结。 1.JAVA虚拟机栈 虚拟机栈是线程私有的,虚拟机栈主要存储局部变量。Java虚拟机规范中,规定了此区域会抛出两种异常: (1)如果请求栈深度大于虚拟机 ...
分类:
编程语言 时间:
2019-09-08 00:02:58
阅读次数:
85
nio和bio的区别 bio: nio: nio编程的常规步骤 从channel中获取的任何数据,都必须经过buffer来存放。 Buffer 的使用 buffer中的3个核心变量,和一个不常用的变量(mark): 、 直接内存映射,零拷贝: 常规的java流操作过程: buffer有一个直接内存映 ...
分类:
其他好文 时间:
2019-09-01 10:24:01
阅读次数:
64
一、Java基础 1. String类为什么是final的。 2. HashMap的源码,实现原理,底层结构。 3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。 4. 描述一下ArrayList和LinkedList各自实现和区别 5. Java中的队列都有哪 ...
分类:
编程语言 时间:
2019-08-13 17:10:30
阅读次数:
107
普通内存模型: java线程内存 --> 操作系统内存 --> 硬盘 直接内存模型: java --> 操作系统内存 --> 硬盘 两者对比,少了一步:直接内存直接操作系统内存,少了java线程内存到操作系统内存拷贝的这一步,所以提升了效率。 内存映射文件: ...
分类:
其他好文 时间:
2019-08-09 01:42:54
阅读次数:
113
局部变量和全局变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是,在很多情况下需要在同一VI的不同位置或在不同的VI中访问同一个控件对象,这时控件对象之间的连线就无法实现。这时候我们就需要用到局部变量或全局变量,通过局部变量或全局变量你可以在程 ...
分类:
其他好文 时间:
2019-08-02 22:24:07
阅读次数:
124
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 包含程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运行时常量池)、直接内存等,不同的版本会有所差异 各区域的作用: 1、程序计数器:较小的内存空间,当前线程执行的字节码的行号指示器;各线程之间独立存储,互 ...
分类:
其他好文 时间:
2019-07-21 01:37:45
阅读次数:
92
一 数据类型 1.1 8种基本数据类型 1.2 引用数据类型 1.3 java内存机制 1.3.1 寄存器 1.3.2 栈 1.3.3 堆 1.3.4. 静态区/方法区 1.3.5. 运行时常量池(Runtime Constant Pool) 1.3.6 直接内存(Direct Memory) 二: ...
分类:
编程语言 时间:
2019-07-17 20:25:05
阅读次数:
135
直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能。 1.为什么要有引用计数器 Netty里四种主力的ByteBuf,其中UnpooledHeapByteBuf底下的byte[]能够依赖JVM GC自然回收;而UnpooledDirectByteBuf底下是Direct ...
分类:
Web程序 时间:
2019-07-16 12:44:13
阅读次数:
112
一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 oop-klass、对象头 ...
分类:
编程语言 时间:
2019-06-28 21:04:23
阅读次数:
179