![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
kokoHKM
这个作者很懒,什么都没留下…
展开
-
Java并发编程概述
基本概念多线程业务场景异步任务1、用户注册后的异步通知,短信/邮箱2、异步记录日志定时任务定期备份日志、数据库分布式计算分片计算/Hadoop的map-reduce服务器编程Servlet编程模型进程、线程、协程基本概念进程: 本质上是一个独立执行的程序,进程是操作系统进行资源分配和调度的基本概念,操作系统进行行资源分配和调度的一个独立单位线程:是操作系统能够进⾏运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 ⼀个进程中可以并发多个线程,每条原创 2020-08-16 14:14:40 · 191 阅读 · 0 评论 -
Java集合详解
基础List什么是List列表ArrayList底层是数组,线程不安全,查询和修改快,增删慢,通过角标操作LinkedList底层是双向链表,线程不安全,查询和修改慢,增删快Vector底层是数组,线程安全,操作的时候使用了synchronized进行加锁MapHashMap基于数组+链表,线程不安全,默认容量16。可以实现快速存储和检索,适用于在map中插入删除和定位元素。允许有空的键和值HashTable基于哈希表实现,线程安全(加synchron原创 2020-08-05 17:14:26 · 110 阅读 · 0 评论 -
Git使用实践
Git FlowGit 的一大特点就是可以创建很多分支并行开发。正因为它的灵活性,团队中如果没有一个成熟的分支模型的话,那将会是一团糟。有个很成熟的叫 Git Flow 的分支模型,它能够应对 99% 的场景,剩下的那 1% 留给几乎不存在的极度变态的场景。需要注意的是,它只是一个模型,而不是一个工具;你可以用工具去应用这个模型,也可以用最朴实的命令行。所以,重要的是理解概念,不要执着于实行的手段。简单说来,Git Flow 就是给原本普普通通的分支赋予了不同的「职责」:master——最为稳定原创 2020-07-31 16:39:20 · 123 阅读 · 0 评论 -
代码分层设计
背景一般我们的后端,至少会有这么几层:Controller、Service、Mapper每一层到底该做哪些事情,在一个项目中,一定是需要有一个统一的规范的,否则随着项目的演进,代码质量就会急剧下降,最终不可维护。一个好的应用分层需要具备以下几点:方便后续代码进行维护扩展;分层的效果需要让整个团队都接受;各个层职责边界清晰。基本分层传统的Controller、Service、Mapper三层代码结构,其各层的代码逻辑范围,我一般是如下处理的Controller创建首先是Contr转载 2020-07-31 15:37:41 · 938 阅读 · 0 评论 -
SpringBoot中使用MockMVC进行测试
SpringBoot中使用MockMVC进行测试首先得保证已经在pom中引入了以下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</a...原创 2020-04-11 21:12:02 · 552 阅读 · 0 评论 -
SpringBoot2.X关闭Security的http认证
package com.imooc.config;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.secu...原创 2020-04-11 20:52:35 · 1556 阅读 · 0 评论 -
Swagger的使用
pom <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${...原创 2020-04-11 20:11:48 · 185 阅读 · 0 评论 -
p6spy的使用
pom依赖 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>${p6spy.version}<...原创 2020-04-11 20:06:00 · 194 阅读 · 0 评论 -
在阿里云K8S中部署YAPI
基本思路部署mongo部署yapi部署mongoregistry.cn-hangzhou.aliyuncs.com/sherry/mongo:3.6.9部署yapiregistry.cn-hangzhou.aliyuncs.com/sherry/yapi:latest或者ccr.ccs.tencentyun.com/lvvimage/yapi:latest一回事儿注...原创 2020-04-11 20:02:19 · 727 阅读 · 0 评论 -
CompletableFuture执行多线程任务
这是一段比较实用的代码段当我们有很多任务需要多线程执行的时候,就可以使用@Slf4jpublic class Demo01CompleteFutureMain { public static void main(String[] args) {// 任务列表 List<Integer> jobList = Arrays.asList(1,...原创 2020-04-10 23:27:54 · 1391 阅读 · 0 评论 -
控制消费者处理速度
需求有一个MQ消费者在消费日志数据,将各个生产者产生的消息日志进行入库操作现在有这么几个问题1、消费者处理不过来怎么办2、如何降低对数据库的性能影响基本思路使用令牌桶核心代码 <dependency> <groupId>com.github.vladimir-bukhtoyarov</groupId> ...原创 2020-04-10 23:22:54 · 325 阅读 · 0 评论 -
ACL与RBAC的比较
ACL与RBAC最大的区别,就是用户是直接挂载权限,还是通过角色去挂载权限。对于RBAC,其实还能继续扩展,就是角色是否还可以继续分组,同一组内的角色,具有相同的权限。角色之间是否允许继承?等等各种认证授权模型,不存在优劣之分,只是适用于不同的场景。具体选择哪种模型,还是得结合实际业务场景...原创 2020-04-06 17:05:13 · 919 阅读 · 0 评论 -
Redis解决雪花算法dataId和workId的自动选择问题
文章目录前言算法 1 代码算法 2 代码前言雪花算法是分布式系统中常用的唯一 id 生成算法,一般创建雪花算法的时候,依赖dataCenterId与workerId这两个值的取值都为 0~31 之间的整型。对于一个雪花算法的 id 生成器,需要设置这两个参数值。如果在单实例中,这两个值随便怎么设置都是没问题的,但是对于应用集群部署的时候,为了保证高可用,肯定需要多实例部署。这个时候...原创 2020-03-06 21:09:47 · 9864 阅读 · 4 评论 -
CountDownLatch实现异步转同步
异步转同步 public Tip pushMsgByRedIdsWithNode(List&lt;String&gt; regIds, String msg) { String url = ydPropertites.getNode().getUrl(); Tip tip = SuccessTip.SUCCESS_TIP; try { ...原创 2018-12-05 08:46:29 · 807 阅读 · 0 评论 -
Base64编码
Base64用于将二进制转化成字符串的表现形式旧版Javapublic String createBase64(String clientId,String clientMaster) throws UnsupportedEncodingException { BASE64Encoder encoder = new BASE64Encoder(); St...原创 2018-12-05 08:46:38 · 189 阅读 · 0 评论 -
jackson与gson的简单使用
文章目录jacksonGsonjacksonpackage com.zhidianfan.pig.yd.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.fasterxml.jack...原创 2018-12-05 08:46:45 · 679 阅读 · 0 评论 -
assert关键字
assert关键字assert apples.size() == 1 : "数目不对";如果不满足判定条件,就会抛出Exception in thread "main" java.lang.AssertionError: 数目不对注意,要想开启断言,程序启动的时候要在虚拟机中添加 -ea 参数...原创 2018-12-05 08:46:53 · 139 阅读 · 0 评论 -
Mac下多JDK版本的处理
文章目录bash_profilesourcebash_profilevi ~/.bash_profileexport JAVA_BASE_HOME=/Library/Java/JavaVirtualMachinesexport JAVA_8_HOME=$JAVA_BASE_HOME/jdk1.8.0_152.jdk/Contents/Homeexport JAVA_10_HOME=$JA...原创 2018-11-29 12:37:40 · 827 阅读 · 0 评论 -
使用jvisualvm对JVM进行监控
文章目录jvisualvm是JDK自带的一款JVM监控程序一个可以被监控的java进程启动脚本允许匿名监控的启动脚本#!/bin/shnohup java -Djava.rmi.server.hostname=118.31.117.131 \-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.ssl=fa...原创 2018-12-03 09:03:55 · 224 阅读 · 0 评论 -
Files.walkFileTree遍历文件夹
package org.zln.test1;import java.io.File;import java.io.IOException;import java.nio.file.*;import java.nio.file.attribute.BasicFileAttributes;public class Demo1 { public static void main(S...原创 2018-12-02 00:06:16 · 1716 阅读 · 0 评论 -
devtools热更新
pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runt...原创 2018-12-04 21:51:52 · 308 阅读 · 0 评论