core java
Hubery_Yu_160521
这个作者很懒,什么都没留下…
展开
-
NIO系列(三) 零拷贝
1.介绍 在通过IO进行数据读写时(例如从文件读取数据),需要进行多次的数据拷贝,在多次的数据拷贝中,有些拷贝是通过DMA的方式进行的,有些拷贝是CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方,这种方式效率较低。那所谓的零拷贝就是指在进行IO读写时,尽量避免第二种拷贝方式来提高效率。 零拷贝主要是由操作系统来支持,和java api无关。2.前置知识 ...原创 2020-02-01 00:29:02 · 303 阅读 · 0 评论 -
NIO系列(二) 直接缓冲DirectByteBuffer
1 介绍 ByteBuffer底层是通过byte数组的方式来存储数据的,所谓直接缓冲是指byte数组是通过堆外存存储的,并没有存在jvm堆上,不受jvm垃圾回收的约束。2 直接缓冲和堆缓冲的创建方式 ByteBuffer的创建有两种方式,allocate和allocateDirect,其中通过allocate创建出来的是HeapByteBuffer(堆缓冲),源码如下:// 创建堆...原创 2020-01-12 01:57:51 · 699 阅读 · 0 评论 -
NIO系列(一) 核心概念介绍
一、核心概念概述Java NIO是JDK1.4引入的新语法,与传统IO不同,NIO是非阻塞的且面向缓冲区(buffer)的编程,有三个核心概念:Buffer,Channel与Select。原创 2020-01-05 21:50:05 · 344 阅读 · 0 评论 -
java concurrent 学习(1) – FutureTask原理
java concurrent 学习(1) – FutureTask原理原创 2017-11-19 21:33:49 · 559 阅读 · 2 评论 -
java范型类型擦除
一. 概述 在上一篇范型博客中,主要讲解了范型的基本使用和设计,在本篇博客中主要讲解使用范型带来的问题和解决方法。 在使用java范型时,我们通常会遇到诸多问题,例如不能使用T.class,不能直接使用T t.method(),不能通过范型参数实现方法重载等等,这一切的原因都归结于-“范型类型擦除”。二.什么是类型擦除 我们知道,jdk1.5以前是不支持范型的,以List为例,在Li原创 2016-11-27 12:45:57 · 534 阅读 · 1 评论 -
范型的使用和设计
java泛型是JDK1.5以后出现的新特性,泛型的简单使用(例如在集合中的使用)本文不做讲解,这里主要讲解一下泛型的设计。一、泛型类设计 在定义泛型类时,使用尖括号来指定泛型类型参数,泛型类型参数与方法参数不同,方法类型参数传入的是值,而泛型类型参数传入的是类的class类型。请看以下代码:// 父类animal abstract class Animal{ public a原创 2016-11-26 23:28:41 · 448 阅读 · 0 评论 -
JVM内存模型
本文重点介绍JVM内存模型,对象标识算法以及垃圾回收算法的原理,至于一些实际JVM优化操作或遇到的问题会在后续其他文章进行讲解。一、JVM分为那些区域?每个区域存储什么内容? JVM运行时(例如运行一个main方法),在操作系统中是一个进程,该进程在物理内存中开辟一块空间,在这块空间中又划分了很多区域,有些区域是线程共享的,有些区域是线程独享的。如下图所示: 永原创 2016-11-26 22:52:37 · 386 阅读 · 0 评论