自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

Git使用手册_v1.0.xlsx

Git的使用手册,帮助开发者更好地使用Git,需要的可以下载。

2019-06-20

centos7下安装reviewboard.docx

reviewboard 是一款代码审查工具,可以优化团队开发代码的质量。

2019-06-20

Elasticsearch5.4.1 安装配置 +Kibana

elasticsearch +Kibana的安装配置 elasticsearch 是存储数据,Kibana展示数据,获取数据可以使用beat或logstash

2018-05-10

ambari 搭建大数据平台

ambari 搭建分布式的大数据平台,可对大数据平台进行集群管理

2018-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除