
java常见知识
文章平均质量分 94
wen-pan
是程序猿一只呀
展开
-
接口幂等性解决方案
一、分布式锁解决方案先说这种方案,在网上有一些文章说可以通过分布式锁来保证幂等性。但是我认为这种方案保证幂等性的缺陷比较多,基本不可取。看下面分析①、方案介绍用户通过浏览器发起请求,服务端会收集数据,并且生成订单号code作为唯一业务字段。使用redis的set命令,将该订单code设置到redis中,同时设置超时时间。判断是否设置成功,如果设置成功,说明是第一次请求,则进行数据操作。如果设置失败,说明是重复请求,则直接返回成功。②、问题分析场景一、客户端连续发起两次请求(比如用户快速原创 2021-10-27 14:55:25 · 9737 阅读 · 11 评论 -
Java反射常用API
Java反射机制1、什么是Java反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。2、反射的源头反射是通过什么为源头来取得一个实体类的所有属性和方法的呢?反射是通过对一个类的Cl原创 2020-07-24 14:32:19 · 2814 阅读 · 0 评论 -
Java反射机制详解
1、什么是Java反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。2、反...原创 2019-12-03 17:54:54 · 360 阅读 · 0 评论 -
多线程中主存与线程工作空间同步数据的时机
在测试volatile关键字如何保证数据在多个线程中的可见性问题的时候,引发的思考!对于一个临界资源,如果使用volatile关键字修饰,那么就可以保证该变量在多个线程中可见。对于原理的理解不是很难,但是使用到代码来模拟多线程问题的时候,对于何时从主存读取共享变量何时将工作内存刷写到主存的时机却不是特别清楚。导致对于多线程理解不够透彻!1、线程的工作内存刷写到主存以及从主存读取到工作内存的...原创 2019-11-22 16:40:47 · 3269 阅读 · 15 评论 -
Java多线程volatile关键字
一、volatile介绍1、什么是volatilevolatile是Java提供的一种轻量级的同步机制。Java语言包含两种同步机制:1、同步块(或同步方法) 2、volatile变量。相比于synchronized加锁同步,volatile关键字比较轻量级,开销更低,因为他不会引起线程上下文的切换调度。2、volatile定义Java编程语言允许线程访问共享变量,为了确保共享变量...原创 2019-11-18 17:32:34 · 1384 阅读 · 0 评论 -
java8中的lambda表达式理解
Java8在2014年3月发布,但是作为IT公司往往不是追求技术的新,而且追求技术的稳定。所以大多用的之前的版本。Java 8 新特性简介速度更快(1、修改底层数据结构:如HashMap(数组-链表-红黑树),HashSet,ConcurrentHashMap(CAS算法)2、修改垃圾回收机制:取消堆中的永久区(PremGen)->回收条件苛刻,使用元空间(MetaSpace)...原创 2019-11-15 16:15:35 · 423 阅读 · 0 评论 -
thymeleaf中的下拉框(select option)回显选中
介绍:最近使用thymeleaf模板引擎做二手商城项目,在用户修改自己出售的商品信息的时候需要将数据从数据库中查询出来在前端页面进行数据的回显。在input框中的数据回显都没有问题,但是到select框回显的时候却遇到了一些麻烦。特此记录以便查阅!正确方式如下:使用thymeleaf的switch和case来进行判断,将所有的selected属性都设置为selected,将要选中的值与所有的...原创 2019-03-20 09:44:39 · 10506 阅读 · 0 评论 -
java策略模式
示例:在说策略模式之前,先看一个小例子:假如:有一场演讲比赛,有十个评委对参赛选手的成绩进行打分,但最终要通过评委的平均分来决定选手的名次。现在有两种求平均分的策略:第一种:将十名裁判的分加起来求平均值。第二种:去掉最高分和最低分后求平均值。面对以上的需求,我们可能会写出如下代码:public class Averge { /** * @param a 每个裁判所...原创 2019-04-09 18:19:48 · 5661 阅读 · 0 评论