CountDownLatch 让一些线程堵塞直到另一个线程完成一系列操作后才被唤醒。CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,调用线程会被堵塞,其他线程调用 countDown 方法会将计数减一(调用 countDown 方法的线程不会堵塞),当计数其值 ...
分类:
其他好文 时间:
2020-06-18 11:07:07
阅读次数:
43
树的第一部分(数据结构之树(Tree)(一)_树的基础)介绍了树的各个基础:什么是树、树的特点、树的表示方法、树的种类、树在存储结构中的表示、树/森林/二叉树之间的转换(原理)等。 这部分主要介绍下二叉树的创建及遍历(一种实现,主要了解二叉树遍历的过程)。遍历是二叉树重要的运算,是其他运算的基础。树 ...
分类:
其他好文 时间:
2020-06-18 01:34:38
阅读次数:
53
AOP(Aspect Oriented Programming):面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是Spring框架中的一个重要内容。 举个栗子: 有A,B,C三个方法,在调用每个方法之前,打印一个日志:方法被开始调用了!在调用每 ...
分类:
编程语言 时间:
2020-06-17 19:52:20
阅读次数:
58
1. 使用示例 1.在pom中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 2.使用aop注解 ...
分类:
编程语言 时间:
2020-06-16 15:39:07
阅读次数:
56
阅读本文大概需要 1.5 分钟。 参数非空检查是缩写类库很常见的操作,在一个方法中要求参数不能为空,否则抛出相应的异常。比如: public static string HashPassword(string password) { if(password is null) { throw new ...
背景 618来临之际,为了应对一些突发流量,购买了两台一个月的ECS用来临时对部分项目扩容。其中一个项目有用到雪花算法来生成Id,这个还是挺OK的。 不过发现要在配置文件中手动配置机器码!!配置的时候还要先知道目前配置了那些,这样才可以避免重复。 经过了解,除了会有单机单实例的情况,还会有单机多实例 ...
分类:
编程语言 时间:
2020-06-15 09:24:29
阅读次数:
289
认识Java异常 throw(抛出)和throws(声明)的区别 throws一般用于检查型异常,就是编译时就有需要声明或者捕获的异常,表示此方法不处理异常,而交给方法调用处进行处理 throw一般用于运行时异常,继承于(RuntimeException),并且不需要throws Exception ...
分类:
编程语言 时间:
2020-06-14 23:17:47
阅读次数:
59
原文:RocketMQ系列(三)消息的生产与消费 前面的章节,我们已经把RocketMQ的环境搭建起来了,是一个两主两从的异步集群。接下来,我们就看看怎么去使用RocketMQ,在使用之前,先要在NameServer中创建Topic,我们知道RocketMQ是基于Topic的消息队列,在生产者发送消... ...
分类:
其他好文 时间:
2020-06-14 15:02:05
阅读次数:
55
1. 获取Springboot容器Bean对象调用业务方法 package com.example.springboot; import com.example.springboot.service.StudentService; import org.springframework.boot.Sp ...
分类:
编程语言 时间:
2020-06-14 11:20:43
阅读次数:
74
在javaweb开发过程中使用throw 自定义异常,配合全局异常捕获可以大大减少代码量,提升开发效率,在近期项目codereview中, 有小伙伴提出通过throw来中断效率不如直接retrun,之后查阅资料 ( https://stackoverflow.com/questions/363432 ...
分类:
其他好文 时间:
2020-06-13 17:34:21
阅读次数:
78