- 博客(33)
- 收藏
- 关注
原创 故障演练实战
在没做故障演练之前,我想很多人可能和我有一样的想法,我的系统跑了好多年,也没出什么问题,认为自己写的代码挺牛逼的,稳定性贼强。但是做过故障演练之后就会发现“什么垃圾东西”。故障演练的演练场景非常广泛,小到代码,大到机房。能够覆盖绝大多数故障场景。磁盘读/写满载故障,验证应用在磁盘高负载情况下的容错能力(如:磁盘满载导致服务 rt 升高。网络抖动故障,验证在网络异常的情况下应用的容错能力(如:服务无法链接数据库)。方法异常,验证代码异常情况下服务的纠错能力(如:数据库查询异常)。
2023-08-29 19:59:00
326
原创 JVM 垃圾回收
标记-清除算法分为两个阶段。在标记阶段,垃圾收集器会标记所有活动对象;在清除阶段,垃圾收集器会清除所有未标记的对象。标记-清除算法存在的问题是会产生内存碎片,从而影响后续的内存分配。
2023-08-09 20:42:29
1043
原创 ReentrantLock
ReentrantLock是Java中的一个可重入锁实现,它提供了和synchronized关键字类似的线程同步功能,但相比synchronized更加灵活和可控。ReentrantLock可以用于实现线程间的互斥访问,避免了线程间的竞争和死锁问题。
2023-08-08 20:39:39
421
原创 Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode异常处理
docker swarm init 初始化swarm网络报错。Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode
2023-04-20 21:49:02
1740
原创 Effective 异常
程序由于未被捕获的异常失败的时候, 会打印该异常的堆栈轨迹, 包含该异常的toString()结果: 通常包含类名和细节消息(detail message).为了确保在异常的细节消息中包含足够的信息, 一种办法是在异常的构造器中引入这些信息, 然后只要把它们放到消息描述中, 就可以自动产生细节信息.如果低层的异常对于调试导致高层异常的问题非常有帮助, 使用异常链将低层的异常(原因)被传到高层异常(exception chaining)可能的情形下, 最好的方法是能避免底层的异常, 确保底层方法成功。
2023-01-07 23:53:49
472
原创 java 基础 - 泛型
等,创建无限制通配符类型的数组是合法的,但并不常用。Java提供了一种特殊的参数化类型——限定通配符类型(bounded wildcard type),pushAll的输入参数类型应该是「E的某个子类型的Iterable接口」,用代码表示就是Iterable
2023-01-06 23:57:18
647
原创 Lamdba 和 Stream
lamdba 类似于匿名类的函数,但是要比匿名类更加简洁lamdba如果需要反序列化一个函数接口,如:Comparator,我们需要使用私有静态内部类。
2023-01-06 22:22:02
310
原创 Java并发编程(五)CompletionService
java.util.concurrent.CompletionService 是对 ExecutorService 的一个功能增强封装,优化了获取异步操作结果的接口。pool() 方法可以用来获取并移除表示下一个以完成任务的Future 如果不存在则返回null 并且不会阻塞。也可以在指定的时间内等待,超时后继续向下运行。CompletionService 主要用来解决FutureTask阻塞的问题,可以更加高效的处理Future的返回 获取最先执行玩的任务的返回值进行处理。
2023-01-05 23:23:17
384
原创 Java并发编程(四)Future和Callable
/实现自定义据略逻辑 } }execute() 方法没有返回值, submit() 方法可以有返回值默认情况下execute() 直接抛出异常, 可以通过自定义ThreadFactory捕获异常。submit() 可以catch ExecutionException 捕获异常。
2023-01-04 23:49:34
564
原创 Java 并发编程 (三)Phaser
CyclicBarrier 解决了 CountDownLatch的缺点,但是其本身也仍然具备一定的缺陷,比如不可以动态添加parties 调用一次await 仅占用1个partiestry {} } }使用 arriveAndAwaitAdvance方法再遇到计数不足时会导致进程被阻塞 可以使用 arriveAndDeregister 在线程结束时使partie减一。只需改动下 testB方法即可验证try {} }
2023-01-04 21:50:20
606
原创 Java 并发编程 (二)CountDownLatch和CyclicBarrier的使用
CyclicBarrier 具有CountDownLatch的所有功能还可以是心啊屏障(阶段性同步)等能力。作用:多个线程之间相互等待,任何一个线程完成之前所有线程都必须等待。与CountDownLanch相同的功能不再介绍@Overridetry {}}}}}可以看出CyclicBarrier具有屏障的重制性计数值可以重制为0isBroken() 查询屏障是否属于破损状态getNumberWaiting() 查看有几个线程到达屏障点。
2023-01-04 00:02:59
300
原创 @Async UnsatisfiedDependencyException导致 SpringBoot 无法启动问题解决
@Async UnsatisfiedDependencyException导致 SpringBoot 无法启动问题解决
2022-11-09 16:14:59
234
原创 记录一次TestNg 踩坑 —— DependencyMap::Method depends on nonexistent group 问题分析
test 名称中包含‘(’ 特殊数字符导致 TestNg内部出现depends on nonexistent method 异常 源码分析
2022-06-18 20:19:32
539
原创 2023届网易互联网精英实习生招聘内推开始啦(也有全职岗位)
【网易】!给你分享我的专属内推邀请函:点击链接填写个人信息,秒速获得内推资格,内推可享受简历优先筛选,拿offer快人一步,赶快行动起来吧!可以私信加我微信,分享一下面经之类的。...
2022-03-01 11:02:45
414
1
原创 网易 2022秋招 内推
【网易互联网】秋招正式开启!简历赶紧投递起来呀!【投递地址】https://bole.campus.163.com/#/app/index?boleId=a2d5ae6e83886c55&boleType=2&type=99&projectId=39&signature=379e12be74594830e9a3da1d80c7427c&isShare=1【投递时间】7.27-9.18【多样选择等你pick】100+岗位丰富多彩!10+部门百花齐放!6大base随
2021-07-28 17:07:32
310
原创 数据库总结
数据库总结一、 数据库基础1.数据库范式2.视图3.存储过程 函数4.触发器5.物化视图二、事务1.ACID2.套嵌事务3.隔离级别4.并发事务三、索引一、 数据库基础1.数据库范式第一范式解决原子性问题:数据库中每一列的元素都符合原子性要求都是不可分割的,是所有关系型数据库的最基本要求第二范式在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。主键保证数据的唯一性,通过主键可以快速定为到数据,主键自带主键索引 提高数据查询速度(此处不再解释)。一条数据有多个字
2020-05-16 20:20:51
640
原创 腾讯从投递简历到入职
腾讯从投递简历到入职犹豫了很久要不要发这篇博客,其实主要是因为对面试的内容已经有很多都忘记了。犹豫再三后决定发一篇博客,希望能给大家提供一些帮助。我先简单介绍一下我的情况西安文理学院(双非)大三在校生java方向后台开发岗2020暑期实习详细个人信息就不介绍了我在介绍一下我的面试过程投递简历:2020-03-16一面(技术面):收到通知:2020-03-16面...
2020-04-04 00:02:21
2266
2
原创 装箱与拆箱
自动装箱与自动拆箱自动装箱自动拆箱自动装箱在java中有八种基本数据类型booleanbytecha、shortintfloatdoublelong每一种类都对应一个包装类我们以 int 为例int 的 包装类为Integer装箱:将一个值包装为一个包装类自动装箱 就是程序自动将一个值包装为一个包装类Integer a = 1;//Integer是一个 类 1...
2019-10-07 12:29:10
142
原创 Springboot Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException
Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part ‘file1’ is not present]浏览器控制台进行的解析IDEA给的反馈这个错误主要主要是指 后端通过@RequestParam(“file1”) 注解标注的...
2019-09-29 17:37:42
40125
4
原创 解析复杂JSON数据
解析复杂的JSON数据例:{“result”:[{“score”:0.701022,“root”:“人物-人物特写”,“keyword”:“美女”,“baike_info”:{“baike_url”:“http://baike.baidu.com/item/%E7%BE%8E%E5%A5%B3/109596”,“image_url”:“http://imgsrc.baidu.com/b...
2019-09-19 19:00:16
532
原创 算法学习笔记一 递归之八皇后分析
问题讲述八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种方法可以解决此问题。...
2019-07-22 11:17:21
322
原创 算法学习笔记一 递归之汉诺塔分析
问题讲述:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。(只是其中一个故事)问题简化:有三根柱子 标号为 A B C三个圆盘都在A柱上需移动到C柱我...
2019-07-21 10:30:32
261
原创 Spring boot执行报错2——template [user/singout], template might not exist or might not be accessible
2019-06-13 18:34:35.001 ERROR 6212 — [nio-8888-exec-6] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8888-exec-6] Exception processing template “user/singout”: Error resolving templa...
2019-06-13 18:49:31
660
原创 SSM——Mybatis学习笔记(三)springboot+Mybatis
数据库连接池数据库连接池的概念来源于著名设计模式——资源池 将资源池概念和数据库联系在一起就成了 数据库连接池对于单一的数据库连接来说,通过jdbc访问一次建立一次数据库连接——执行操作——关闭连接 不会浪费太多的性能,但是当大规模数据库操作时,每一次访问,每一次操作都需要建立连接然后关闭连接,这样就很费性能。而数据库连接池就相当于在内存中开辟一个空间,这个空间中存放的都是对数据库操作并且...
2019-05-21 22:09:42
172
原创 2019-04-28 21:43:41.098 ERROR 2920 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] :
这个错误看着让人很害怕,其实解决方案很简单我虽然解决了但是我并不明白原理如果有大佬了解帮忙解释一下谢谢2019-04-28 21:43:41.098 ERROR 2920 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServle...
2019-04-28 21:52:34
22458
4
原创 SSM——Mybatis学习总结(二)
目录Test类实现增删改查方法一<<<接上一篇SSM——Mybatis(一)Test类实现增删改查方法一package com.qiao.test;import java.io.IOException;import java.io.Reader;import java.util.List;import org.apache.ibatis.io.Resources;...
2019-04-17 17:01:17
203
原创 SSM——Mybatis 学习总结(一)
目录Mybatis简介Mybatis特点Mybatis-jar下载地址JDBC与Mybatis对比Mybatis操作过程Mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBati...
2019-04-13 22:34:17
230
原创 Servlet学习笔记 —— 实现最简单的登录注册及三秒后页面跳转
目录用到的包 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.I...
2019-03-30 21:34:10
3199
8
原创 SSM——Spring 学习总结(二) Spring IOC容器
<<SSM——Spring 学习总结(一) Spring IOC容器目录Spring 学习总结(二)Spring IOC容器1、通过配置文件向 Map、List、Set、Properties、String数组中注入数据Spring 学习总结(二)Spring IOC容器1、通过配置文件向 Map、List、Set、Properties、String数组中注入数据创建Map、L...
2019-03-27 21:04:18
231
原创 SSM——Spring 学习总结(一) Spring IOC容器
目录Spring 学习总结(一) Spring IOC容器1.Spring简介2.学前准备3、编写代码Spring 学习总结(一) Spring IOC容器1.Spring简介简介:Spring是一个分层的JavaSE/EE一站式轻量级开源框架,解决业务逻辑层和其他各层的耦合问题,将面型接口的编程思想贯穿整个系统。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB...
2019-03-23 16:02:57
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人