
实战问题
Liar_27
这个作者很懒,什么都没留下…
展开
-
Java官方文档为什么不建议用Stack实现栈的功能?
JDK的官方文档不建议使用Stack实现栈的功能,转而使用Deque接口的ArrayDeque实现栈的功能。当初 JDK1.0 在开发时,可能为了快速的推出一些基本的数据结构操作,所以推出了一些比较粗糙的类。比如,Vector、Stack、Hashtable等。这些类中的一些方法加上了 synchronized 关键字,容易给一些初级程序员在使用上造成一些误解!而且在之前的几个版本中,性能还不怎么好。基于 Vector 实现的栈 Stack。底层实际上还是数组,所以还是存在需要扩容。Vector 是由数转载 2020-07-17 09:43:11 · 1566 阅读 · 0 评论 -
删除表内数据使id重新从1增长(truncate和delete)
问题情形:在创建数据库进行测试时,插入了很多测试数据,等到正式上线时,需要删除所有测试时产生的数据,但删除后新生成数据时id不再从头开始,而是接之前产生数据的序号。解决方法:改delete为truncateTRUNCATE TABLE TABLENAME;TRUNCATE删除数据时,速度比DELETE快,它通过释放表数据所用的数据页来删除数据,DELETE是一行一行删除,在日志中也可以做查询。TRUNCATE删除所有行,表结构、列、索引、约束等保持不变;delete可根据条件删除表中满足条件的数据转载 2020-06-08 11:30:29 · 2557 阅读 · 0 评论 -
Spring的@Transactional事务包裹和事务回滚
Spring的事务是根据异常来进行回滚操作的Java的异常包括Error和Exception(Error主要是虚拟机的原因)Exception又包括RuntimeException和其他按照编译器是否会检查又分为Checked和UncheckedChecked包括Exception中除RuntimeException的异常Unchecked包括Error和RuntimeException具体见下图spring aop 异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样ao原创 2020-05-30 16:42:49 · 588 阅读 · 0 评论 -
Exception捕捉的全局处理的两种实现方式
场景描述:公司内部的一些微服务偶尔会出现问题,服务请求超时或一些其他问题。因此需要做一个服务监控的模块,每小时对服务接口进行测试,如果 出现异常则发送邮件给管理员。方案一:@ControllerAdvice和ExceptionHandler实现Controler层的异常捕捉并处理ControllerAdvice注解配置了一个全局异常注解类,来统一处理controller层的异常,ExceptionHandler注解标记的方法实现而且controller层中也可以不用写try/catch,使得代码更加原创 2020-05-30 16:15:52 · 773 阅读 · 0 评论 -
java的异常笔记
抛异常的一些规范:1、catch里面一定要至少写一些标记,便于异常排查2、catch中抛出和记录最好只写一种(throw 和 log)3、抛出自定义异常时,除了字符的信息外,要带着具体的异常栈(也就是e,便于错误排查)4、关闭资源不要放在try块中,可以放到finally块中,JDK7之后可以将要监控的代码放入try后的括号中,jdk会自动关闭资源5、抛的异常尽可能写的具体6、自定义异常加一些注释7、多个catch块要优先把更具体的异常放在最上面,因为捕获到一个异常后后面就不执行了8、不要捕原创 2020-05-25 22:04:59 · 583 阅读 · 0 评论 -
mp4格式的视频流传输下实现边下边播
问题描述:年前有一个私活其中一个需求是客户端发请求,服务端将服务器上的视频传到客户端并实现边下边播。需求其实很快完成了,刚开始由于视频大多比较小,前端得到后经过几秒的加载后可以播,但是甲方不太满意播放速度,希望通过多种手段将视频加载速度缩短。在一阵摸索中终于找到了问题的症结。问题解决的全部流程:1、首先考虑的是带宽,带宽是最直接的解决方法,可是考虑到经济性起初购买服务器时带宽买的是5Mbps的,所以首先加带宽测试,加到10M后用postman测试拿视频接口,获得整个视频的速度确实减少了一半,但是客户端原创 2020-05-16 22:37:06 · 5460 阅读 · 2 评论 -
登录状态保持分析及使用springboot、redis和token整合案例(自定义注解拓展学习)
一、网站的接口按权限可以分为两种:1、不需要登录就可以访问的,比如登录的接口2、需要登录后才能访问的接口,比如登陆后的与用户信息相关的接口二、为什么需要状态保持?因为http协议是无状态的,也就是:服务器不知道两个请求是不是同一个用户发过来的;比如:有两个请求,一是登录请求,二是登录后访问个人资料,但是由于无状态的影响,所以,服务器不知道这两个请求是同一个人发送过来的。所以解决http无状态的问题的解决方案就叫:状态保持三、Web端是...转载 2020-05-16 21:39:14 · 1408 阅读 · 0 评论 -
@Autowired报错和降低检测级别
问题描述:刚从远程代码库拉下来的项目,@Autowired无法自动装载,报错。但是项目可运行,运行时查看日志显示该bean已经被创建:因此考虑是IDEA的问题。问题解决:通过查找资料得出是因为IDEA代码检查对于@Autowired注解的检测级别,只需要将error改为warning即可。具体操作:...原创 2020-05-11 11:30:21 · 1683 阅读 · 0 评论 -
本地Jar包如何加载到maven仓库
入职后拿到了公司一个项目的业务代码,但是项目被分成了好几个子项目,有dao、test等子项目(目前还没明白为什么要拆分开,可能是解耦合吧,盲猜),项目之间有依赖关系,但是由于maven是从仓库中自动下载依赖,但是maven仓库中并没有我们需要的自己编写的依赖,因此需要将其中被依赖的项目打成jar包,之后再把本地的jar包加载到仓库中去,最后maven就能从仓库中下载依赖关系了。1、首先找到被依赖的子项目(该项目没有本地jar包依赖,也是就pom文件里没有标红),运行maven的package命令,将项目打原创 2020-05-10 18:26:02 · 471 阅读 · 0 评论