摘要:
0.使用自定义注解前,先了解相关元注解
java.lang.annotation 提供了四种元注解,专门注解其他的注解(在自定义注解的时候,需要使用到元注解): @Documented – 注解是否将包含在JavaDoc中 @Retention – 什么时候使用该注解 @Target – 注解用于... 阅读原文
2020-01-04 09:50:02 阅读(2350) 评论(0)
摘要:
Java生鲜电商平台-优惠券系统设计详解
优惠券作为电商最常用的营销手段,对于商家而言可以起到拉新、促活、提高转化的作用,对用户而言也可以获得实惠,今天就来谈谈优惠券系统的设计逻辑。
我对于优惠券系统的理解就是:创建什么样的优惠券,发给哪些人?所以Java生鲜电商平台优惠券系统主要分为两大块:优惠券的... 阅读原文
2020-01-04 09:03:01 阅读(2392) 评论(0)
摘要:
一、事务与分布式事务
事务,在数据库中指的是操作数据库的最小单位,往大了看,事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。
那为什么会有分布式事务呢?单机事务是通过将操作限制在一个会话内通过数据库本身的锁以及日志来实现ACID.因为引入了分布式架构,所以事务... 阅读原文
2020-01-04 08:47:03 阅读(3767) 评论(0)
摘要:
一、强引用
JAVA默认的引用类型,强引用,是在我们的开发工作当中普遍存在的。如果一个对象具有强引用,当内存空间不足的时候,java虚拟机宁可抛出OOM异常,也不会回收它来释放内存。但是我们可以将对象显示的赋值为null,则gc认为该对象不存在引用,这时就可以回收这个对象。具体什么时候收集这要取决于gc的算... 阅读原文
2020-01-04 07:42:03 阅读(2333) 评论(0)
摘要:
在微服务中经常需要使用分布式锁,来执行一些任务。例如定期删除过期数据,在多个服务中只需要一个去执行即可。
以下说明非严格意义的分布式锁,因为 redis 实现严格意义的分布式锁还是比较复杂的,对于日常简单使用使用如下简单方法即可。即偶尔不执行任务不影响业务。
实现要点
1)获得锁、释放锁需要是原子操作。... 阅读原文
2020-01-04 06:01:58 阅读(2590) 评论(0)
摘要:
前言:.kotlin是一门语言,光靠一篇文章要入门不太现实,所以这篇文章重点讲的是kotlin相对于java的一些特性和这些特性带来的好处.
一、简单介绍
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源,id... 阅读原文
2020-01-04 06:00:08 阅读(2398) 评论(0)
摘要:
我们知道JAVA语言与C语言的其中一个区别就是JVM中有垃圾回收器可以通过对运行中的对象进行判断是否存活并且将在内存中已经不在使用的对象进行回收释放其所占用的内存,而C语言需要进行手动的释放内存,1个对象的创建使用释放都需要程序进行显式的操作。当然不管是C还是JAVA都有自己适合的开发领域。
对于... 阅读原文
2020-01-04 00:44:03 阅读(2365) 评论(0)
摘要:
目录
1、@Import注解须知
2、@Import的三种用法
3、@Import注解的三种使用方式总结
@
1、@Import注解须知
1、@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加... 阅读原文
2020-01-03 23:31:07 阅读(2364) 评论(0)
摘要:
类加载器简介
在介绍双亲委托模型之前,先介绍一下类加载器。类加载器通过一个类的全限定名来转换为描述这个类的二进制字节流。
对于任意一个类,被同一个类加载器加载后都是唯一的,但如果被不同加载器加载后,就不是唯一的了。即使是源于同一个Class文件、被同一个JVM加载,只要加载类的加载器不同,那么类就不同。
如何... 阅读原文
2020-01-03 21:49:05 阅读(2477) 评论(0)
摘要:
本文源码:GitHub·点这里 || GitEE·点这里
一、递归算法
1、概念简介
递归算法的核心思想是通过将问题重复分解为同类的或其子问题的方式,从而可以使用统一的解决方式。很多编程语言支持方法或函数自我调用,简单的说,就是在函数或方法体内,自身可以再次调用自身的方法结构。
2、基础案例
这里通过递归的方... 阅读原文
2020-01-03 20:45:04 阅读(2460) 评论(0)