
JAVA
南汐寒笙
爱音乐 爱电影 爱运动的一枚程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于NIO的学习理解
以下仅仅介绍各个组件的用途与为什么会出现这些组件,不提供API的详解NIO是什么?全称new input output。针对于文件系统的IO,提供内存映射以提高IO效率;对于网络IO,提供一个线程可以管理多个连接的能力。为什么能提高IO效率?本地文件系统针对于本地文件系统,不支持选择通道+IO多路复用。文件要被应用所访问到,路径为 磁盘-->>>内核空间-->>>用户空间,磁盘到内核空间有一个DMA控制器,DMA控制器从磁盘加载数据是不需要消耗CPU.原创 2020-05-13 17:50:19 · 276 阅读 · 0 评论 -
造轮子-手写java线程池
今天学习了JDK中的线程池,梳理了一下线程池的流程机制,尝试着写个简单的线程池package com.hobson.day2;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.Executor;...原创 2020-04-13 17:16:15 · 285 阅读 · 0 评论 -
volatile关键字修饰的变量线程安全测试
原理: volatile使用内存屏障保证所有线程的更改都能立刻被感知到,直接从主内存中读取使用场景: 不依赖变量本身的值,如下图,index依赖本身的值就不能保证线程安全。复合操作也是如此,比如++i,这种会依赖变量本身的值...原创 2020-04-02 21:09:21 · 513 阅读 · 0 评论 -
利用IDEA解决Maven版本依赖
最近有朋友使用IDEA,启动项目遇到jar包中的bean找到多个,一看就是依赖冲突;现实中还有其它的异常,比如NosuchMethod之类的异常,也可能是版本冲突,也有可能是版本号不对。所以今天给大家分享一下利用IDEA解决版本依赖冲突。步骤如下根据类找到所属jar,找到jar的artifactId 利用idea工具,选中具体的项目,点击红框中的图标,会出现依赖关系图 当前页面co...原创 2020-04-02 17:51:23 · 1419 阅读 · 0 评论 -
JAVA8自定义函数接口
函数接口:JDK1.8的特性,有且只有一个抽象方法的接口就是函数接口@FunctionalInterface:该注解用于编译器校验该函数接口是否合法即用于限制一个接口中只有一个抽象方法方法自定义函数接口/** * 自定义函数接口 * 函数接口只能有一个抽象方法 * * @author haibin.tang * @create 2018-01-30 下午1:55 **原创 2018-01-30 16:52:06 · 6690 阅读 · 1 评论 -
JAVA8自定义收集器
自定义收集器,实现集合元素求和java.util.stream.Stream#collect(java.util.stream.Collector) [T为元素类型,A为容器类型,R为最终返回类型] ;此方法接受一个Collector类型的收集器;所以自定义就需要实现Collector接口。先不论如何用收集器实现,可以试想一下按照常理来说求和一个集合,首先需要声明一个变量用于存放累加的值,在循原创 2018-01-30 16:11:53 · 481 阅读 · 0 评论