posts - 277,  comments - 9,  trackbacks - 0
摘要:一、AIO简介 AIO是java中IO模型的一种,作为NIO的改进和增强随JDK1.7版本更新被集成在JDK的nio包中,因此AIO也被称作是NIO2.0。区别于传统的BIO(Blocking IO,同步阻塞式模型,JDK1.4之前就存在于JDK中,NIO于JDK1.4版本发布更新)的阻塞式读写,A 阅读全文
posted @ 2019-12-13 08:41 kosamino 阅读 (75) 评论 (0) 编辑
摘要:一、简介 NIO我们一般认为是New I/O(也是官方的叫法),因为它是相对于老的I/O类库新增的( JDK 1.4中的java.nio.*包中引入新的Java I/O库)。但现在都称之为Non-blocking I/O,即非阻塞I/O,因为这样叫,更能体现它的特点。而下文中的NIO,不是指整个新的 阅读全文
posted @ 2019-12-12 18:12 kosamino 阅读 (52) 评论 (0) 编辑
摘要:一、BIO简介 BIO是java1.4之前唯一的IO逻辑,在客户端通过socket向服务端传输数据,服务端监听端口。由于传统IO读数据的时候如果数据没有传达,IO会一直等待输入传入,所以当有请求过来的时候,新起一条线程对数据进行等待、处理,导致每一个链接都对应着服务器的一个线程。 BIO是同步阻塞的 阅读全文
posted @ 2019-12-06 04:07 kosamino 阅读 (43) 评论 (0) 编辑
摘要:一、七层网络模型 OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,它是一个七层的、抽象的模型体。 1、物理层 并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的功能描述和 阅读全文
posted @ 2019-12-05 05:34 kosamino 阅读 (66) 评论 (0) 编辑
摘要:在Java项目中,经常对JDK版本有不同的要求,可是不可能为了某个项目的运行重新下载不同版本JDK进行安装,这样就涉及到对本地环境中多个JDK版本的管理。 Mac的JDK都是安装到一个指定目录的:/Library/Java/JavaVirtualMachines/,因此可以在这个目录下查看自己安装的 阅读全文
posted @ 2019-11-29 03:28 kosamino 阅读 (65) 评论 (0) 编辑
摘要:程序运行在内存以及IO的体现 首先普及一下常识,如图所示: 1、在整个内存空间中,跑着各种各样的程序,有Java程序、C程序,他们共用一块内存空间。 2、对于Java程序,JVM会申请一块堆空间,通过Xmx可以设置,其余空间是堆外空间,其中每个线程有自己的线程栈,保证线程内存隔离,堆空间使用完以后, 阅读全文
posted @ 2019-11-27 20:34 kosamino 阅读 (37) 评论 (0) 编辑
摘要:一、什么是泛型 Java从1.5之后支持泛型,泛型的本质是类型参数,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 若不支持泛型,则表现为支持Object,不是特定的泛型。泛型是对 Java 语言的类型系统的一种扩展,以支持 阅读全文
posted @ 2019-11-15 18:55 kosamino 阅读 (14) 评论 (0) 编辑
摘要:在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce。因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结。 Redis通讯协议RESP是怎么回事? 如何基于BIO实现Redis客户端? 如何从架构角度思考架构分层? Red 阅读全文
posted @ 2019-11-14 02:42 kosamino 阅读 (26) 评论 (0) 编辑
摘要:Spring 的两大核心,一是IOC,另一个是AOP,本博客从原理、AOP代码以及AOP使用三个方向来讲AOP。先给出一张AOP相关的结构图,可以放大查看。 一、Spring AOP 接口设计 1、PointCut (连接点,定义匹配哪些方法) 首先打开 Spring 的源码,查看 PointCut 阅读全文
posted @ 2019-11-12 12:55 kosamino 阅读 (36) 评论 (0) 编辑
摘要:一、什么是IOC 引用 Spring 官方原文:This chapter covers the Spring Framework implementation of the Inversion of Control (IoC) [1] principle. IoC is also known as 阅读全文
posted @ 2019-11-07 04:21 kosamino 阅读 (133) 评论 (0) 编辑
摘要:一、为什么要产生Session http协议本身是无状态的,客户端只需要向服务器请求下载内容,客户端和服务器都不记录彼此的历史信息,每一次请求都是独立的。 为什么是无状态的呢?因为浏览器与服务器是使用socke套接字进行通信,服务器将请求结果返回给浏览器之后,会关闭当前的socket链接,而且服务器 阅读全文
posted @ 2019-11-03 05:22 kosamino 阅读 (134) 评论 (0) 编辑
摘要:一、事务的ACID原则 数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是ACID。 原子性:操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指 阅读全文
posted @ 2019-10-31 07:11 kosamino 阅读 (748) 评论 (0) 编辑
摘要:一、Linux下mysql彻底卸载 1、查看mysql的安装情况 2、删除上图安装的软件 3、都删除成功之后,查找相关的mysql的文件 4、删除全部相关文件 5、再次执行命令 如果没有显式则表示卸载完成。 二、MySQL5.7安装步骤 1、查看系统中是否自带安装mysql 2、删除系统自带的mys 阅读全文
posted @ 2019-10-30 18:03 kosamino 阅读 (80) 评论 (0) 编辑
摘要:一、表设计上的坑 1、字段设计 1.1 字段类型设计 尽量使用整型表示字符串: `INET_ATON(str)`,address to number `INET_NTOA(number)`,number to address 1.2 定长和非定长数据类型的选择 1、decimal不会损失精度,存储空 阅读全文
posted @ 2019-10-30 02:50 kosamino 阅读 (23) 评论 (0) 编辑
摘要:一、索引是什么? 索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。 二、为什么要使用索引? 三、索引是什么实现的? Indexes是第三方公司提供的可插拔的插件式存储引擎。 MySQL结构体系: 四、为什么选用B+树? 1、Hash索引方式 缺点: 利用Hash存储的话需要将所有的数 阅读全文
posted @ 2019-10-29 19:28 kosamino 阅读 (49) 评论 (0) 编辑