java
文章平均质量分 82
汤姆猫来啦
这个作者很懒,什么都没留下…
展开
-
MapStruct从入门到出门(二)
在平常的对象映射中,总会有很多类型不完全一致的情况,例如转,转或者两个自定义对象之间的转换等。在中定义了一些类型的自动类型转换或者说是隐形类型转换。例如在上节中提到的基本数据类型和其包装类型之间的转换,和数字类型的转换,和时间类型的转换等。在注解中还可以自定义转换格式。例如数字类型转类型,使用属性。使用属性本质上就是使用来实现转换的。下面是生成的方法代码在注解中也有属性,效果跟上面是一样的。dateFormat属性时间类型字段例如,,等转类型,可以使用指定转换格式。如果是类型和互相转换就是使用类原创 2022-06-15 10:44:35 · 542 阅读 · 0 评论 -
MapStruct从入门到出门(一)
相信大家,已经在各种地方都听过这个框架了,知道它是一个类似于的拷贝框架,那么下面让我们来看下官方的介绍翻译一下就是:MapStruct是一个基于Java编译期注解处理器来实现,用来高性能、类型安全的生成Java bean的映射器。可以避免我们手动写Getter/Getter等映射代码。在上面的介绍中可以发现一个词,翻译成中文就是,那么什么是Java编译期注解处理器呢?Java编译时期处理器可以简称为,它是的工具,最早出现在的版本中,随后在之后的版本不断新增相关API,开始流行起来。通过可以拿到注解和被注解对原创 2022-06-15 10:43:18 · 873 阅读 · 0 评论 -
Nacos+Spring Loadbalancer实现快速上下线
开发环境框架版本Springcloud2020.0.2Nacos2.2.1.RELEASE实现目标由于loadbalancer等负载均衡的缓存默认是30s,因此如果发生了服务上下线,服务消费端不能够第一时间知道获取,会产生调用远程服务失败等情况。因此我们想要实现当服务上下线时,能够第一时间通知到服务消费端,另其做出一系列操作。主要思路我的思路是利用Nacos的监听服务变换接口,修改loadbalance的缓存列表,来实现实时修改服务缓存列表阅读源码通过查看o原创 2022-03-08 15:33:09 · 2293 阅读 · 0 评论 -
java基础-包装类缓存池
拆箱和装箱自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。在一般情况下,java会帮助我们进行自动装箱和拆箱,例如下面得例子Integer integerValue = 100; //Integer integerValue = Integer.valueOf(100)int intValue = integerValue; //int intVa原创 2020-08-28 21:47:55 · 392 阅读 · 0 评论 -
docker学习笔记(二)
Docker常用命令今天我们继续来学Docker的命令/(ㄒoㄒ)/~~docker inspect语法:docker inspect ContainerId/NAME作用:获取容器/镜像的元数据例子: docker inspect elasticsearch:7.7.1 [ { "Id": "sha25原创 2020-07-02 14:40:28 · 191 阅读 · 0 评论 -
docker学习笔记
什么是DockerDocker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。使用Docker好处简化配置虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件, 系统), Docker在降低额外开销的情况下提供了同样的功能. 它能让你将运行环境和配置放在代码汇总然后部署, 同一个Docker的原创 2020-07-02 14:39:19 · 204 阅读 · 0 评论 -
MySQL中Select+Update并发的更新问题
小知识补充首先,我们要知道在mysql中update操作都是线程安全的,mysql引擎会update的行加上***排他锁***,其他对该行的update操作需要等到第一个update操作提交成功或者回滚,才能获取这个***排他锁***,从而对该行进行操作。例子表结构小知识点:表必备三字段:id, create_time, update_time。说明:其中id 必为主键,类型为bigint unsigned、单表时自增、步长为 1。create_time, update_time 的类型均为 da原创 2020-06-24 16:29:03 · 2449 阅读 · 0 评论 -
fail-fast和fail-safe
fail-fast首先啥是fail-fast?下面引用别人的解释:在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。这种设计通常会在操作中的多个点检查系统的状态,因此可以及早检测到任何故障。快速失败模块的职责是检测错误,然后让系统的下一个最高级别处理错误。他的意思就是写程序***先考虑异常情况***,如果遇到就直接抛出处理。public int divide(int divisor,int divide原创 2020-06-14 16:17:38 · 258 阅读 · 0 评论 -
java常用锁
java常用锁类型常见的锁大致可以分为:乐观锁,悲观锁,排他锁,共享锁,分段锁,自选锁,公平锁,非公平锁等。。今天来学基于CAS非加锁实现的乐观锁ReentrantLock锁ReentrantLock类是一种可重入,公平/非公平,独占锁,它于synchronized具有相同的功能和语义,但是它更强大,它支持中断,超时等操作。Sync是ReentrantLock的内部类,他的两个子类分别代表公平锁和非公平锁,ReentrantLock可以在构造方法选择是否公平。 public void原创 2020-06-13 14:04:33 · 316 阅读 · 0 评论 -
synchronized和volatile关键字
java内存模型java内存模型规定,将所有的变量都放在主内存,当线程使用变量时,会把该变量复制到线程的工作内存,因此线程读写变量操作的是自己工作内存中的变量。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQ8nra7b-1592028132911)(/images/pasted-7.png)]下图是一个双核cpu的系统架构,每个核都有自己的控制器、运算器、一级缓存,其中控制器包含一组寄存器和操作控制器,运算器负责进行算术逻辑运算。在这个架构中cpu还共享一个二原创 2020-06-13 14:02:38 · 1749 阅读 · 0 评论 -
原子变量操作类
JUC简介在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。在JUC并发包中包含有AtomicInteger,AtomicLong,AtomicBoolean等基于CAS操作的原子操作类。他们原理相似,下面讲解AtomicLong类。它可以原子性递原创 2020-06-13 14:01:20 · 478 阅读 · 0 评论 -
ArrayList源码分析
ArrayList简介ArrayList数据结构是基于数组,与java原本数组不一样的是它能够动态增长,继承于AbstractList,实现了List,Serializable,RandomAccess,Cloneable等接口。ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。ArrayList实现了Cloneable接口,表示覆盖了clone()方法,能被克隆。ArrayList实现了Serializab原创 2020-06-09 21:50:25 · 238 阅读 · 0 评论 -
关于注解的学习
1.注解的认识注解的本质是一个继承了Annotation的特殊接口,具体类是在java运行时通过动态生成的代理类,当我们通过反射方法反射回来的是一个Proxy$1的代理对象,通过代理对象调用自定义注解(接口)的方法,会最终调用AnnotationInvocationHandler的invoke方法。该方法会从memberValues这个Map中索引出对应的值。而memberValues的来源是J...原创 2019-03-14 20:56:02 · 195 阅读 · 0 评论