Java学习之道
文章平均质量分 91
记录Java学习路上的点点滴滴
MobiusStrip
欢迎关注微信公众号:【Java学习之道】-记录Java学习路上的点点滴滴;也欢迎来访我的博客:https://www.mmzsblog.cn
展开
-
Java同步注解@ThreadSafe、@Immutable、@NotThreadSafe、@GuardedBy
星标▲Java学习之道▲一起成长,一起学习~1序本文阿淼主要讲述,Java同步注解: @ThreadSafe、@Immutable、@NotThreadSafe、@GuardedBy目前我所知道的是,@Immutable、@ThreadSafe、@NotThreadSafe、@GuardedBy 都不是 JDK 的标准注释。如果我们需要使用它们,需要导入额外的依赖项:jcip-annotation...原创 2023-05-09 08:00:27 · 966 阅读 · 0 评论 -
SpringBoot2.x 配合 Redis 操作
我们都知道,把首页数据放到Redis里,能够加快首页数据的访问速度。但是我们要如何准确又快速的将 Redis 整合到自己的 SpringBoot2.x 项目中呢?今天阿淼就带大家爬一爬其中的门门道道。序、Redis 介绍Redis 使用了浪费流量的文本协议,但因为它数据存储在内存中的,相对而言,依然可以取得极高的访问性能。并且 Redis 是线程安全的。RESP 就是 Redis 序列化协议的简称。它是一种直观的文本协议,优势在于实现异常简单,解析性能极好。Redis 协议里面虽然有大量冗余的回车原创 2021-10-24 20:26:54 · 6853 阅读 · 20 评论 -
利用它生成代码,效率高了100倍
点击上方"Java学习之道",选择"关注"公众号每天10:24,干货准时送达!本文主题:利用MyBatisplus自动化构建项目为什么要用这个?开始使用0、构建一个普通的...原创 2019-07-16 10:24:00 · 2095 阅读 · 0 评论 -
注解@Async解决异步调用问题
点击上方"Java学习之道",选择"关注"公众号每天10:24,干货准时送达!序言:Spring中@Async根据Spring的文档说明,默认采用的是单线程的模式的。所以...原创 2019-09-23 10:24:00 · 2561 阅读 · 0 评论 -
java 拼音首字母搜索内容功能详解
长按识别下方二维码,即可"关注"公众号每天早晨,干货准时奉上!序一款成熟的产品,首页的搜索功能除了正常的关键词匹配以外;还要考虑到用户忘记输入汉字或者用户想通过关键字首字...原创 2020-07-13 08:39:00 · 3724 阅读 · 51 评论 -
springboot 2.x 整合 shiro 权限框架
序在实际项目中,经常需要用到角色权限区分,以此来为不同的角色赋予不同的权利,分配不同的任务。比如,普通用户只能浏览;会员可以浏览和评论;超级会员可以浏览、评论和看视频课等;实际应用场景很多。毫不夸张的说,几乎每个完整的项目都会设计到权限管理。在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是由于 Spring Security 过于庞大和复杂,只要能满足业务需要,大多数公司还是会选择 Apache Shiro 来使用。一般来说,Spring Sec原创 2020-09-04 09:06:43 · 6960 阅读 · 3 评论 -
SpringBoot2.x 整合 thumbnailator 图片处理
SpringBoot2.x 整合 thumbnailator 图片处理原创 2020-10-08 21:12:36 · 7304 阅读 · 3 评论 -
万字详解!Spring注解开发!
长按识别下方二维码,即可"关注"公众号每天早晨,干货准时奉上!注册组件@Configuration@Configuration等于一个配置文件,如果某个Java类上标注了...原创 2020-11-26 08:29:00 · 24311 阅读 · 144 评论 -
mysql避免重复插入记录insert ignore 、on duplicate key update、replace into
星标▲Java学习之道▲一起成长,一起学习~哈喽,大家好,我是阿淼。今天梳理一下mysql中避免重复插入记录的集中操作。1序回顾以前写的项目,发现在规范的前提下,还是可以做点骚操作的。假如项目使用的MySQL,首先创建测试数据表(建表语句中默认使用utf8mb4以及utf8mb4_unicode_ci,感兴趣的读者可以自行搜索这两个配置):CREATETABLE`student`(`i...原创 2023-06-20 08:29:17 · 1466 阅读 · 0 评论 -
装上这几款IDEA插件,专业程度提升妥妥的
点击上方 Java学习之道,选择 设为星标每天18:30点,干货准时奉上!Part1前言作为一个开发者,每天都要code大量的代码,提升日常工作效率是所有程序员一直追求的,在众多的IDEA...原创 2022-01-20 18:30:00 · 18041 阅读 · 25 评论 -
Kafka是如何实现高性能的?
Kafka 是如何实现高性能的。原创 2022-05-04 16:10:13 · 4841 阅读 · 5 评论 -
注解@Recover优化丑陋的循环重试代码
在实际项目中其中一部分逻辑可能会因为调用了外部服务或者等待锁等情况下出现不可预料的异常,在这个时候我们可能需要对调用这部分逻辑进行重试,代码里面主要就是使用for循环写一大坨重试的逻辑,各种硬编码,各种辣眼睛的补丁。特别是针对重试的逻辑,到处都有。所以我决定用一个重试组件spring-retry优化一波。它的出现,解决掉这部分...原创 2022-03-30 20:37:18 · 21411 阅读 · 9 评论 -
细数springboot中的那些连接池
hello~各位读者新年好!回想起前几天在部署springboot项目到正线时,线上环境要求jdk7,可项目是基于jdk8开发的,springboot也是用的springboot2以上的版本,可以说缝缝补补一整天才搞好能满足线上环境的代码,搞完后当然需要小小的了解一下背后的秘密。好了,话不多说,我们直接进入正题。其实切换还不算太麻烦,坑就坑在SpringBoot2切换到SpringBoot1...原创 2020-02-02 13:07:31 · 3571 阅读 · 50 评论 -
mapstruct使用的正确姿势
我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿森差点就犯难了……序 所以阿淼今天就要给大家安利一款叫 mapstruct 的插件,它就...原创 2020-04-22 09:29:29 · 101672 阅读 · 38 评论 -
数据库查询优化复盘-20条必备sql优化技巧
长按识别下方二维码,即可"关注"公众号每天早晨,干货准时奉上!0、序言本文我们来谈谈项目中常用的 20 条 MySQL 优化方法,效率至少提高 3倍!具体如下:1、使⽤ ...原创 2020-12-08 08:29:00 · 67087 阅读 · 247 评论 -
盘点那些好用的 idea 快捷键
一文让你开发效率蹭蹭蹭的上涨(idea快捷键指南)原创 2020-06-09 10:30:28 · 11275 阅读 · 95 评论 -
Java中的序列化到底是什么
我们都知道,新建一个对象的时候实现 Serializeable 接口,但为什么要这么做?什么时候这样子做?这样子做会不会出现幺蛾子?阿淼一个三连差点把自己都问懵逼了……那接下来,大家就和阿淼一起简单了解一下这个知识点吧……序序列化的定义是:将一个对象编码成一个字节流(I/O);而与之相反的操作被称为反序列化。序列化的目的是为了方便数据的传递以及存储到磁盘上(把一个Java对象写入到硬盘或者传输到网路上面的其它计算机,这时我们就需要将对象转换成字节流才能进行网络传输。对于这种通用的操作,就出现了序列化原创 2020-06-29 14:07:46 · 12383 阅读 · 54 评论 -
如何利用MySQL有效的存储IP地址
当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串原创 2020-05-30 14:39:59 · 11370 阅读 · 33 评论 -
初级程序员需要知道的基本代码规范
本文参考《阿里巴巴Java开发手册》,摘录了一些自己觉得比较重要的部分原创 2018-11-30 13:10:22 · 5455 阅读 · 7 评论 -
诡异的并发之有序性
上一节我和大家一起打到了并发中的恶霸可见性和原子性,这一节我们继续讨伐三恶之一的有序性。序、有序性的阐述有序性为什么要探讨?因为Java是面向对象编程的,关注的只是最终结果,很少去研究其具体执行过程?正如上一篇文章在介绍可见性时描述的一样,操作系统为了提升性能,将Java语言转换成机器语言的时候,吩咐编译器对语句的执行顺序进行了一定的修改,以促使系统性能达到最优。所以在很多情况下,访问一个程序......原创 2020-03-04 08:49:27 · 27699 阅读 · 22 评论 -
诡异的并发之可见性
我们都知道,随着祖国越来越繁荣昌盛,随着科技的进步,设备的更新换代,计算机体系结构、操作系统、编译程序都在不断地改革创新,但始终有一点是不变的(我对鸭血粉丝的热爱忠贞不渝):那就是下面三者的性能耗时:CPU < 内存 < I/O但也正因为这些改变,也就在并发程序中出现了一些诡异的问题,而其中最昭著的三大问题就是:可见性、有序性、原子性。今天我们就主要来学习一下三者中的可见性。零、可见性的阐述...原创 2020-02-28 08:38:09 · 3085 阅读 · 31 评论 -
诡异的并发之原子性
上一节我和大家一起打到了并发中的恶霸可见性,这一节我们继续讨伐三恶之一的原子性。序、原子性的阐述一个或者多个操作在 CPU 执行的过程中不被中断的特性称为原子性。我理解是一个操作不可再分,即为原子性。而在并发编程的环境中,原子性的含义就是只要该线程开始执行这一系列操作,要么全部执行,要么全部未执行,不允许存在执行一半的情况。我们试着从数据库事务和并发编程两个方面来进行对比:1、在数据库中......原创 2020-03-03 09:19:24 · 5353 阅读 · 24 评论 -
HashMap和Hashtable的详细区别
HashMap和Hashtable的详细区别一、简述:1.安全性Hashtable是线程安全,HashMap是非线程安全。HashMap的性能会高于Hashtable,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合(Collections.synchronize...原创 2019-08-27 15:39:54 · 3374 阅读 · 0 评论 -
集合的区分:ArrayList、Vector、LinkedList、Set
如何合理使用ArrayList、Vector、LinkedList、Set原创 2019-01-02 16:26:44 · 2270 阅读 · 0 评论 -
for循环用了那么多次,但你真的了解它么?
一、基础的for循环0、使用while也是一种循环方式,此处探究for相关的循环,就不做拓展了。1、遍历数组的时候,初学时是使用的如下样式的for循环:for(int i=0;i<a.length;i ){ System.out.println(n);}2、而遍历集合的时候使用的都是Iterator迭代器:给定一组人名,两两组队(此处允许自己和自己组队),实现如下:...原创 2019-12-30 09:52:23 · 5016 阅读 · 23 评论 -
利用SHA-1算法和RSA秘钥进行签名验签(带注释)
从小白到清晰熟悉SHA-1加密摘要,RSA加密信息的全过程原创 2018-12-16 17:45:26 · 4793 阅读 · 0 评论 -
注解
Annotation注解如同标签对类行为的某些角度进行评价与解释注解通过反射获取注解的创建public @interface TestAnnotation{}注解的使用@TestAnnotationpublic class Test{}元注解可以注解到其他注解上的注解,也就是基本注解,可以用来规范注解的一些行为@Retention --&gt; 注解的存活周期...原创 2018-10-24 16:27:35 · 41071 阅读 · 0 评论 -
注解@CrossOrigin详解
文章目录注解@CrossOrigin一、跨域(CORS)支持:二、使用方法:1、controller配置CORS1.1、controller方法的CORS配置1.2、为整个controller启用@CrossOrigin1.3、同时使用controller和方法级别的CORS配置1.4、如果正在使用Spring Security2、全局CORS配置3、XML命名空间a、如果整个项目所有方法都可以访...原创 2018-12-06 11:15:19 · 51437 阅读 · 8 评论