文章目录

heardfate

超详细的 JS 数组方法 有更新!

数组是 js 中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响。

  • 一、改变原数组的方法
  • 一、改变原数组的方法
  • 1.push()末尾添加数据
  • 2. pop()末尾删除数据
  • 3.unshift()头部添加数据
  • 4.shift()头部删除数据
  • 5.reverse()翻转数组
  • 6.sort()排序
  • 7.splice()截取数组
  • 二、不改变原数组的方法

  • 1.concat() 合并数组
  • 2.join() 数组转字符串
  • 3.slice()截取数组的一部分数据
  • 4.indexOf 从左检查数组中有没有这个数值
  • 5.lastIndexOf 从右检查数组中有没有这个数值
  • 三、ES6新增的数组方法

  • 1. forEach() 循环遍历
  • 2.map 映射数组
  • 3.filter 过滤数组
  • 4.every 判断数组是不是满足所有条件
  • 5.some() 数组中有没有满足条件的
  • 6.find()用来获取数组中满足条件的第一个数据
  • 7.reduce()迭代后的效果

2021最新版RabbitMQ完整教程学习笔记

RabbitMQ是一个由Erlang语言开发的AMPQ的开源实现。

AMPQ:Advanced Message Queue Protocol,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件之间可传递消息,并不受产品、开发语言等条件的影响。

特点
  • 可靠性(Reliability):rabbitMq使用一些机制来保证可靠性,如持久化,传输确认,发布确认。
  • 灵活的路由(Flexible Routing):在消息进入队列之前,通过Exchange来路由消息的。
  • 消息集群(Clustering):多个RabbitMQ服务器可组成一个集群,形成一个逻辑Broker。
  • 高可用(Highly Available Queues):队列可以在集群中的机器上进行镜像灌灌灌灌,使得在部分节点出问题的情况下仍然可用。
  • 多种协议(Mutil-protocol):RabbitMQ支持多种消息队列协议,比如STOMP、MQTT等
  • 多语言客户端(Many Clients):RabbitMQ几乎支持多有常用语言,比如 JAVA,.Net、Ruby等
  • 管理页面(Management UI):RabbitMQ提供了一个已用的用户界面,使得用户可以监控和管理消息Broker的虚度方面
  • 插件机制(Plugin System):RabbitMQ提供了许多插件,来从多方面进行扩展,也可以编写自己的插件
  • 跟踪机制(Tracing):如果消息异常,RabbitMQ提供了消息跟踪机制,使用者可以找出发生了什么

Java封装OkHttp3工具类

卷不动了?300 秒快速了解 Java 9 - 15 新特性,助你脱离内卷

JAVA 这几年的更新实在是太太太……快了,JAVA 8 都还没用多久,16 都已经发布了。自从 JAVA 8 发布了 Lambda 和 Stream 之后,JAVA 就像打了鸡血一样,半年一个版本的发布,生产队的驴也没这么勤快。

导致我们现在完全跟不上 JAVA 发布的节奏,我司目前还停留在 JAVA 8,甚至部分老系统还在使用 JAVA 7,根本不能轻易的升级。 ​

不过虽然暂时用不上最新版本的 JAVA,但了解每个新版本的主要特性还是很重要的,不然哪天真跟着升级了,那还不得一脸懵逼。 ​

本文就带你快速了解 JAVA 9 - 15 的主要新特性,早学完早下班!

IDEA 2021.1 的 Win 和 Mac 快捷键大全!! 有更新!

IntelliJ IDEA 2021 Win 和 Mac 快捷键大全,IDEA 基本所有功能都可以通过快捷键来完成。
⌘ Command

⇧ Shift

⌥ Option

⌃ Control

↩︎ Return/Enter

⌫ Delete

⌦ 向前删除键(Fn+Delete)

↑ 上箭头

↓ 下箭头

← 左箭头

→ 右箭头

⇞ Page Up(Fn+↑)

⇟ Page Down(Fn+↓)

Home Fn + ←

End Fn + →

⇥ 右制表符(Tab键)

⇤ 左制表符(Shift+Tab)

⎋ Escape (Esc)

JAVA15新特性

JDK 15 新特性一览表:

ID JEP Feature
1 339 Edwards-Curve Digital Signature Algorithm (EdDSA)
2 360 Sealed Classes (Preview)
3 371 Hidden Classes
4 372 Remove the Nashorn JavaScript Engine
5 373 Reimplement the Legacy DatagramSocket API
6 374 Disable and Deprecate Biased Locking
7 375 Pattern Matching for instanceof (Second Preview)
8 377 ZGC: A Scalable Low-Latency Garbage Collector
9 378 Text Blocks
10 379 Shenandoah: A Low-Pause-Time Garbage Collector
11 381 Remove the Solaris and SPARC Ports
12 383 Foreign-Memory Access API (Second Incubator)
13 384 Records (Second Preview)
14 385 Deprecate RMI Activation for Removal

JAVA13新特性 有更新!

Java13主要新增了如下特性

  • 350: Dynamic CDS Archives
    • 351: ZGC: Uncommit Unused Memory
    • 353: Reimplement the Legacy Socket API
    • 354: Switch Expressions (Preview)
    • 355: Text Blocks (Preview)
      语法层面,改进了Switch Expressions,新增了Text Blocks,二者皆处于Preview状态;API层面主要使用NioSocketImpl来替换JDK1.0的PlainSocketImpl
      GC层面则改进了ZGC,以支持Uncommit Unused Memory

java14新特性

在JDK14中新增了以下16个新特性:

  • 305: instanceof的模式匹配 (预览)
  • 343: 打包工具 (Incubator)
  • 345: G1的NUMA内存分配优化
  • 349: JFR事件流
  • 352: 非原子性的字节缓冲区映射
  • 358: 友好的空指针异常
  • 359: Records (预览)
  • 361: Switch表达式 (标准)
  • 362: 弃用Solaris和SPARC端口
  • 363: 移除CMS(Concurrent Mark Sweep)垃圾收集器
  • 364: macOS系统上的ZGC
  • 365: Windows系统上的ZGC
  • 366: 弃用ParallelScavenge + SerialOld GC组合
  • 367: 移除Pack200 Tools和API
  • 368: 文本块 (第二个预览版)
  • 370: 外部存储器API (Incubator)

Java11新特性 有更新!

Java 11的11个新功能
1. Lambda 表达式的类型推断
2. String 方法新增
3. 简化启动单个源代码文件的方法
4. 标准的HTTP客户端
5. 默认的 toArray(IntFunction)
6. Epsilon垃圾收集器
7. 低开销堆分析
8. 嵌套的访问控制
9. ZGC(Z Garbage Collector)
10. 编译器线程的动态分配
11. 新文件方法

Java12新特性

Java 12 带来了一系列新特性:

| 189 | Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的 GC |
| 230 | Microbenchmark Suite 微基准测试套件 |
| 325 | Switch Expressions (Preview) Switch 表达式 |
| 334 | JVM Constants API JVM 常量 API |
| 340 | One AArch64 Port, Not Two 只保留一个 AArch64 实现 |
| 341 | Default CDS Archives 默认类数据共享归档文件 |
| 344 | Abortable Mixed Collections for G1 可中止的 G1 Mixed GC |
| 346 | Promptly Return Unused Committed Memory from G1 G1 及时返回未使用的已分配内存 |

Java10新特性

Java10它号称有109项新特性,包含12个JEP。
1:局部变量的类型推断
2:GC改进和内存管理
3:线程本地握手
4:备用内存设备上的堆分配
5:其他Unicode语言 - 标记扩展
6:基于Java的实验性JIT编译器
7:开源根证书
8:根证书颁发认证(CA)
9:将JDK生态整合单个存储库
10:删除工具javah

Java 8的新特性 有更新!

Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and ConcurrencyJava 8 Date Time API Tutorial : LocalDateTimeAbstract Class Versus Interface in the JDK 8 Era。本文还参考了一些其他资料,例如:15 Must Read Java 8 TutorialsThe Dark Side of Java 8。本文综合了上述资料,整理成一份关于Java 8新特性的参考教材,希望你有所收获。

Java9的新特性

甲骨文发布了具有丰富新特性的Java9。它包括对Java编程、JVM、工具和库的各种升级。

  • 平台模块系统(Jigsaw项目)
  • 接口私有方法
  • Try-With Resources
  • 匿名类
  • @SafeVarargs注释
  • 集合工厂方法
  • Process API改进
  • 新版本字符串方案
  • JShell:javashell(REPL)
  • 控制面板
  • 流API改进
  • 针对Microsoft windows及更多应用程序的安装程序增强功能

SpringBoot教程&笔记|Demo04-整合MyBatis-Plus 有更新!

本文主要讲解如何在springboot下整合mybatis-plus,并访问mysql数据库。

SpringBoot教程&笔记|Demo09-整合Log4j2 有更新!

spring boot支持的日志框架有LogbackLog4j2Log4jJava Util Logging,默认使用的是logback日志框架,由于一直使用log4j2,所以本文主要介绍spring boot集成log4j2日志框架。

SpringBoot教程&笔记|Demo08-整合DBUnit进行单元测试

DBunit 是一种扩展于JUnit的数据库驱动测试框架,它使数据库在测试过程之间处于一种已知状态,如果一个测试用例对数据库造成了破坏性影响,它可以帮助避免造成后面的测试失败或者给出错误结果。
DBunit通过维护真实数据库与数据集(IDataSet)之间的关系来发现与暴露测试过程中的问题。IDataSet 代表一个或多个表的数据。此处IDataSet可以自建,可以由数据库导出,并以多种方式体现,xml文件、XLS文件和数据库查询数据等。
基于DBUnit 的测试的主要接口是IDataSet,可以将数据库模式的全部内容表示为单个IDataSet 实例。这些表本身由Itable 实例来表示。
IDataSet 的实现有很多,每一个都对应一个不同的数据源或加载机制。最常用的几种 IDataSet 实现为: 
FlatXmlDataSet :数据的简单平面文件 XML 表示 
QueryDataSet :用 SQL 查询获得的数据 
DatabaseDataSet :数据库表本身内容的一种表示 
XlsDataSet :数据的excel 表示

测试流程大概是这样的,建立数据库连接 -> 备份表 -> 清空数据表 -> 插入准备的数据 -> 调用Dao层接口 -> 从数据库取实际结果-> 事先准备的期望结果 -> 断言 -> 回滚数据库 -> 关闭数据库连接

SpringBoot教程&笔记|Demo07-整合Swagger2 API离线文档

本文主要讲解如何在springboot下整合Swagger2 API离线文档。

SpringBoot教程&笔记|Demo06-整合Swagger2 API文档 有更新!

本文主要讲解如何在springboot下整合Swagger2 API文档。

SpringBoot教程&笔记|Demo05-整合Druid数据源 有更新!

本文主要讲解如何在springboot下整合druid数据源。

SpringBoot教程&笔记|Demo03-配置文件 有更新!

SpringBoot配置文件
SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程

SpringBoot 虽然干掉了 XML 但未做到 零配置,它体现出了一种 约定优于配置,也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。 一般情况下默认的配置足够满足日常开发所需,但在特殊的情况下,我们往往需要用到自定义属性配置、自定义文件配置、多环境配置、外部命令引导等一系列功能。不用担心,这些 SpringBoot 都替我们考虑好了,我们只需要遵循它的规则配置即可