NIO基础
缓冲区
Buffer类及其实现
Buffer类是缓冲区的实现,类似于Java中的数组,也是用于存放和获取数据的。但它包含了一系列对于数组的快捷操作。
Buffer是一个抽象类,它的核心内容:
1 | public abstract class Buffer { |
Buffer类是缓冲区的实现,类似于Java中的数组,也是用于存放和获取数据的。但它包含了一系列对于数组的快捷操作。
Buffer是一个抽象类,它的核心内容:
1 | public abstract class Buffer { |
Pixel Accuracy 像素准确率
${\Sigma_i n_{ii}}\over {\Sigma_i t_i}$
mean Accuracy 平均准确率
${1\over n_{cls}}\cdot \Sigma_i {n_{ii}\over t_i}$
mean IoU 平均并集上的交集率
${1\over n_{cls}}\cdot \Sigma_i {n_{ii}\over t_i+\Sigma_j n_{ij} - n_{ii}}$
Docker之介绍与安装 - Qubernet - 博客园 (cnblogs.com)
如果我们要写一个比如论坛、电商这类的Java项目,那么数据库、消息队列、缓存这类中间件是必不可少的。因此我们如果想要将一个服务部署到服务器,要提前准备好各种各样的环境,先安装好MySQL、Redis、RabbitMQ等应用,配置好了环境,再将我们的Java应用程序启动。整个流程下来,光是配置环境就要浪费大量的时间,如果是大型的分布式项目,可能要部署很多台机器,项目上个线就要花几天时间,显然是很荒唐的。
而上述的MySQL、Redis、RabbitMQ等应用以及Java应用程序,可以一起被打包成一个镜像,整个镜像中环境都是已经配置好的状态,开箱即用。镜像就是一堆静态的模板,根据这个模板运行起来的就是容器。镜像一般需要拉取下来,是只读的。
JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。
在JavaScript语言中,一切都是对象,因此任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。语法格式如下:
{}
保存对象[]
保存数组JSON键值对是用来保存JavaScript对象的一种方式,和JavaScript对象的写法大同小异,键值对组合中的键名在前,用双引号""
包裹,使用冒号:
分隔,之后跟着对应的值。
Jackson是目前比较好的json解析工具。
1 | <dependency> |
MyBatis 是一款优秀的 持久层框架。它支持 定制化 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或 注解 来配置和映射 原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为 数据库中的记录。
持久化
持久化就是将程序的数据在 持久状态 和 瞬时状态 转化的过程。
由于内存有断电之后数据就会丢失的特点,有一些对象不能丢失,需要将其持久化。
持久层
传统的 JDBC 代码太复杂,MyBatis 简化了将数据存入数据库这一过程。MyBatis 将 sql 和代码分离,提高了可维护性;提供了映射标签,支持对象与数据库的字段关系的映射(ORM,Object Relation Mapping);提供 xml 标签,支持编写动态 sql。
JavaBean是一个有如下特征的实体类:
get
/set
方法一般用于和数据库的字段做映射。
ORM(Object Relation Mapping,对象关系映射):
M:Model 模型
V:View 视图
JSP,用于展示数据,提供可供操作的请求。
C:Controller 控制器
Servlet,接收用户的请求,将请求交给业务层,控制视图的跳转。
由架构示意图可知,由于JSP就是一种Servlet,因此控制器和视图会存在功能重合,为了易于维护和使用,做了人为规定: