
Java
笨笨的小菜
仅仅如此,一个爱好而已。
展开
-
注解方式基于Redisson实现分布式锁
一、定义注解类package com.example.demo.lock.annotation;import com.example.demo.lock.model.LockType;import java.lang.annotation.*;import java.util.concurrent.TimeUnit;@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Inheritedpublic @inte原创 2020-12-14 10:48:28 · 997 阅读 · 0 评论 -
Maven利用profile根据环境引用相应jar包
概述在开发中遇到这样的情况:某些jar包只需要在开发环境使用,其它环境不使用,比如Swagger包。这时候就需要我们根据不同环境打包不同的jar包。方法查阅了Maven的文档,发现使用Maven打包的时候可以利用profile配置区分环境。解决在pom.xml加入profile配置<profiles> <profile>&nbs...原创 2020-01-05 21:12:43 · 1011 阅读 · 1 评论 -
回形取数
问题描述逆时针打印出矩阵数字,回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输出格式输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入1 2 3 4 5 6 7 8 9 样例输入1 4 7 8 9 6 3 2 5 样例输入1 2 3 ...原创 2019-11-12 01:51:09 · 1283 阅读 · 1 评论 -
计算斐波那契数列的几种方法
一、递归private static long f1(int n) { if (n < 1) { return 0; } else if (n < 2) { return 1; } else { return f1(n - 1) + f1(n - 2); }}二、缓存private static ...原创 2019-10-27 00:28:56 · 1472 阅读 · 0 评论 -
ForkJoin详解及应用
ForkJoin是由JDK1.7后提供多线并发处理框架。主要用于并行计算中,和 MapReduce 原理类似,都是把大的计算任务拆分成多个小任务并行计算。分解分解分解汇总汇总汇总复杂计算计算计算计算结果集应用场景计算1~10的和,每组计算3个,代码如下:public class ForkJoinExample extends RecursiveTask<Integer> {...原创 2019-10-19 23:03:13 · 1027 阅读 · 0 评论 -
BlockingQueue详解及应用
java.util.concurrent.BlockingQueue 接口有以下阻塞队列的实现:FIFO 队列 :LinkedBlockingQueue、ArrayBlockingQueue(固定长度)优先级队列 :PriorityBlockingQueue提供了阻塞的 take() 和 put() 方法:如果队列为空 take() 将阻塞,直到队列中有内容;如果队列为满 put() 将...原创 2019-10-19 18:21:08 · 564 阅读 · 0 评论 -
String,StringBuilder,StringBuffer的区别
StringString 类不可变,内部维护的char[] 数组(JDK 9 以后是 byte数组)长度不可变,为final修饰,String类也是final修饰,不存在扩容。字符串拼接,截取,都会生成一个新的对象。频繁操作字符串效率低下,因为每次都会生成新的对象。StringBuilderStringBuilder 类内部维护可变长度char[](JDK 9 以后是 byte数组) , 初...原创 2019-10-19 16:58:11 · 181 阅读 · 0 评论 -
容器
CollectionextendsimplementsextendsextendsextendsimplementsimplementsextendsimplementsextendsimplementsimplementsimplementsextendsextendsextendsimplementsCollectionIterableTreeSetNavigableSetSortedSet...原创 2019-10-19 16:54:36 · 264 阅读 · 0 评论 -
数据类型
基本类型类型长度范围默认值byte8-128~1270short16-32768~327670int32-231~231-10long64-263~263-10Lfloat32~0.0fdouble64~0.0dboolean~true (1)\false (0)falsechar16...原创 2019-10-19 16:50:37 · 292 阅读 · 0 评论 -
Java并发编程之CountDownLatch,CyclicBarrier,Semaphore的理解及应用场景
java.util.concurrent(J.U.C)大大提高了并发性能,AQS (AbstractQueuedSynchronizer) 被认为是 J.U.C 的核心。CountDownLatch用来控制一个或者多个线程等待多个线程。维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0 的时候,那些因为调用 await() 方法而在等待的线程就...原创 2019-10-19 00:03:29 · 602 阅读 · 1 评论 -
POI导入Excel文件简单使用方法
一、Maven引入依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version></dependency>&am原创 2018-12-05 09:54:52 · 376 阅读 · 2 评论 -
全链路跟踪之Pinpoint
一、前言1.1、缘由随着项目扩大和升级,系统架构也从最开始的单机模式进化到分布式架构,各个系统维护起来也比较费劲了,当遇到问题时无法快速定位问题点,这时迫切需要通过某些方法定位和跟踪系统,以及监控系统性能。实现方法有很多,可以自定义开发相关框架,也可以使用第三方开源的框架。如果是完全自己开发,短期内还无法完成,所以考虑使用第三方框架。1.2、调研调研了市面上几个同类框架,有:...原创 2018-11-05 21:05:51 · 7470 阅读 · 0 评论 -
CentOS搭建Sonar和Jenkins进行代码质量检测
一、SonarQube简介SonarQub e 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。二、安装SonarQube(1)在官网下载安装包:https://www.sonarqube.org/downloads/(2)解压下载的zip包执行命令:unzip sonarqube-7.4.zip如果提示无效的命令,则需要先安...原创 2018-10-31 10:51:29 · 1064 阅读 · 0 评论 -
持续集成 之 Jenkins插件 Multijob plugin
由于项目采用分布式服务架构,后端拆分为对外提供接口的接口层和对内提供服务的服务层,而服务层项目A又引用项目B和C服务,这时发布时就要求先发布A,再发布B和C,最后再发布接口项目。经过一番查找,找到了Jenkins插件 Multijob plugin,可以完美解决该问题。(1)首先创建MultilJob Project (2)添加 MultiJob Phase(3)添加任...原创 2018-10-26 12:22:01 · 9209 阅读 · 5 评论 -
Dubbo抛出自定义异常
在Dubbo服务接口上定义throws自定义异常 LoginResponse login(LoginDTO param) throws ServiceException;原创 2018-09-22 11:20:42 · 1010 阅读 · 0 评论 -
IntelliJ IDEA配置Maven自动发布到Nexus
命令行输入参数:clean deploy -Dmaven.test.skip=true -e如果要指定pom.xml,则添加 -f pom_for_api.xml 参数clean deploy -Dmaven.test.skip=true -e -f pom_for_api.xml在C:\Users\logyo\.m2目录下创建settings.xml文件,设置帐号<?...原创 2018-09-23 15:04:15 · 4917 阅读 · 0 评论 -
spring.profiles.active
使用spring.profiles.active来分区配置,比如dev、test、prod等环境 (1)在application.properties中加入spring.profiles.active=dev(2)通过命令行参数java -jar app.jar --spring.profiles.active=dev...原创 2018-08-17 15:26:11 · 8173 阅读 · 0 评论