- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 java知识点
拦截器和过滤器的区别:1.拦截器是基于java的反射机制的,而过滤器是基于函数回调。 2.拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 4.拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 5.在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时...
2020-08-31 14:22:19 99
原创 sql笔记
in查询优化使用in语句查询,可能会导致页面查询慢,甚至进一步影响java虚拟机内存溢出。可使用 exists语句的方式代替in语句(两者的查询时间复杂度一个是O(1),一个是O(n), in拼接的参数越多时, 查询效率差距越明显)select * from tb_user t where concat(t.user_id, '_', t.username) in ('1_Tom','2_Jerry','3_Nacy');使用exists替换:1.select * from tb_user .
2020-08-31 14:22:06 161
原创 Java开发必备技巧
1 调试技巧一般的IDE工具都有以下调试功能,本文以 IntelliJ IDEA 为例1.1 计算表达式以下是实际开发中很容易遇到的一种场景:调试下面的代码时,validate() 返回值为true, 正常的逻辑是进入function1,而我们想要查看的结果是function2的返回值boolean validate = validate();String s = null;if(validate) { s = function1();} else { s = functio
2020-08-25 17:57:54 319
原创 自定义Feign客户端的使用
1 概述Java在进行http调用时, 通常会使用以下几种方式:HttpClientHttpUrlConnectionRestTemplateFeign其中,RestTemplate 和 Feign相对于前面两种调用方式来说明显起来明显更加优雅和方便,也更符合我们的语法习惯。 而RestTemplate 和 Feign的使用各有优缺点,相对Feign而言,RestTemplate 使用更加灵活,有较好的扩展性。而Feign虽然扩展性一般,但在处理一些简单调用时,不管是开发体验,还是可读性以及可
2020-08-25 16:52:50 259
原创 业务代码解耦方案与案例
1 概述在实际开发中, 很多业务类的承担的功能较多较杂,给维护和扩展带来了很大的麻烦。本文通过开发中的实际案例进行讲解,以单一职责为原则,对业务代码进行拆分,达到解耦合的目的。2 案例2.1 案例代码//获取治超案件列表Page<OverrunRecordEntity> caseList = overrunRecordMapper.getCaseList(pageParamDto);if(!caseList.isEmpty()) { final Set<String&g
2020-08-25 16:42:08 519
原创 Mybatis原理
简介Mybatis是一款非常优秀的半自动化持久层框架,主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。Mybatis技术原理Mybatis的工作内容主要包括以下两个部分:加载配置,构建SqlSessionFactory。使用SqlSessionFactory构建SqlSession,由S...
2020-08-25 16:36:22 236
原创 职业能力测试知识点
宪法具有人民主权原则(国家的一切权力属于人民)、基本人权原则(国家尊重和保障人权)、法治原则(我国实行依法治国)、权力制约原则。1.人民和公民的区别:人民属于政治概念公民数据法律概念国家的一切权利属于人民,先发适用于全体公民。2.此处的人权是生存权和发展权,“国家尊重和保障人权”是2004年宪法修正案中写入的。3.法治和法制的区别:法治是指用法律治理国家,是相对于人治而言的;法制是法律制度;中国古代虽然有法制,但并非法治社会。法制是法治的前提和基础。4.权力和权利的区别:权力主要是指国
2020-08-25 14:42:21 745
原创 Sql优化案例分析
目的本文以多编号查询为例,结合以往sql优化的经验与互联网上主流的观点,从原理层面对其进行批判分析与总结,并通过实际的比对测试进行验证。本文的目的是以案例的形式,提供一种探究分析的思路和方法,在面对截然不同的环境与观点时,能够快速看清本质,给出最优方案。背景使用多个编号作为sql查询条件时,一般的选择是使用in和exists。下面列举一些开发中实际的案例:2016年,由于现场业务数据的增加,本人维护的某个平台(使用oracle数据库)很多模块出现了查询效率慢的问题,而后针对这些模块进行了一系列的.
2020-08-25 10:29:45 290 1
原创 堆空间溢出问题排查
1.案例背景在一次系统测试过程中,测试人员反馈平台业务功能不可用,请求协助排查。我首先查看运管平台-状态监控,检查服务运行情况,发现状态显示服务运行正常,初步判断可能是服务假死造成的,而能造成服务假死的多半是jvm出问题了。查看运管日志,发现异常日志出现Java heap space,即jvm堆内存溢出。本文将介绍一下我的分析思路与处理过程。2.排查思路首先,根据本人目前所掌握的jvm知识与经验,猜测引起内存溢出有以下几种情况:内存中加载的数据量过于庞大,如一次从数据库取出过多数据;集合类中有
2020-06-12 20:56:23 1173
原创 metaspace内存溢出问题
1.案例背景在系统测试过程中,在平稳运行一段时间后,测试人员反馈营运车辆报警与数据服务组件数据服务(cvalarm-data)的业务功能不可用,请求研发协助排查。发现异常后,我首先查看运管平台-状态监控,检查服务运行情况,发现状态显示服务运行正常,初步判断可能是服务假死造成的,而能造成服务假死的多半是jvm出问题了。查看运管日志,发现异常日志出现Java heap space,即jvm堆内存溢出。本文将介绍一下分析思路与处理过程。2.排查思路作为一个java开发,工作或者学习过程中多多少少会了解些j
2020-06-12 20:46:18 2525
原创 组件内存分析
1.背景新体系下服务的内存占用情况逐渐被关注,本文将对组件的内存使用情况做个分析与优化。2.jvm内存区域java服务内存主要分为两大类:堆内存和非堆内存。2.1 堆内存堆内存是我们通常最熟悉的部分,它是存储由应用程序创建的对象的位置。堆空间内存默认分配情况:老年代 : 三分之二的堆空间 新生代 : 三分之一的堆空间 eden区: 8/10 的新生代空间。survivor0 : 1/10 的新生代空间,survivor1 : 1/10 的新生代空间。2.2 非堆内存非堆内存分为几个不同的
2020-06-12 20:20:11 303
原创 new一个对象的过程
java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和创建对象。一、类加载过程(第一次使用该类) java是使用双亲委派模型来进行类的加载的,所以在描述类加载过程前,我们先看一下它的工作过程:双亲委托模型的工作过程是:如果一个类加载器(ClassLoader)收到了类加载的请求,它首先不会自己去尝试加载这个类
2020-06-08 20:15:31 778
原创 Redis知识点汇总
Q:什么是redis,有什么特点?A:redis是一款基于C语言编写的key-value类型的内存数据库,很像memcached,整个数据库都加载在内存中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存的操作,redis性能出色,每秒可处理10w次的读写操作,是已知性能最快的key-value DB。(1.速度快,是因为数据存在内存中,类似于HashMap,Ha...
2020-06-05 11:27:15 119
原创 项目管理
项目管理的要素是:进度、成本、质量、范围(项目管理铁三角)。项目管理的核心不是把任意一边牢牢抓住,而是在几个要素之间找到平衡,是否平衡最简单直接就是看市场和客户的满意度,简洁需要考虑项目发起人和重要干系人的要求是否符合;项目管理10大领域:项目整合管理、范围、时间、成本、质量、人力资源、风险、沟通、采购、干系人管理;项目管理生命周期五过程:启动、策划、执行和监控、收尾项目启动项目规划项目控制(变更控制)项目风险管理项目收尾项目立项过程:提交立项申请及附件 -> 立项审核/评审 -&g
2020-06-04 21:32:36 164
原创 常用工具类
/** * 从url获取ip、port和地址信息 * 例如 入参:rtmp://10.0.0.1:6666/live/a174658f3ba9483e9c597fb7c4d2bd2d_sub * 出参:[10.0.0.1, 6666, /live/a174658f3ba9483e9c597fb7c4d2bd2d_sub] * @param url * @return */...
2020-04-24 16:23:44 92
原创 sql部分笔记
in查询优化使用in语句查询,可能会导致页面查询慢,甚至进一步影响java虚拟机内存溢出。可使用 exists语句的方式代替in语句(两者的查询时间复杂度一个是O(1),一个是O(n), in拼接的参数越多时, 查询效率差距越明显)select * from tb_user t where concat(t.user_id, '_', t.username) in ('1_Tom','2...
2019-12-24 15:46:55 67
原创 lombok常用注解解析
常用的注解解析lombok的@Data官方解析:@Data该注解相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集lombok的@EqualsAndHashCode官方解析:@EqualsAndHashCode此注解会生成equals() 和 hashCode()方法...
2019-12-23 14:42:24 367
netty-socketio-demo-master.rar
2020-08-25
datahandler.rar
2020-08-25
java-template-util-1.0-SNAPSHOT.rar
2020-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人