java
文章平均质量分 95
My name is Red ^^
正经学徒,佛系记录,不搞事情
展开
-
CyclicBarrier CountDownLatch 自增与自减
正经学徒,佛系记录,不搞事情概括多线程经常结合这两个辅助工具类使用,目的都是为了等待多个线程处理完后再继续执行程序,可以简单的理解成 CountDownLatch 是在递减等待,而 CyclicBarrier 是在递增等待CountDownLatch//初始化7个,这数值一定要保证最终会被全部减掉CountDownLatch countDownLatch = new CountDownL...原创 2020-04-14 11:22:32 · 368 阅读 · 0 评论 -
java的8锁问题
正经学徒,佛系记录,不搞事情8锁即8个关于锁执行顺序的问题解决问题前,首先需要明白的是 synchronized 只会锁两样东西,一样是调用的对象,一样是Class问题一:两个普通的锁方法,new一个对象调用,调用过程中间睡1秒,执行结果是什么public class Test { public static void main(String[] args) thro...原创 2020-04-13 22:29:23 · 2684 阅读 · 6 评论 -
调用wait方法,应当用循环之内调用 , 永远不要在循环外调用
正经学徒,佛系记录,不搞事情直接明了,wait在百分99的情况下都是跟while联用以如下代码为例:public class Container<T> { final private LinkedList<T> lists = new LinkedList<>(); final private int MAX = 10; ...原创 2019-11-02 11:27:39 · 708 阅读 · 2 评论 -
springboot整合swagger报NumberFormatException
正经学徒,佛系记录,不搞事情正常引入swagger的maven依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</versio...原创 2019-08-18 15:40:09 · 1635 阅读 · 0 评论 -
用最简单的springboot+mybatis解释for update的使用场景
正经学徒,佛系记录,不搞事情本文的主角是mysql InnoDB的写锁,即排他锁(for update)使用他最好的方式就是理解他:排他锁不能与其他锁共存 一个事务获取了某行的排他锁,其他事务就不能再获取该行的锁 获取排他锁的当前事务内可以对数据进行读取和修改 不开启事务,FOR UPDATE不会锁数据 FOR UPDATE 是写锁,读操作不会锁住 FOR UPDATE 即...原创 2019-08-11 23:39:52 · 12727 阅读 · 14 评论 -
慎用在循环中进行删除(js,java通用)
正经学徒,佛系记录,不搞事情JS for循环与$.each循环JS for(通过下标)var arr = [0,1,2,3,4,5];console.log("原数组"+arr);for(var i=0; i<arr.length; i++){ console.log("当前item:"+arr[i]); if(i == 1){ arr.splice(i,1)...原创 2019-05-07 11:04:24 · 1238 阅读 · 0 评论 -
Java并发编程:并发策略-CAS算法
正经学徒,佛系记录,不搞事情原文链接:https://www.cnblogs.com/jianzh5/p/6671230.html对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略。它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以锁会阻塞线程执行。与之相对的有...转载 2019-02-13 10:55:31 · 169 阅读 · 0 评论 -
Java并发编程:ThreadLocal
正经学徒,佛系记录,不搞事情原文链接:https://www.jianshu.com/p/98b68c97df9bThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手...转载 2019-02-12 15:12:37 · 249 阅读 · 0 评论 -
java深度克隆工具类——支持对象和对象集合
正经学徒,佛系记录,不搞事情第一步:创建工具类直接使用commons-beanutils实现对象拷贝,引入pom<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version...原创 2018-12-19 10:49:33 · 16788 阅读 · 8 评论 -
Java线程池
正经学徒,佛系记录,不搞事情线程池学习以下所有内容以及源码分析都是基于JDK1.8的,请知悉。线程池的优势 既然说到线程池了,而且大多数的大牛也都会建议我们使用池化技术来管理一些资源,那线程池肯定也是有它的好处的,要不然怎么会那么出名并且让大家使用呢? 我们就来看看它究竟有什么优势? 资源可控性:使用线程池可以避免创建大量线程而导致内存的消耗 提高响应速...转载 2018-12-24 09:52:36 · 209 阅读 · 0 评论 -
maven多模块构建项目(常见的springmvc项目结构)
正经学徒,佛系记录,不搞事情该功能一般使用于较大的项目,对项目进行业务拆分或者代码分层,这里以代码分层+IDEA为例,构建常用的springmvc项目最终项目结构:(这里仅分三层,基于项目的规模和复用程度,可以追加mn_bpo层,mn_api层,mn_domin层等)个人建议:由于每个层级所负责的功能不同,对应的实体类定位也不一样,甚至大项目每个层级都是有专门的开发人员负责,因此推荐避...原创 2018-12-06 17:10:44 · 5225 阅读 · 1 评论 -
开启dubbo之旅——springboot整合dubbo+zookeeper
正经学徒,佛系记录,不搞事情一、项目最终目录:dubbo-provider:服务提供者dubbo-consumer:服务消费者dubbo-interface:消费者与提供者共同的接口层由于dubbo的消费者与提供者都需要使用到共同的接口,因此本项目使用maven多模块构建项目,减少代码的重复maven多模块构建项目可参考博客:https://blog.csdn.net/...原创 2018-12-07 17:14:33 · 1959 阅读 · 0 评论 -
你真的懂随机吗——shuffle一个简单实用的随机算法
正经学徒,佛系记录,不搞事情随机数的定义:其实随机数是分为真随机数和伪随机数的所谓真随机数,根据百科的解释,真随机数必须依赖于物理现象,例如大乐透,抛硬币,公路上第五辆过来的车是单号还是双号而伪随机数又区分为强伪随机和弱伪随机弱随机数:首先要满足是随机的,但容易找出随机的规律性强随机数:首先要满足是随机的,且无法预测规律综上所述,平时项目中用纯算法实现的随机其实都属于伪...原创 2018-11-30 09:47:53 · 3716 阅读 · 0 评论 -
java操作pdf——扩展功能实现
正经学徒,佛系记录,不搞事情基于上一个项目:https://blog.csdn.net/qq_31748587/article/details/84550356新增的提供的方法:图片转pdf 读取pdf文本 pdf转图片 批量pdf合成一份pdf并生成目录(即书签)图片转pdf /** * @description 图片转pdf * @param...原创 2018-11-30 16:08:29 · 838 阅读 · 0 评论 -
java操作pdf——基础功能实现
正经学徒,佛系记录,不搞事情itextpdf 是java用于操作pdf文件的工具,速度极快,目前测试上千页的pdf文件都不在话下下面编写的工具类,可看作是将pdf文件转成类似list的集合,通过对list的CURD操作,最终生成一个新的list集合,即生成一个新的pdf文件提供的方法:pdf追加pdf pdf插入pdf 指定序列号下 删除pdf某页 交换pdf指定的两页第一...原创 2018-11-26 16:59:10 · 2206 阅读 · 0 评论 -
java判断坐标是否在多边形内
正经学徒,佛系记录,不搞事情参考: https://blog.csdn.net/ardo_pass/article/details/78552592?locationNum=2&fps=1 /** * 判断点是否在多边形内 * @param point 检测点 * @param pts 多边形的顶点 * @return 点在多边形...转载 2018-11-16 15:05:52 · 2138 阅读 · 0 评论 -
geohash地图好帮手
正经学徒,佛系记录,不搞事情详细的解释交给专业的大佬,我就用用:来自大佬的详解 geohash的距离估算工具类:包含坐标和geohash的转换;查询geohash周围九格的geohash(一个“搜索附近”功能的解决方法)import java.util.BitSet;import java.util.HashMap;import java.util.Map;pu...转载 2018-11-15 23:47:06 · 2139 阅读 · 0 评论 -
泛型T获取Class<T>
正经学徒,佛系记录,不搞事情在开发工具类时经常会使用到将泛型T转化为Class<T>//使用方法 参数 T paramsClass<T> clazz = GenericsUtils.getSuperClassGenricType(params.getClass());package com.mn.springboot.utils;import ja...转载 2018-11-15 23:27:46 · 11861 阅读 · 0 评论 -
SnowFlake全局唯一ID及工具类
正经学徒,佛系记录,不搞事情一、什么是SnowFlaketwitter 用于生成id的算法真面目:64位的二进制1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示241−1个数字, 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 241−1,减1是因为可...原创 2018-11-15 17:46:01 · 8341 阅读 · 1 评论