《Java从入门到精通》
文章平均质量分 80
有关Java基础的内容
Java Punk
CSDN博客专家,Java领域创作者,知名企业技术专家,拥有丰富的分布式、高并发、高可用、大数据的系统架构设计以及研发经验...
展开
-
枚举工具类,生产上Enum的常用方法
枚举类的常用方法大同小异,所以小编整理一个工具类,省去每次手写的烦恼原创 2023-06-14 16:14:56 · 1243 阅读 · 1 评论 -
@Async异步线程:Spring 自带的异步解决方案
Spring3 开始提供了@Async 注解,该注解可以被标注在方法上,以便异步地调用该方法。原创 2023-04-23 17:15:26 · 3138 阅读 · 3 评论 -
Java代码瘦身,巧用 @Valid,@Validated 的分组校验和嵌套检验,实现高阶参数校验操作
使用@Valid,@Validated,不仅可以减轻代码量,还加强了代码的易读性,避免if...else...操作。原创 2023-03-16 15:31:00 · 12821 阅读 · 5 评论 -
Java 字符串的数字校验:isNumeric,isNumericSpace和正则表达式,对比分析
isNumeric() 和 isNumericSpace() 都属于StringUtils,区别也就在字面意思里:对 Space(空格)的处理方式不用。原创 2022-10-20 17:24:41 · 8950 阅读 · 1 评论 -
关于:RSA+AES数据传输的加密解密【篇】,项目实战(专题汇总)
本文保存了作者所有【RSA+AES数据传输】相关文章的地址原创 2020-12-15 11:12:55 · 2779 阅读 · 5 评论 -
easyexcel 异常:java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/filemagic
poi 和 poi-ooxml-schemas 等依赖的版本号不一致造成的原创 2022-08-24 21:09:43 · 2184 阅读 · 3 评论 -
言简意赅,说说 @Transactional 在项目中的使用
使用@Transaction注解时,阿里巴巴代码规范插件会提醒需要指定rollbackFor以显示的rollback。原创 2022-08-09 15:56:48 · 797 阅读 · 1 评论 -
如何在业务逻辑中引入重试机制:spring-Retry和Guava-Retry
Spring-Retry 和 Guava-Retry 工具都是线程安全的重试,能够支持并发业务场景的重试逻辑正确性,但是,明显感觉得到 Guava-Retry 在使用上更便捷,更灵活。原创 2022-08-02 16:08:14 · 605 阅读 · 1 评论 -
@Transactional 注解导致跨库查询失效的问题
@Transactional 注解会导致数据库不能切换,master - > slave原创 2022-06-30 10:59:00 · 1328 阅读 · 1 评论 -
RedisTemplate 常用方法汇总
RedisTemplate 是 SpringBoot 集成 Redis 的客户端方式,本文介绍了原生 Redis API 的常用方法,很全面,建议收藏。原创 2022-06-27 21:10:29 · 13658 阅读 · 3 评论 -
理解 Java8 中双冒号 “ :: “ 的用法,方法引用符
Java8 中,双冒号 :: 称为“方法引用操作符”,:: 符号为引用运算符,而它所在的表达式被称为方法引用,我们可以使用它来引用类的方法。原创 2022-01-25 17:17:41 · 6031 阅读 · 1 评论 -
Java8 Stream 中的 reduce() 方法,执行聚合操作
list.stream().map(n->n.getAge()).reduce((a,b)->a*b)原创 2022-01-20 17:04:05 · 4921 阅读 · 1 评论 -
Log4j 注入漏洞:深入理解JNDI注入与Java反序列化漏洞的利用
我翻阅了许多专题文章,其中有2篇文章写的非常不错,完美解答了我对 “Log4j 注入漏洞” 的疑问原创 2021-12-23 14:44:47 · 3440 阅读 · 2 评论 -
JNDI和LDAP:由 Log4j 注入漏洞引出的概念
认真研究Log4j 远程代码注入漏洞产生的原因,其中就遇到了JNDI 和 LDAP 的概念,花了一会功夫总结一下原创 2021-12-22 19:31:43 · 1896 阅读 · 1 评论 -
研究一天,终于把MyBatis的一级缓存和二级缓存搞清楚了
一级缓的作用域是 session(会话),二级缓存是 mapper 级别的缓存,二级缓存相对于一级缓存来说,实现了SqlSession之间缓存数据的共享。原创 2021-12-21 21:03:48 · 1423 阅读 · 2 评论 -
基于 Redis + Lua 脚本实现分布式锁,确保操作的原子性
Lua脚本是高并发、高性能的必备脚本语言,大部分的开源框架(如:redission)中的分布式锁组件,都是用纯lua脚本实现的。原创 2021-12-16 16:40:34 · 9677 阅读 · 11 评论 -
对象存储 OSS 文件下载方法:流式下载和本地下载
OSS Java SDK提供了丰富的文件下载方式:流式下载,下载到本地文件,还介绍了ossclient对象的其他操作原创 2021-12-07 21:14:39 · 12150 阅读 · 4 评论 -
设计模式:单例模式
单例模式的6种实现方式原创 2021-11-22 19:12:49 · 126 阅读 · 1 评论 -
Fastjson 与其他各种JSON库的性能对比,用 Fastjson 就对了!
Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。无依赖,不需要例外额外的jar,能够直接跑在JDK上。原创 2021-03-23 16:03:59 · 2216 阅读 · 1 评论 -
关于:Java基础,常用工具和基础面试【篇】(专题汇总)
本文整理了作者所有【Java基础】相关的文章,并做了轻量级分类原创 2021-02-05 15:43:18 · 418 阅读 · 2 评论 -
Java 初始化集合(List)的方式汇总,都0202年了,别就知道用 new ArrayList()
通过本篇的学习,你将了解【5】种以上的集合(List)初始化方式(因为我也在持续更新),最好用的不一定是 new ArrayList()。原创 2020-12-01 19:09:10 · 2146 阅读 · 2 评论 -
Java 集合(List、Set)与数组(Arr)互转方法及注意事项,难怪《阿里开发手册》会如此重视
通过本篇的学习,你将全面掌握 List,Set 和数组间相互转换的方式,还会规避很多 Arrays 方法常见的坑。原创 2020-12-01 17:09:25 · 3898 阅读 · 2 评论 -
@Transactional 注解参数详解,以及注解的使用特性说明(典藏版)
通过本篇学习,你将加深对@Transactional 注解以及所有的属性的理解,还可以学习到@Transactional 注解常见的失效场景【文章最后】。原创 2020-11-25 20:10:57 · 14202 阅读 · 3 评论 -
Java注解Target、Retention、Inherited、Documented的作用简述,以@Transactional注解为例(处女座总结)
通过本篇,你将学会@Target、@Retention、@Inherited、@Documented注解的含义,以及他们的使用场景,方便大家更好的学习源码。原创 2020-11-25 16:48:33 · 4456 阅读 · 1 评论 -
免费天气API,可以获取全国范围五天内的天气预报(含完整Demo)
推荐个来自【万年历】的天气预报查询接口:http://wthrcdn.etouch.cn/weather_mini?city=北京;原创 2020-03-10 11:10:26 · 12901 阅读 · 3 评论 -
Docker的Container(容器)简介
Image负责APP的存储和分发,Container负责运行APP。原创 2020-02-27 09:51:17 · 4054 阅读 · 0 评论 -
Docker、Kubernetes(k8s)常用命令汇总
1. Docker镜像2. Container(容器)3. k8s转载 2020-02-27 09:35:48 · 2646 阅读 · 1 评论 -
给我10分钟,带你看懂Docker和K8S的前世今生
Docker本身并不是容器,它是创建容器的工具,是应用容器引擎;K8S,就是基于容器的集群管理平台,可以对Docker及容器进行更高级、更灵活的管理,它的全称,是kubernetes。原创 2020-02-26 17:55:21 · 3449 阅读 · 0 评论 -
Java 在浏览器中打开和关闭URI的方法
Java 打开浏览器有两种方法:Runtime类:来自java.lang包,用的是windows指令的操作,Runtime执行的方法相当于你在dos窗口执行;Desktop类:来自java.awt包,DeskTop是在Jdk1.6以后新增加了一个类,该类允许一个Java应用程序启动本地的另一个应用程序去处理URI或文件请;原创 2019-10-31 14:34:46 · 835 阅读 · 0 评论 -
详解 Generator 配置文件的 <plugin> 标签
小编初学使用GeneratorConfig.xml插件生成文件时候,研究了许多微博,发现大多数微博里的模板都会忽略掉<plugin> 标签,导致实体类中除了表字段,就只有get()、set()方法。小编习惯上,最起码会对每一个实体类重写toString()方法,好处就是调试代码,或者输出Debug日志的时候,可以直接输出实体类的数据。<plugin> 标签是很实用的属性,需要掌握一下。原创 2019-10-30 10:05:16 · 1858 阅读 · 0 评论 -
正则表达式预编译功能的正确使用
在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。同时,Pattern要定义为static final静态变量,以避免执行多次预编译。原创 2019-10-29 18:22:17 · 9371 阅读 · 0 评论 -
使用 Java 8 Optional 类来防止 NullPointexception 问题
1)Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。2)Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。3)Optional 提供很多有用的方法,这样我们就不用显式进行空值检测。4)Optional 类的引入很好的解决空指针异常。原创 2019-10-29 18:13:10 · 1416 阅读 · 0 评论 -
Java通过UUID生成16位唯一订单号
原则:不改变核心代码算法:业务代码 + 日期 + HashCode值目的:进一步降低编码重复概率的同时,增强其可读性,使其具备一定的业务含义原创 2019-10-24 15:39:11 · 12929 阅读 · 2 评论 -
GeneratorConfig.xml文件配置详解及IDEA中的使用,处女座小编整理,值得一看
先附上官网链接:http://mybatis.org/generator/index.html小编根据开发经验,将GeneratorConfig.xml 文件整理了一下(绝对处女座),格式整洁明了,注释清晰易懂,并且把IDEA使用的方法,和可能遇到的问题都一一罗列了下,希望可以真正的帮到你。原创 2019-10-24 16:34:19 · 16864 阅读 · 0 评论 -
并发:乐观锁与悲观锁
何谓悲观锁与乐观锁悲观锁乐观锁两种锁的使用场景乐观锁常见的两种实现方式1. 版本号机制2. CAS算法乐观锁的缺点1 ABA 问题2 循环时间长开销大3 只能保证一个共享变量的原子操作CAS与synchronized的使用情景何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向...原创 2019-07-15 17:55:04 · 1003 阅读 · 0 评论 -
关于多线程的基础知识总结,涉及概念,状态,常用方法,实现方式等
小编之前写过好些关于线程、多线程的文章,知识点有些零散,索引决定把关于线程的知识点收纳、总结、梳理一下,希望对大家有所帮助。1. 简述线程,程序、进程的基本概念。以及他们之间关系是什么?线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,...原创 2019-07-12 11:33:03 · 312 阅读 · 0 评论 -
我说我了解集合类,面试官竟然问我为什么HashMap的负载因子不设置成1!?后思极恐。
loadFactor太大,比如等于1,那么就会有很高的哈希冲突的概率,会大大降低查询速度。loadFactor太小,比如等于0.5,那么频繁扩容没,就会大大浪费空间。所以,这个值需要介于0.5和1之间。根据数学公式推算。这个值在log(2)的时候比较合理。另外,为了提升扩容效率,HashMap的容量(capacity)有一个固定的要求,那就是一定是2的幂。所以,如果loadFactor是3/4的话,那么和capacity的乘积结果就可以是一个整数。原创 2020-02-25 15:11:05 · 2193 阅读 · 2 评论 -
时间格式化用了“YYYY-MM-dd”,元旦当天老板喊我回去改Bug。。。
YYYY 表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。解决办法是:使用“yyyy-MM-dd”来做日期格式化,其它的就不要用了!!原创 2020-02-25 11:43:10 · 3225 阅读 · 0 评论 -
Java 给定某年的第几周,计算此周的起止日期(已解决)
比如:输入2020,3,代表2020年的第三周,需要返回本周的开始日期:2020-01-12和结束日期:2020-01-18。原创 2020-01-14 14:54:14 · 8123 阅读 · 5 评论 -
Java泛化的异常捕获,一张图为你分析透彻(图)
空指针异常:NullPointException下标越界异常:ArrayIndexOutOfBoundsException,IndexOutOfBoundsException,StringIndexOutOfBoundsExceptionSQL参数异常:IllegalArgumentException数学转换异常:NumberFormatException运算条件异常:ArithmeticException强制类型转换异常:ClassCastException原创 2020-01-10 14:33:05 · 3711 阅读 · 0 评论