- 博客(9)
- 资源 (5)
- 收藏
- 关注
原创 java-基础-volatile关键字的作用与用法
前言:在学习volatile 关键字的时候,我们需要了解什么是 可见性 ,什么是 原子操作。作用:1.volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。2.volatile具有synchronized关键字的“可见性”,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。也就是说,volatile变量对于每...
2019-10-29 16:00:10 777
原创 java-基础-ArrayList原理解析
前言:一.在其他播客上看到下面这段话,可以说是总结的非常精辟了。读者们可以仔细品味:ArrayList和LinkedList在性能上各 有优缺点,都有各自所适用的地方,总的说来可以描述如下:1.对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对 ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分...
2019-10-25 16:12:30 204
原创 java-基础-数组原理解析
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类...
2019-10-22 10:35:05 1257 1
原创 06-netty入门-为什么选择netty
一.首先我们先说明为什么不选择java原生NIO1.NIO类库和API复杂,使用麻烦。2.需要具备其它的额外技能做铺垫,例如 熟悉Java多线程和网络编程。3.可靠性能力补齐,工作量和难度都很大,例如 客户端面临断重连,网络闪断,半包读写,失败缓存,网络拥堵,异常码流等问题。4.JDK NIO的 BUG ,例如臭名昭著的 epoll bug,会导致Selector空轮询,最终导致C...
2019-10-15 19:45:11 180
原创 05-netty基础-BIO,伪异步BIO,NIO,AIO对比
1.概念:异步非阻塞I/O:有些人将JDK 1.4 提供的NIO框架称为 异步非阻塞 I/O,但是,如果严格按照UNIX网络编程模型和JDK的实现区分,它只能被称为非阻塞I/O。在早期的JDK1.4 和 JDK1.5 update10版本之前,JDK的Selector基于select/poll模型实现,它是基于IO的复用技术的非阻塞I/O,不是异步IO。在JDK1.5 update10和...
2019-10-15 18:49:48 172
原创 04-netty基础-AIO编程
1.JDK1.7升级了NIO类库,升级后的NIO类库被称为NIO 2.0,Java 正式提供了异步文件I/O操作,同时提供了与UNIX网络编程实践驱动I/O对应的AIO。2.NIO 2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现,异步通道提供两种方式获取通道结果。一是通过java.util.concurrent.Future 类来表示异步操作的结果。二是在执...
2019-10-15 18:12:04 152
原创 03-netty基础-NIO编程
1.NIO简称:有人称之为New I/O,因为相对于之前的I/O是新增的。这是官方叫法。但是,更多的人喜欢称之为非阻塞I/O(Non-block I/O)。2.与Socket类和ServerSocket类相对应,NIO提供了SocketChannel和ServerSocketChannel两种不同套接字通道实现。支持阻塞和非阻塞两种方式,阻塞模式使用简单,但是性能和可靠性都不好,非阻塞模式...
2019-10-15 11:24:03 128
原创 02-netty基础-伪异步BIO
1.为了解决同步阻塞I/O编程面临的一个链路需要一个线程处理的问题,我们可以对线程模型进行优化 ----- 后端通过一个线程池来处理多个客户端的请求接入,形成客户端个数M:线程池最大线程数N的比例关系,其中M可以远远大于N,通过线程池可以灵活的调用线程资源,设置线程的最大值,防止海量并发接入导致线程耗尽。2.伪异步IO模型图代码演示:3. TimeServer.javapa...
2019-10-12 16:57:16 131
原创 01-netty基础 - 传统的BIO编程
1. 网络编程的基本模型是 Client/Server 模型。其中服务端提供位置信息(IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,双方可以通过网络套接字Socket进行通信。2 在基于传统同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口,Socket负责发起连接操作,连接成功后,双方通过输入输出流进行同步阻塞式通信。...
2019-10-12 10:04:27 121
Elasticsearch5.4.1 安装配置 +Kibana
2018-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人