随笔分类 - Java EE
摘要:Bcrypt是单向Hash加密算法,而且经过salt和cost的处理,不可反向破解生成明文。使其受rainbow攻击破解的概率大大降低,同时破解的难度也提升不少。 一、BCrypt代码使用 1 public class BCryptTest { 2 public static void main(S
阅读全文
摘要:Google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法实现流量限制,使用十分方便,而且十分高效。 RateLimiter使用 结果: 首先通过RateLimiter.create(1);创建一个限流器,参数代表每秒生成的令牌数,通过limiter.acquire(
阅读全文
摘要:Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁
阅读全文
摘要:我们常用到的动态特性主要是反射,在运行时查找对象属性、方法,修改作用域,通过方法名称调用方法等。在线的应用不会频繁使用反射,因为反射的性能开销较大。其实还有一种和反射一样强大的特性,但是开销却很低,它就是Javassist。 Javassist其实就是一个二方包,提供了运行时操作Java字节码的方法
阅读全文
摘要:对于观察者模式,其实Java已经为我们提供了已有的接口和类。对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: 上述仅提供一个update方法用于接收通知者的通知做出相应改变。 Java还为我们提供了一个通知者(Publish,发布者),JDK源码如下: 首先,使
阅读全文
摘要:(1)、浮点数精确计算 项目中一直存在一个问题,就是每次报表统计的物资金额和实际的金额要差那么几分钱,和实际金额不一致,让客户觉得总是不那么舒服,原因是因为我们使用java的浮点类型double来定义物资金额,并且在报表统计中我们经常要进行一些运算,但Java中浮点数(double、float)的计
阅读全文
摘要:一、HttpURLConnection添加请求头 1.conn.setRequestProPerty(name,value),两个参数都是字符串。。。。 2.用httpURLConnection的setRequestProPerty(name,value)方法,就能向header里添加信息。 如:设
阅读全文
摘要:1、首先:导入quartz相关的jar包,这里我用的是maven构建的项目,pom.xml文件导入如下: 2、定义要进行定时任务类(该类实现了Quartz 下的job类): 3、接下来要做的就是按照定时任务的固定步骤来做即可:1:定义调度器并且开启 2:定义任务器 3:定义触发器 4 注册
阅读全文
摘要:事务隔离级别:@Transactional(isolation = Isolation.READ_UNCOMMITTED)读取未提交数据(会出现脏读, 不可重复读) 基本不使用@Transactional(isolation = Isolation.READ_COMMITTED)读取已提交数据(会出
阅读全文
摘要:上传文件调用外部服务报错: not a type supported by this encoder 查看SpringFormEncoder类的源码: 可以发现SpringFormEncoder的encode方法当传送的对象不是MultipartFile的时候,就会调用super.encode, 也
阅读全文
摘要:Java提供了4种注解,专门负责新注解的创建: @Target: 表示该注解可以用于什么地方,可能的ElementType参数有:CONSTRUCTOR:构造器的声明FIELD:域声明(包括enum实例)LOCAL_VARIABLE:局部变量声明METHOD:方法声明PACKAGE:包声明PARAM
阅读全文
摘要:1、Constructor 构造方法 2、@Autowired 依赖注入 3、@PostConstruct 在依赖注入完成后被自动调用 4、 三者的顺序: 从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入。所以,如果一个类A中有个成员变量p被@
阅读全文
摘要:sonarlint提示add a private constructor to hide the implicit public one Utility classes should not have public constructors 意思是util类里面都是静态方法,不会去初始化这个类,所以
阅读全文
摘要:springboot中@EnableAsync与@Async注解使用 @Async为异步注解,放到方法上,表示调用该方法的线程与此方法异步执行,需要配合@EnableAsync注解使用。 1、首先演示没有@Async,即没有异步执行的情况 - 创建一个普通类CountNumber,并注入到IOC容器
阅读全文
摘要:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。 注解语法 因为平常开发少见,相信有不少的人员会认为注解的地位不高。其实同 classs 和 interfac
阅读全文
摘要:使用java标准类库java.net.URL
阅读全文
摘要:MYSQL类型与JAVA类型对应表:
阅读全文
摘要:今天用springboot写到一个需求:每周定时发送任务,但是要避开法定节假日。 网上找了些博客看,主要参考了https://www.cnblogs.com/lic309/p/4089633.html,整理补充了一下,完成需求。 (另,如果想要实时动态更新定时任务,可以参考http://blog.c
阅读全文
摘要:关于java中遍历map具体哪四种方式,请看下文详解吧。 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 方法二 在for-each循环中遍历keys或values。 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entryS
阅读全文
摘要:在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之
阅读全文