Java
GeforceLee
这个作者很懒,什么都没留下…
展开
-
Java中字符串压缩成zip文件
/** * 压缩多个字符串 * @param contentMap key是目录+文件名,value是内容 * @return 压缩后的字节数组 * @throws IOException 异常 */ public static byte[] compress(Map<String,String> contentMap)throws IOException{ byte[] arrayOfByte; tr原创 2021-09-17 16:34:14 · 1647 阅读 · 0 评论 -
Java中byte[]字节数据与String16进制字符串相互转换
public class ByteUtils { private static final char[] HEX_CHAR_ARR = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; private static final String HEX_STR = "0123456789ABCDEF"; /** * 字节数组字符串 * @param btArr 字节数组原创 2021-09-17 11:01:44 · 326 阅读 · 0 评论 -
Java SPI META-INF/services 详解
1.什么是SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。SPI的作用就是为这些被扩展的API寻找服务实现。2.SPI和API的使用场景 API (Application Programming Interface)在大多数情况下,都是实现方制定接口并完成对接口的实现,调用方仅仅依赖接口调用,且无权选择不同实现。从使用人员上来说,API 直接被应用开发人员使用。 ...转载 2021-05-28 17:33:17 · 12846 阅读 · 3 评论 -
Java提交到线程池(ExecutorService)中的代码出现异常了怎么操作
Java提交到线程池(ExecutorService)中的代码出现异常了怎么操作先看看execute到线程池的问题 public static ThreadFactory spring() { return new CustomizableThreadFactory("spring-prefix-"); } /** * 创建只有1个线程的线程池 */ public static ExecutorService create(ThreadFactory t原创 2021-04-30 13:59:45 · 753 阅读 · 1 评论 -
创建ThreadFactory的集中常见方法
创建ThreadFactory的集中常见方法现在大部分都是手动创建线程池,在线程池初始化参数中有个ThreadFactory参数。使用这个参数的目的是创建一系列有规律名字的Thread。这样在查找Bug、跟踪调用栈等等的时候方便些。如果手动自己实现一个ThreadFactory接口的实现类那就有点重复造轮子了。今天咱们就说说常见的创造ThreadFactory的方法。SpringGuavacommons-lang3Spring public static ThreadFactory原创 2021-04-30 11:26:28 · 1276 阅读 · 0 评论 -
Map的实现类HashMap,HashTable,TreeMap,ConcurrentHashMap的Key和Value到底能不能放null?
Map的实现类HashMap,HashTable,TreeMap,ConcurrentHashMap的Key和Value到底能不能放null?HashMap,HashTable,TreeMap,ConcurrentHashMap这几个Map总是记不住key,value能不能存null。今天就拿代码说话,talk is cheap,show me your code先下结论KEYVALUEHashMap可以可以HashTable不可以不可以TreeMap可以原创 2021-04-29 19:34:40 · 538 阅读 · 0 评论 -
一文搞懂java中getClass(),instanceof,isAssignableFrom()区别
java----getClass(),instanceof,isAssignableFrom()区别结论getClass()instanceofisAssignableFrom()获取类判断是否实例判断是否可转化相同的类返回true相同的类,子类,实现类都可以返回true父类.isAssignableFrom(子类)返回true上代码public interface SomeInterface {}public class Father implemen原创 2021-04-27 20:02:33 · 322 阅读 · 1 评论 -
Spring事务的坑你遇到过几个?
Spring事务的坑你遇到过几个有的小伙伴在开发过程中在Service方法上面加了一个@Transactional注解,就认为事务已经启动了,是真的吗?下面列出代码片段,所有的坑事务都不好使,不信你试试。完整代码获取gitee坑一:调用私有方法 /** * 调用私有方法,事务不好使 */ public void saveUserCallPrivate() { saveUserPrivate(); } @Transactional(原创 2021-04-23 10:14:59 · 155 阅读 · 0 评论 -
IDEA 在DEBUG模式下,调试动态代理(JDK Proxy,CGlib),每一步都会调用toString()方法
IDEA 在DEBUG模式下,调试JDK动态代理(Proxy),每一步都会调用toString()方法代码如下public interface TestService { String test();}public class TestServiceImpl implements TestService{ @Override public String test() { return "test result"; } @Overrid原创 2021-04-21 10:36:56 · 2357 阅读 · 0 评论 -
Date与LocalDateTime,LocalDate,LocalTime相互转换
废话不多说直接上代码方法注释没有写,方法名已经比较明确了,在写注释有点画蛇添足的感觉import java.time.*;import java.util.Date;/** * {@link Date} 与 {@link LocalDate},{@link LocalDateTime} 相互转换工具类 * * @author :liylw * @date :Created in 2021/4/9 9:48 */public class LocalDateUtil { pub原创 2021-04-09 10:22:47 · 890 阅读 · 1 评论 -
Java中分布式锁的不同实现,以及优缺点对比
Java中分布式锁的应用本文只做引导,具体实现可能需要另行搜索SQL | Redis | Zookeeper | Curator | Redisson 对比数据库层级建立两个数据库,一个是业务库,一个是锁库正常些Service代码在锁库创建表, 字段是锁的名字利用怕他锁 select * from 表 where 锁的字段= 锁的名字 for update正常写代码Redispublic class RedisLock implements AutoCloseable {原创 2020-12-16 23:14:47 · 337 阅读 · 1 评论 -
@Validated和@Valid区别
Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@ValidatedSpring Validation验证框架对参数的验证机制提供了@Validated(Spring’s JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。其中对于字段的特定验证注解比如@NotNull等网上到处都有,这里不详述在检验Controller的入参是否符转载 2020-11-23 09:56:26 · 242 阅读 · 0 评论 -
Java Web常用的数据验证
常用的数据验证//Bean Validation 中内置的 constraint@Null(message = "必须为空")@NotNull(message = "必须不为空")@AssertTrue(message = "必须为True")@AssertFalse(message = "必须为False")@Min(value = 3,message = "最小是3")@Max(value = 3,message = "最大是3")@DecimalMin(value = "3",mess原创 2020-11-22 10:59:58 · 316 阅读 · 0 评论