IO模型及JAVA中的(B)IO/NIO/AIO

IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。网络IO的本质是socket的读取,socket在linux系统被抽象为流,IO可以理解为对流的操作。对于一次IO访问(以read举例)当一个read操作发生时,它会经历两个阶段: 第一阶段:等待数据准备,数据从磁盘拷贝到内核...

2019-06-23 21:22:42

阅读数 7

评论数 0

有序的Map集合

我们通常使用的Map集合是HashMap,在大多数情况下HashMap可以满足我们的要求,但是HashMap有一个缺点:HashMap是无序的,即其迭代顺序与其key或value的大小无关。而在某些情况下,如果我们需要Map集合里的元素有序,那么HashMap是不能满足我们的要求的。 那么有没有...

2019-06-22 08:32:07

阅读数 59

评论数 0

TCP如何保证传输可靠性

TCP协议保证传输可靠的方法主要有:校验和,序列号,确认应答,超时重传,连接管理,流量控制,拥塞控制。 (一)校验和:判断传输数据是否出现了修改 TCP在计算校验和时,会添加一个12个字节的伪首部。其内容为:32位源IP地址,32位目的IP地址,8位保留字节(置零),8位传输层协议号(TCP...

2019-05-19 09:40:07

阅读数 42

评论数 0

JVM内存分代

   Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 为什么要分代?        堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内...

2018-12-28 13:41:25

阅读数 79

评论数 0

JVM内存结构

前言   JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,c++的开发人员需要自己管理每一个对象的创建和销毁.而对于java的开发人员来说,他们不需要了解对象的创建和销毁,因为jvm已经帮我们把这件事-"垃圾回收&q...

2018-12-28 10:47:33

阅读数 25

评论数 0

设计模式之观察者模式

(一) 什么是观察者模式 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. (二) 观察者模式的四个角色 · 抽象主题角色:一个接口或抽象类,定义了主题的基本功能(添加,删除观察者,把更新信息发送给观察者). · 抽象观察者角色:为所有...

2018-12-01 14:43:27

阅读数 35

评论数 1

设计模式之单例模式

什么是单例模式 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。 单例模式的八种写法 1 , 饿汉式 //饿汉式 public class ...

2018-11-30 23:02:28

阅读数 23

评论数 0

设计模式之策略模式

什么是策略模式? 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分开来,委派给不同的对象管理;...

2018-11-30 16:07:25

阅读数 29

评论数 0

设计模式之工厂模式

一,简单工厂模式 定义:根据传入的参数,来生成对应的子类对象. 具体实现:将一系列产品抽象出一个接口,并由产品实现该接口,然后创建一个工厂,由工厂来决定要创建哪个产品. 比如说,我们想要吃苹果和梨.那么我们可以把苹果和梨抽象出一个"水果"的...

2018-11-30 15:26:31

阅读数 30

评论数 0

解决eclipse中git push一直需要输入远程push地址的问题

在eclipse中使用git的时候,前一次push完之后,再push一次时,总会又出现让你重新填写push地址。 解决办法: 在git配置文件中进行如下配置: [core] symlinks = false repositoryformatversion = 0 filemode = fa...

2018-11-24 16:41:53

阅读数 57

评论数 0

ubuntu构建服务器

(一) 安装Vmware-Tool 使用VMware安装VMware-tool 在点击之后会发现虚拟机中出现了一个光盘Vmware Tools,将光盘中的VmwareTools复制到桌面上 解压VMwareTools到当前目录,进入VMwareTools文件夹中,**并以root身份运行vmw...

2018-11-22 23:52:48

阅读数 23

评论数 0

linux安装tomcat

一、 下载Tomcat 到官网下载 二、 将Tomcat上传到linux并解压 三、 安装jdk环境 由于Tomcat的运行需要有jdk环境,所以如果没有安装jdk的话,需要安装jdk 安装方法可以参考 linux安装jdk 四、 运行tomcat 进入tomcat的bin目录 cd ...

2018-11-22 23:41:36

阅读数 32

评论数 0

linux安装jdk

一、 下载jdk8 到官网下载. 二、 将压缩包上传到虚拟机中 将jdk8移到/usr/local中,并解压 将jdk8目录下的bin目录添加到环境变量中 Vi ~/.bash_profile 在文件中添加jdk目录路径 export PATH="/...

2018-11-22 22:35:44

阅读数 19

评论数 0

ZooKeeper(1)--ZooKeeper概述

参考于ZooKeeper学习第一期---Zookeeper简单介绍 Zookeeper是什么? ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。 协调服务--"锁" Zookeeper主...

2018-11-20 17:17:29

阅读数 39

评论数 0

JSP四大域对象

JSP的四大域对象:pageContext、request、session、application 这四个域对象都提供了一对相同的方法: 设置一个属性: setAttribute(“属性名”,“属性值”); 获取一个属性: getAttribute(“属性名”); 一、pageContext: 它...

2018-11-20 14:51:08

阅读数 95

评论数 0

修改tomcat默认端口号

如果想在同一台机器中开启两个及以上数量的Tomcat,必须要修改Tomcat的端口,使得每个Tomcat的接口都不相同,要不然就会发生端口冲突.这里介绍一下如何修改Tomcat的端口. 一,找到配置文件 首先到安装目录(或者解压目录)下找到conf文件夹,在里面找到server.xml的文件. 二...

2018-11-20 14:33:37

阅读数 73

评论数 0

FastDfs(3)--选择策略

FastDfs如何选择一个Tracker Server 在tracker集群中,每个tracker的地位都是相同的.Client会随机选择一个tracker进行通信,如果该tracker无法通信,则会采用轮询的方式来尝试与其他tracker进行通信. FastDfs如何选择一个group 1,Cl...

2018-11-20 13:40:48

阅读数 66

评论数 0

FastDFS(2)--Ubuntu下安装并配置FastDFS

转载于Ubuntu下安装并配置FastDFS: FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS的项目主...

2018-11-19 22:44:46

阅读数 32

评论数 0

FastDfs(1)--FastDfs的架构

  FastDfs是什么 FastDfs是淘宝资深架构师余庆大神使用c语言编写的一款开源的分布式文件系统.其充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,并且FastDfs仅仅是一个轻量级的系统.它主要解决了海量数据的存储问题,特别适合以中小文件(4KB&a...

2018-11-19 20:23:23

阅读数 32

评论数 0

虚拟机与主机无法ping通解决方式汇总

一,ip地址问题         1,纯粹的ip地址写错                    这种情况要先检查自己主机和虚拟机的ip地址                           查看主机的ip地址:                           打开cmd      ...

2018-11-19 00:22:28

阅读数 112

评论数 0

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