mybatis缓存容易产生脏数据,推荐使用第三方缓存:memcached或者redis。
mybati一级缓存中的脏数据:mybatis的一级缓存:默认是SqlSession级别,只要通过session查过的数据,都会放在session上,下一次再查询相同id的数据,都直接冲缓存中取出来,而不用到数据库里去取了。产生的脏数据:当有不同的sqlSession在对数据库进行操作,一级缓存只能保证当前sqlSession中的增删改在一级缓存中自动更新,就会产生脏数据。mybati二级缓存中的脏数据:mybatis二级缓存:是SessionFactory级别,和namespace绑定,同一个na
hystrix服务熔断与服务降级
hystrix服务熔断:服务端某个服务超时或异常,引起熔断,类似保险丝服务降级:客户端从整体网站请求负载考虑,当某个服务熔断或关闭之后,服务将不被调用此时客户端自己准备一个失败回调FallbackFactory,返回一个缺省值,服务降级,但能用...
Java 优秀开源项目
Hutool —— Java工具类库https://github.com/looly/hutoolpiggy —— Spring Cloud落地项目https://github.com/sqshq/piggymetrics
0.0.0.0/0(代表所有IPV4)与 ::/0(代表所有IPV6)以及 入站规则 出站规则
0.0.0.0/0 代表所有IPV4::/0 代表所有IPV6腾讯云默认如下,开放所有IPV4,禁止所有IPV6,都改成拒绝,再自行开放需要端口
Linux 命令 单横线“-”与双横线“--”的区别
Linux 命令中单横线、双横线,我们称之为命令行选项单横线单横线选项后面跟的参数必须是单字符参数,一个字符表示一个参数,可以多个参数写在同一个横线后面。tar -xcvf ×××在选项需要加参数的时候,参数可以紧跟在选项后面,也可以使用空格分隔。mysql -u root -pmysql -uroot -p双横线双横线选项后面跟的参数必须是多字符参数(单词),双横线后只能跟一个参数。tar --help在选项需要加参数的时候,参数可以使用“=”分隔,也可以使用空格分隔。git
Portainer 与 Rancher 区别
初次接触容器的人们很快意识到,从CLI管理Docker并不是最直观的方法。即使用户只能通过CLI执行某些任务,GUI也可以帮助管理大量容器并简化操作。这篇文章将比较两个最著名的Container GUI:Portainer vs Rancher。并非所有人都知道Portainer和Rancher在过去有共同点。实际上,Rancher从1.5版开始发布了一个默认的UI,用于管理Swarm:Portainer。从2.x版本开始,Rancher更加专注于Kubernetes(及其集群工具),
hashCode与identityHashCode原理
hashCode概念hashCode是jdk根据对象的地址算出来的一个int数字,即对象的哈希码值,代表了该对象在内存中的存储位置。我们都知道hashCode()方法是顶级类Object类的提供的一个方法,所有的类都可以进行对hashCode方法重写。我们也知道在比较一个类是否相同时往往会重写equals方法,值得注意的是,重写equals方法的同时必须也要重写hashCode方法,多次调用一个对象的hashCode方法必须返回同一个数字,这也是必须遵守的规范,不然会造必须存在的危害。hash冲突
String直接赋值和 new String() 区别
直接赋值可能创建一个或者不创建对象,如果”aaa”这个字符串在java String池里不存在,会在java String池里创建一个创建一个String对象(“aaa”)。然后str1指向这个内存地址,无论以后用这种方式创建多少个值为”aaa”的字符串对象,始终只有一个内存地址被分配,之后的都是String的拷贝。Java中称为“字符串驻留”,所有的字符串常量都会在编译之后自动地驻留。new String()至少创建一个对象,也可能两个。因为用到new关键字,肯定会在heap中创建一个str11
208 道Java面试题
共包含 208 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含
Java虚拟机 JVM
本文是学习了《深入理解Java虚拟机》之后的总结,主要内容都来自于书中,也有作者的一些理解。一是为了梳理知识点,归纳总结,二是为了分享交流,如有错误之处还望指出。用XMind画了一张导图(源文件对部分节点有详细备注和参考资料,需要的朋友可以关注我的微信公众号:Java团长,然后回复“JVM”获取):1. Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。1.1.1 程序计数器内存.
Windows叫做“服务“(service),在Linux就叫做“守护进程“(daemon)
运行级别许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。Linux系统有7个运行级别(runlevel):运行级别0:系统停机状态
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-reso
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project demo: Input length = 1 -> [Help 1]出现以上错误原因是:application.properties 的注释引起,去掉下图红框内容即可。...
深入理解 Delta Lake 的 DML 实现原理 (Update, Delete, Merge)
深入理解DeltaLake的DML实现原理(Update,Delete,Merge)过往记忆大数据过往记忆大数据DeltaLake支持DML命令,包括DELETE,UPDATE,以及MERGE,这些命令简化了CDC、审计、治理以及GDPR/CCPA工作流等业务场景。在这篇文章中,我们将演示如何使用这些DML命令,并会介绍这些命令的后背实现,同时也会介绍对应命令的一些性能调优技巧。DeltaLake
今日推荐
周排行