摘要: 当项目发布到测试环境的时候,测试出现一个bug,本地调式不好定位问题时,远程debug是你最好的选择。 阅读全文
posted @ 2020-08-01 11:21 Teenager 阅读(2233) 评论(0) 推荐(0) 编辑
摘要: 循环依赖 阅读全文
posted @ 2020-07-14 23:41 Teenager 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 一、常见的设计模式分类 设计模式可以根据创建型、结构型、行为型三种结构进行划分。 1.1 创建型 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、 阅读全文
posted @ 2019-01-15 23:17 Teenager 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、内存溢出和内存泄露 一种通俗的说法。1、内存溢出:你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,出现溢出。2、内存泄漏:你用new申请了一块内存,后来很长时间都不再使用了(按理应该释放),但是因为一直被某个或某些实例所持有导致 GC 不能回收,也就是该被释放的对象没有释放。 阅读全文
posted @ 2019-01-14 11:58 Teenager 阅读(851) 评论(0) 推荐(1) 编辑
摘要: 1. SRP(单一责任原则) 定义:当需要修改某个类的时候原因有且只有一个。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,就需要重新 阅读全文
posted @ 2019-01-10 00:09 Teenager 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 一、数据库连接池 1、数据库连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 2、好处 1)资源重用 阅读全文
posted @ 2019-01-09 19:30 Teenager 阅读(2774) 评论(0) 推荐(0) 编辑
摘要: 1.并发编程三要素 原子性 原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。 有序性 程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序) 可见性 当多个线程访问同一个变量时,如果其中一个线程对其作了修改,其他线程能立即获取到 阅读全文
posted @ 2019-01-09 17:35 Teenager 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 1、springboot是什么 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件,简化了Spring众多框架中所需的大量且繁琐的配置文件。 2、springboot的好处 1) Spring Boot使编码变简单,通过注解的方式和引入starter依赖(集成大量依赖)的方式,使得编 阅读全文
posted @ 2019-01-09 15:47 Teenager 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1、为什么需要代理 比如定义好的类,此时需要在加法后添加新功能,比如打印"hello,world。",就需要修改代码,这样会违反开闭原则,单一职责、依赖倒转等。 2、静态代理 下面使用静态代理实现: 从上面的实例代码上可以看出来代理类必须和被代理类实现一个接口。静态代理解决了上述的问题,但是每一个被 阅读全文
posted @ 2019-01-09 14:10 Teenager 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1、普通锁和分布式锁 为什么有了普通锁还需要分布式锁,当然是因为普通锁和分布式锁各有各的使用场景。普通针对多线程的场景,一般可以synchronized和lock。而分布式针对的是分布式的环境,系统部署在多个机器中,也会出现并发问题,并且场景是多个进程之间的并发问题。使用内存标记无法解决这个问题,因 阅读全文
posted @ 2019-01-07 00:06 Teenager 阅读(4050) 评论(0) 推荐(0) 编辑