热文【Java设计模式】三、简单工厂、工厂方法模式、抽象工厂模式
模拟咖啡店点餐。咖啡有多种,抽象类,子类为各种咖啡。咖啡店类聚合咖啡类。类图如下:定义咖啡抽象类:各种咖啡:咖啡屋类,聚合咖啡抽象类:以上代码的缺陷是咖啡类和 + 咖啡屋...
热文用k8s私有化部署docsify做开放API平台
参照模板:【工行的API开放平台】API开放平台,用于给第三方系统做接入用,开放的自然也是用于对接的那部分API。主要有两类:前者简单,后者得考虑鉴权、限流等问题。这类A...
热文【SpringSecurity】十四、OAuth2.0协议
关于第三方客户端系统何时用refresh_token来刷新令牌,可以写定时任务(授权码换token时,access_token的过期时间也返回过来了),也可以等出现acc...
热文【开发篇】五、文章内容审核接口的内存问题优化
项目中要异步处理业务,或者实现生产者 – 消费者的模型,如果在Java代码中实现,那生产消费的速度、网络、远程调用的响应时间等影响,很有可能导致这些中间数据挤压,保存它们...
热文注解实现校验接口传参是否超出取值范围
Target(ElementType . FIELD) @Constraint(validatedBy = ListValue . ValidIfInRange . cl...
热文【开发篇】三、并发下的OOM分析
但并发时,如果数据处理时间很长,大量对象存于内存,或者处理用户请求后,没有及时删除用户数据对象,就会导致无用对象在堆内存堆积,进而OOM。用户请求过来, 后端查询数据库后...
热文【开发篇】四、MAT堆内存分析(Memory Analyzer Tool)
MAT在打开当前的堆内存快照时,需要把快照下的堆内存里的所有对象读入到内存中,这对安装MAT的机器配置有要求,一般的开发桌面打不开这么大的快照文件,而且下载一个几十G的h...
热文【开发篇】一、内存泄漏的分析工具
最后,可以使用Visual VM的采样tab页,查看当前堆里的对象信息。一个对象不再使用后,(因其从GC Root仍有引用链可达)却未被JVM回收,白白占着内存,即内存泄...
热文【基础篇】十四、GC算法
GC是在一个单独的线程,但不管JVM用哪种算法,都会存在一个阶段需要停止所有的用户线程,称Stop The World(STW),SWT大,用户用起来自然卡。补充:如果现...
热文【基础篇】十五、JVM垃圾回收器
最后,因为清理是复制算法,如果清理时发现没有空Region去存放转移的对象(没地儿复制了),则转为单线程执行标记-整理算法进行Full GC,此时会导致用户线程的暂停。指...
热文【基础篇】十二、引用计数法 & 可达性分析算法
线程不共享的部分,随着线程的创建而创建,随着线程的死亡而销毁,不会发生内存泄漏。即为每个对象维护一个计数器,对象被引用就+1,置为null了就-1,JVM扫描堆内存,发现...
热文【基础篇】十一、JVM方法区
原因:JDK6下的intern方法,第一次遇到字符串实例时,复制到永久代的字符串常量池中,并返回常量池中的引用,即s1.intern是一个指向字符串常量池的引用,而s1后...
热文【Go】二、Go的基本数据类型
通过变量名在内存中找到它(通过房间号找到在一栋楼里找到某个房间),变量类型,即区分空间大小(类比单人间、双人间)最后,注意换行拼接时,+保留在上⼀⾏的最后,因为和Java...
热文【开发篇】十二、GCeasy报告分析
但发现这里JVM给元空间分配了1.2G,占用了652M,似乎没有到元空间阈值,这是JVM会动态的去计算元空间的阈值,只要元空间大小超过了这个阈值,就会触发Full GC,...
热文【开发篇】十、Arthas和BTrace在线定位问题
内存泄漏:不再使用一个对象了,但其在GC Root引用链上,不会被回收器回收,白占空间内存溢出:内存的使用量超出了JVM分配的上限,OutOfMemory持续的内存泄漏,...
热文【开发篇】九、系统不处理业务时也占用大量内存
以上对tomcat的线程配置做了定制化,即最大线程500个,100个核心线程数,这100个线程,即使空闲下来,也不会去做回收。因此上面50个线程过来,最后会有500m的空...
热文【开发篇】八、导出大文件导致内存溢出
推荐使用easyExcel,它采用分批导出,不会让内存中的对象数量达到一个很高的值。虽然这样会让导出的时间长一点,但不会OOM,分批,写完一批就从堆中清掉一批的对象。整体...
热文【开发篇】七、mybatis的foreach遍历,SQL拼接导致内存溢出
打开直方图,发现线程对象占用排第一。打开支配树,按深堆排序,选占用最大的线程对象,找到处理器方法HandlerMethod,List objects --> with o...
热文【基础篇】九、程序计数器 && JVM栈
eg:看异常表的第一行,从起始PC 0到结束PC 2,如果发生异常,就跳转到第7行,astore_0即把捕获的异常对象e放到局部变量表中,因为catch块中大概率会用到e...
热文【开发篇】六、查询大量数据导致内存溢出
记录一个问题,工作中有个数据处理服务OOM,查了下镜像的dockerfile,发现JVM参数如下。很明显,一个数据服务,里面经手大量的数据对象,堆内存125的设置肯定不合...
热文【SpringSecurity】十七、OAuth2授权服务器 + 资源服务器Demo
创建一个中转类,实现UserDetails,以后返回给框架(也可以用框架自己的User类,我觉得自己写个中转类更顺手)。注意其聚合SysUserPo以及权限属性。因Sys...
热文Java后端设置服务器允许跨域
简言之就是发送OPTION请求到服务器,服务器根据预检请求的请求头信息,自行判断是否允许跨域,并把判断结果放到响应的header中返回给浏览器。预检请求的请求头中包含了一...
热文【SpringSecurity】十三、基于Session实现授权认证
定义三个接口,登录,服务端保存session,登出,让session失效。以及一个资源接口,查看当前是登录访问资源,还是未登录访问资源。客户端下次再请求,就带上sid,服...
热文【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)
授权服务:负责校验接入的客户端、登录的用户账户是否合法,以及颁发token.资源服务:校验token,返回资源信息
热文【Java设计模式】二十五、自定义Spring IoC
根据上面xml的特点,定义类,用于封装bean标签下的property标签的各个属性。property.name即对象的属性名property.ref即引用参考对象pro...
热文【Java设计模式】二十四、Spring重要接口回顾
Spring包含约20个模块,1300多个文件。主要架构:Spring面向Bean编程,Bean即受Spring容器管控的对象,而核心容器则是由beans、core、co...