
java
老白酒,用心酿
这个作者很懒,什么都没留下…
展开
-
JVM-垃圾收集算法
怎么判断一个对象是垃圾判断算法引用计数法当别的对象引用该对象时,该对象内部计数器会加1,失效时计数器会减1,当计数器为0时,对象就会被回收当栈中的obj引用堆中的obj1时,obj1内部计数器会加1,obj1引用obj2时,obj2内部计数器也会加1,而同时obj2引用obj1,obj1内部计数器将会再加1。引用计数器的问题:哪怕是栈里面的obj对堆里面obj1进行了释放,那么obj1的计数器还是不为零,如果两个对象相互依赖,导致内部的计数器用于不会0,导致永远不能被回收原创 2020-06-08 19:27:52 · 184 阅读 · 0 评论 -
JVM-堆
堆:java堆是所有线程所共享的一块内存,在虚拟机启动时创建,几乎所有的对象实例都在这里创建,因此该区域经常发生垃圾回收操作。新生代:. eden区. S区s0区s1区老年代jdk1.8为什么要把永久代干掉,取而代之的是元空间呢1.永久代:空间大小是固定的2.元空间:自动扩容,扩容堆外内存新生代对象创建发生在什么区?一般情况都会创建在eden区,一些大对象分配到老年代可以通过参数配置 -XX:PretenureSizeThreshold=6M ,例如超原创 2020-06-07 17:39:55 · 247 阅读 · 0 评论 -
开源的分布式事务解决方案之Seata
前言分布式事务框架很多:tcc-transaction、Hmily、ByteTCC、myth、EasyTransaction、tx-lcn、seata等等框架,这里有一篇关于这些框架压测的测试报告【不包括seata】:测试报告 ,可以了解下这里我们介绍seata来实现分布式事务。2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像原创 2020-05-24 18:55:44 · 984 阅读 · 0 评论 -
安装seata与搭建seata服务
1)安装第一步:下载:https://github.com/seata/seata/releases第二步:解压 seata-server-0.9.0第三步:运行bin下的seata-server.bat2)涉及到分布式事务的数据库添加表seata需要用到额外的一张数据库表,在需要分布式事务的数据库中执行如下sql创建表即可:-- 注意此处0.3.0+ 增加唯一索引 ux_undo_logCREATE TABLE `undo_log` ( `id` bigint(20) NOT NULL原创 2020-05-24 18:55:32 · 5385 阅读 · 2 评论 -
分布式事务理论
分布式事务与本地事务的区别本地事务:整个服务只能操作一个数据库资源,也就是一个tomcat操作一个数据库【同一线程】分布式事务(多进程间的,一个端口就是一个进程):一个tomcat操作多个数据库或者多个tomcat操作一个或多个数据库分布式事务相关理论:CAP定理CAP定理是在 1998年加州大学的计算机科学家 Eric Brewer (埃里克.布鲁尔)提出,分布式系统有三个指标Consistency 一致性Availability 可用性Partition tole原创 2020-05-24 17:50:13 · 167 阅读 · 0 评论 -
分布式ID详解
背景分布式ID:用在分布式系统中在我们的业务需求中通常有需要一些唯一的ID,来记录我们某个数据的标识:某个用户的ID某个订单的单号某个信息的ID为什么需要分布式ID1.如果id我们使用的是数据库的自增长类型,在分布式系统中需要分库和分表,会有两个相同的表,有可能产生主键冲突分布式ID类型:全球唯一,不会冲突UUID:全球唯一:字符串数据库表来维护ID :新建一张表来产生ID,使用哪种数据库由自己选择Mysql、MongoDB、Redis,性能不好:字符串或数字类型雪花ID:时间原创 2020-05-21 23:54:46 · 1395 阅读 · 0 评论 -
开通阿里短信服务
1.开通服务1.1 注册阿里云登录阿里云首页:阿里云然后注册账号并登录1.2开通短信服务在首页的产品中,找到短信服务:首次登入会显示:立即开通,以后会显示管理控制台:可以看到控制台页面:1.3 付费充值(4分一条信息)2.服务准备正式开发发送短信前,还有一系列准备工作要做,主要包括以下几个部分:开通子账户,设置AccessKeyId和AccessKeySecret开通子账户短信权限申请短信签名申请短信模板2.1.开通子账户出于安全考虑,我们不能直接使用主账号开发,因为原创 2020-05-17 15:28:14 · 794 阅读 · 0 评论 -
RSA非对称加密【配JWT+RSA实现授权认证】
加密技术的类型加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类:对称加密,如AES基本原理:将明文分成N个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。优势:算法公开、计算量小、加密速度快、加密效率高缺陷:双方都使用同样密钥,安全性得不到保证非对称加密,如RSA基本原理:同时生成两把密钥:私钥和公钥,私钥隐秘保存,公原创 2020-05-15 23:42:53 · 1057 阅读 · 0 评论 -
如何使用JWT和RSA非对称加密进行授权认证单点登录
认证流程集中式认证流程分布式认证流程分布式认证有状态登录:服务器需要存储token无状态登录:服务器不用存储token什么是有状态例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点:服务器需要保存大量数据,压力大服务端保存用户状态,无法进行水平扩展客户端请求依赖服务端,多次请求必须访问同一台服务器,原创 2020-05-15 23:17:57 · 2043 阅读 · 2 评论 -
ArrayList底层原理详解
前言:在讲ArrayList之前,先讲简单讲下ListList集合代表一个有序集合,集合中每个元素都有其对应的顺序索引,它继承Collection接口,可以定义一个允许重复的有序集合List接口的特点:1、有下标2、有顺序3、能重复实现List接口的集合有:ArrayList、LinkedList、Vector、Stack在这篇文章,只详细讲ArrayLi...原创 2020-02-28 12:56:45 · 783 阅读 · 0 评论