摘要: Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。 主要模块有: Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); 阅读全文
posted @ 2021-12-19 19:40 残城碎梦 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 什么是反射 反射是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制(包括private实例和方法),java反射机制提供了以下几个功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意 阅读全文
posted @ 2021-12-19 16:28 残城碎梦 阅读(57) 评论(0) 推荐(0) 编辑
摘要: ArrayList ArrayList底层是基于动态数组,根据下标随机访问数组元素的效率高,向数组尾部添加元素的效率高;但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组。 只要ArrayList的当前容量足够大,add()操作向数组的尾部的效率非常高的,当向数组指定位置添加数据时 阅读全文
posted @ 2021-12-19 16:23 残城碎梦 阅读(75) 评论(0) 推荐(0) 编辑
摘要: SpringBoot之所以可以做到简化配置文件直接启动,无外乎是其内部的两种设计策略:开箱即用和约定大于配置。 开箱即用:在开发过程中,通过maven项目的pom文件中添加相关依赖包,然后通过相应的注解来代替繁琐的XML配置以管理对象的生命周期。 约定大于配置:由SpringBoot本身来配置目标结 阅读全文
posted @ 2021-12-19 16:22 残城碎梦 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 单独的数据库 微服务设计的一个关键是数据库设计,基本原则是每个服务都有自己单独的数据库,而且只有微服务本身可以访问这个数据库。它是基于下面三个原因。 优化服务接口:微服务之间的接口越小越好,最好只有服务调用接口(RPC或消息),没有其他接口。如果微服务不能独享自己的数据库,那么数据库也变成了接口的一 阅读全文
posted @ 2021-12-19 15:45 残城碎梦 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 服务熔断 服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。 服务降级 服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非 阅读全文
posted @ 2021-12-19 15:36 残城碎梦 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 应对大流量的一些思路 什么是大流量? TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+...。其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,那么这个量就可以称之为大流量了。 应对大流量的一些常见手段是什么? 缓存:让数据尽早进入缓存,离程序近 阅读全文
posted @ 2021-12-19 14:54 残城碎梦 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。 下面从几个例子作为切入点来讲解下 Java 里有哪些方法来实现线程间通信。 如何让两个线程依次执行? 那如何让 两个线程按照指定方式有序交叉运行呢? 四个线程 A B 阅读全文
posted @ 2021-12-19 13:31 残城碎梦 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 拷贝的引入 引用拷贝 Teacher teacher = new Teacher("Taylor",26); Teacher otherteacher = teacher; System.out.println(teacher); System.out.println(otherteacher); 阅读全文
posted @ 2021-12-19 12:46 残城碎梦 阅读(64) 评论(0) 推荐(0) 编辑
摘要: Object 的 wait()和notify() 方法 Object 对象中的 wait()和notify()是用来实现实现等待 / 通知模式。其中等待状态和阻塞状态是不同的。等待状态的线程可以通过notify() 方法唤醒并继续执行,而阻塞状态的线程则是等待获取新的锁。 调用 wait()方法后, 阅读全文
posted @ 2021-12-19 11:59 残城碎梦 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 线程安全的原因 SimpleDateFormat(下面简称sdf)类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String, Date等等, 都是交由Cale 阅读全文
posted @ 2021-12-19 10:42 残城碎梦 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 分布式事务的实现主要有以下 5 种方案: XA 方案 TCC 方案 本地消息表 可靠消息最终一致性方案 最大努力通知方案 两阶段提交方案/XA方案 所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据 阅读全文
posted @ 2021-12-19 09:21 残城碎梦 阅读(144) 评论(0) 推荐(0) 编辑