JAVA NIO(上)
(一)JAVA NIO 概述Java NIO 由以下几个核心部分组成:
Channels
Buffers
Selectors
虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件会在单独的章节中讲到。
Channel 和 Buffer基本上,所有的 IO 在NIO 中都从一个Channel 开始。Channel 有点象流。 数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中。这里有个图示:
Channel和Buffer有好几种类型。下面是JAVA NIO中的一些主要Channel的实现:
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
正如你所看到的,这些通道涵盖了UDP 和 TCP 网络IO,以及文件IO。
与这些类一起的有一些有趣的接口,但为简单起见,我尽量 ...
docker
容器生态系统
容器核心技术容器核心技术是指能够让Contailer在host上运行起来的技术。
容器规范容器不光是 Docker ,还有其他容器,比如CoreOS 的 rkt. 为了保证容器生态的健康发 展,保证不同容器之间能够兼容,包含 Docker 、Core08、Google 在内的若干公司共同成立了 一 个叫 Open Container lnitiative (OCI) 的组织,其目的是制定开放的容器规范。
目前 OCI 发布了两个规范: runtime spec 和 image format spec.
有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行 .这样就保证了容器的可移植性和互操作性。
容器的runtimeJava 程序就好比是容器, 只叫则好比是 runtime ,JVM 为 Java 程序提供运行环境。同样的道理,容器只有在 runtime 中才能运行。
lxc、runc 和 rkt 是目前主流的三种容器 runtime。
lxc 是 Linux上老牌的容器 runtime. Docker 最初也是用 lxc ...
linux
LinuxLinux 简介概述定义:Linux 是一种自由和开放源码的类 UNIX 操作系统,使用 Linux 内核。
主要发行版:
RedHat
- Red Hat Enterprise Linux 收费
- Centos 免费,国内互联网商用
Ubuntu :免费,由众多黑客维护
Suse:专业的操作系统,易用的YaST软件包管理系统
安装
安装虚拟机
创建虚拟空间,网络连接方式
桥接
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机,所以两个网卡的IP地址也要设置为同一网段。
NAT
NAT模式中,就是让虚拟机借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。
NAT模式中,虚拟机的网卡和物理网卡的网络,不在同一个网络,虚拟机的网卡,是在vmware提供的一个虚拟网络。
NAT和桥接的比较:
(1) ...
SpringSecurity
Spring SecuritySpringSspecurity 框架简介1.1 概要 Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的 成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方 案。
正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控 制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权 (Authorization)两个部分,这两点也是 Spring Security 重要核心功能。
(1)用户认证指的是:==验证某个用户是否为系统中的合法主体,也就是说用户能否访问 该系统==。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认 证过程。通俗点说就是系统认为用户是能登录 。
(2)==用户授权指的是验证某个用户是否有权限执行某个操作==。在一个系统中,不同用户 所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以 进行修改 ...
服务器环境安装
SSM框架搭建项目Spring+SpringMVC+Mybatis1、web工程入口web工程入口好比javaSE工程的main函数,对于web工程而言,其入口便是web.xml。
web.xml分解1.1加载spring配置文件1234567<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-context*.xml</param-value></context-param><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
1.1.1 Spring如何使用多个xml配置文件1、在web.xml中定义contextConfigLocation参数,S ...