方案解决
文章平均质量分 91
方案解决
Apple_Web
吃苹果的程序员正在努力ing...
展开
-
如何回答面试官最喜欢问的“三高“?
文章目录前言正文一、缓存1.1 缓存为什么有效?1.2 缓存分类1.3 缓存使用指南1.4 缓存更新的策略1、Cache-Aside:2、Cache-As-SoR:二、预处理和延后处理2.1 预处理2.2 延后处理三、池化3.1 内存池3.2 线程池3.3 连接池四、同步变异步五、消息队列5.1 服务解耦5.2 异步处理5.3 流量削峰5.4 总结六、批量处理七、数据库7.1 索引7.2 读写分离7.3 分库分表八、具体技法8.1 零拷贝8.2 无锁化8.3 序列化与反序列化总结前言金九银十,又是一年校转载 2020-09-15 20:41:37 · 770 阅读 · 0 评论 -
手把手实践NoSuchMethodError、NoClassDefFoundError依赖冲突
前序在实际项目开发中,经常会遇到程序在没有做任何修改的情况下无法启动了。前两天正在电脑前发呆,突然隔壁的程序媛小王火急火燎的说,涛哥帮忙看一个问题吧?这个问题已经阻塞了一中午了。看到异常信息后,第一反应是这种问题99.9999%的原因是maven依赖包有不兼容的问题。不过用idea的Dependency Analyzer排查时发现根本就不存在有冲突的包。这下发现遇到真问题了。虽然嘴上跟人家说是因为版本冲突导致的,但是心里面还是开始犯嘀咕了。不过最后还是把问题给发现了,同时也证明了当时自己的判断是正确的。转载 2020-09-09 16:04:50 · 776 阅读 · 0 评论 -
你的打日志姿势正确吗?
文章目录使用slf4j打日志的正确方式什么时候应该打日志基本格式使用[]进行参数变量隔离不同级别的使用ERROR:基本概念说明WARN基本概念INFO:基本概念说明DEBUG基本概念说明TRACE基本概念规范示例说明使用slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。实现方式统一使用: Logback框架打日志的正确方式什么时候应该打日志当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。当你碰到if…转载 2020-09-04 16:01:49 · 170 阅读 · 0 评论 -
Java 异常处理的误区和经验总结
本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。误区一、异常的选择图 1. 异常分类图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非检测异常使用方便,很多开发人员就认为检测异常没什么用处。其实异常的应用情景可以概括为以下:一、调用代码不能继续执行,需要立即终止。出现这种转载 2020-08-31 18:03:21 · 228 阅读 · 0 评论 -
你会优雅的处理空值吗?
文章目录导语业务中的空值场景问题现场深入listUser研究深入研究get方法深入入参小结空对象模式场景优化修改使用Optional可以进行优化Optioanl的正确使用Optional不要作为参数Optional作为返回值当个实体的返回集合实体的返回使用Optional变量getter中的使用小结导语在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不这头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会转载 2020-07-21 14:34:42 · 331 阅读 · 0 评论 -
Java统一异常处理--实战篇
文章目录背景什么是统一异常处理目标统一异常处理实战用 Assert(断言) 替换 throw exceptionAssert善解人意的Enum定义统一异常处理器类异常处理器说明handleServletExceptionhandleBindExceptionhandleValidExceptionhandleBusinessException、handleBaseExceptionhandleException异于常人的404统一返回结果验证统一异常处理主要代码开始验证捕获自定义异常捕获进入 Control转载 2020-05-26 09:31:38 · 4362 阅读 · 1 评论 -
两种数据库迁移方案你了解吗
停机迁移方案我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。接着到 0 点停机,系统停掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。导数完了之后,就 ok 了,修改系统的数据库连接配置啥的,包括可能代码和 SQL 也许有修改,那你就用最新的代码,然后直接启动连到新的分库分表上去。验证一下,原创 2020-05-08 17:49:09 · 1864 阅读 · 1 评论 -
如何优雅的设计Java异常
导语异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的开发经验来谈一谈我是如何对异常进行处理的。由于本文只作一些经验之谈,不涉及到基础知识部分,如果读者对异常的概念还很模糊,请先查看基础知识。异常的类别正如我们所知道的,java中的异常的超类是java.lang.Throwable(后文省略为Throwable),它有两个比较重要的子类,j...转载 2020-02-05 22:36:37 · 1233 阅读 · 2 评论 -
JDBC批量处理数据之分段批量提交以及异常处理
首先来说批量处理数据的优点:代码优化,提高程序执行性能降低了java程序代码(客户端)和数据库之间的 网络通信的次数。大数据量的插入问题:(jdbc,hibernate,ibatis)每次只插入一条和数据库交互多次(很耗时间)批量插入和数据库只交互一次(内存溢出)解决办法:分段批量插入(推荐)jdbc批量处理数据是通过PreparedStatement对象的 ...原创 2020-02-05 21:41:55 · 3442 阅读 · 0 评论 -
如何解决多线程数据库重复插入、更新问题
文章目录基础概念原因分析解决方案多线程插入解决:多线程更新解决基础概念幂等性 : 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。简单来说:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。幂等性操作:1、查询操作:查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作;2、删除操作:删除操作也是幂等的,...原创 2019-12-17 21:16:10 · 11365 阅读 · 0 评论 -
如何优雅的导出Excel
文章目录如何优雅的导出Excel前言实现的功能点使用实例实现效果源码分析成员变量listExcelHeaderInfoExcelFormat核心方法1. 创建表头2. 转换数据3. 赋值正文多扯两点1. 多线程查询数据2. 如何解决接口超时源码地址源码服用姿势如何优雅的导出Excel前言公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出...转载 2019-10-02 14:42:44 · 251 阅读 · 0 评论 -
幂等问题 8种方案解决重复提交
1.什么是幂等在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效果一样update直接更新某个值的,幂等update更新累加操作的,非幂等insert非幂等操作,每次新增一条2.产生原因由于重复点击或者网络重发 eg:点击提交按钮两次;点击刷新按钮;使用浏览器后退按钮重复之前的操作,导致重复提交表单;使用浏览器历史记录重复提交表单...转载 2019-10-10 23:40:29 · 1559 阅读 · 0 评论