5k 5 分钟

# 注解学习 JDK1.5 开始引入注解(Annotation),Java 中类、方法、变量、参数都可以被标注。 注解主要作用: 生成文档,通过代码中标识的注解生成 javadoc 文档。 编译检查,通过代码中标识的注解让编译器在编译期间进行检查。 编译时动态处理,编译时通过代码里标识的注解动态处理,例如动态生成代码。 运行时动态处理,运行时通过代码里标识的注解动态处理,例如使用反射注入实例。 关于三个名词:元注解(meta-annotation)、元数据(meta-data)、注解(annotation),我个人认为元注解是注解注解的注解,元数据是注解别称。 # JDK 内置的注解 #...
3.5k 3 分钟

# 数据库 # DBMS DataBase Management System 数据是数据库存储的基本对象 数据库是存放数据的仓库 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统与操作系统一样,是计算机的基础软件。 主要功能: DDl 数据定义语言 DML 数据操纵 (Manipulation)...
4k 4 分钟

# 安全相关 # 防火墙开放端口 名称 端口 Tomcat 外部访问 8080-9000 Mysql 远程连接 3306 Redis 远程连接 6379 RabbitMQ:Web 界面 15672 Rabbit: AMQP 5672 Rabbit:Stomp 61613 Rabbit:MQTT 1883 # openjdk 安装 su -c "yum install java-1.8.0-openjdk"# yum 仓库管理 yum-config-manager --add-repo...
1.3k 1 分钟

# NIO 存在的问题 在 NIO 中,若 Selector 的轮询结果为空,也没有 wakeup() 或新消息处理,会发生空轮询导致 CPU 占用 100%。 前置知识: JDK1.5 引入 epoll 机制。 epoll 是 linux2.6 内核的系统调用,设计目的就是替代 select、poll 线性复杂度的模型, epoll 的时间复杂度是 O (1)。 epoll 在高并发场景表现优秀。 文件描述符 (File Descriptor——fd):linux...
6.6k 6 分钟

# JAVA IO 模型 # BIO Blocking IO,同步并阻塞方式,应用程序向 OS 请求网络 IO 操作,然后会等待 IO 操作完成。客户端与服务器端连接,一个连接创建一个线程。 适用于连接数目比较小且固定的架构,对服务器要求比较高 简单流程: 服务端启动一个 ServerSocket。 客户端启动 Socket 对服务端通讯,默认情况下服务端对每个客户建立一个线程。 客户端发送请求后,先检测服务端是否有线程响应,没有则等待或被拒绝。 有响应,客户端线程等待请求结束返回响应,再继续执行。 # NIO Non-Blocking...
7.3k 7 分钟

# 进程与线程 # 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载到内存。在指令运行过程中还需要用到磁盘,网络设备。进程就是用来加载指令、管理内存、管理 io 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这是就开启了一个进程。 进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程 # 线程 一个进程之内可以分为一到多个线程。 一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 cpu 执行。 Java 中,线程作为最小调度单位,进程作为资源分配的最小单位。在 windows...
4.1k 4 分钟

# 安装 # rpm 包安装 官网地址:https://www.rabbitmq.com/download.html 下载 rpm 文件:这里有两个需要下载,分别是 rabbitmq-server 和 erlang 安装文件: erlang-23.3.4.11-1.el7.x86_64.rpm rabbitmq-server-3.10.5-1.el8.noarch.rpm # 需要的环境rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm# 依赖包,要联网yum install socat -y# 本身rpm -ivh...
3.3k 3 分钟

# 相关概念 # 什么是 MQ message queue 消息的队列,本质上是队列,FIFO 先进先出,队列存放的内容是消息,还是一种跨进程的通信机制,用于上下游传递消息(比喻:QQ 上 A 发消息给 B,A 是上游,B 是下游),逻辑解耦和物理解耦,使用了 MQ 之后,消息发送上游只依赖 MQ,不需要依赖其他服务。 # 为什么要用 MQ?MQ 三大特点 #...
120 1 分钟

# 开启音乐创作之旅 这是一个零基础的电子音乐教学网,你可以学习到基本的乐理知识,并且网站提供在线编曲,你可以通过点击按钮来获得自己想要的韵律。 Learning Music 节奏 贝斯 还有和弦和旋律 使用此网站随便作的曲子:AnxiousLeisure
2.1k 2 分钟

# 函数式接口 # 概述 只有一个抽象方法的接口称之为函数式接口(SAM Single Abstract Method 单一抽象方法模型) JDK 的函数式接口都加上了 @FunctionalInterface 注解进行标识。 但是无论是否加上该注解,只要接口中只有一个抽象方法,都是函数式接口 函数式接口可以通过 Lambda 表达式进行转换 例子: @FunctionalInterfacepublic interface InterfaceEx { // 单一抽象方法 void accept();}# 常用函数式接口 # Consumer...