- 博客(22)
- 收藏
- 关注
原创 架构学习 - 日积月累【Day1】----云原生基本概念
什么叫虚拟化:虚拟化是一种资源(服务器、网络)管理技术,就是对资源隔离。OpenStack定义:管理云平台服务技术(可视化管理)KVM定义:集成到linux服务器的虚拟化技术VMWare定义:(Virtual Machine ware)是一个“虚拟PC”虚拟机管理管理软件容器定义:容器就是运行操作系统(物理机操作系统,虚拟机操作系统),是一个操作系统的进程。进程级别的虚拟化技术docker 原理定义:docker 底层利用 cgroup + namespace 实现虚拟化(资源隔离),进
2021-08-12 15:41:19
95
原创 【进阶必备知识点总结分析-----------------spring篇】spring循环依赖
今天被问道了关于spring循环依赖的问题,感觉给人解答的不是很好,所以趁着最近有时间特意研究了下,所以准备写篇波哥记录下,希望大家一起共勉。 那么什么是循环依赖呢?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。 解决办法:Spring为了解决单例的循环依赖问题,使用了三级缓存。 ...
2020-05-01 21:43:55
148
原创 【进阶必备知识点总结分析-----------------spring篇】spring事务的理解与实践
Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另一种是基于 @Transactional 注解的方式。1、测试方法调用同一类中:REQUIRED:如...
2020-04-16 17:55:44
114
原创 【进阶必备知识点总结分析-----------------基础篇】乐观锁与悲观锁总结与实践
乐观锁:所谓乐观锁就是总是设想最好的情况,每次去取数据的时候总是认为不会有人修改,所以不会上锁,但是在更新的时候会去判断一下在此期间是否有更新数据的。可以使用版本号机制和CAS算法实现。乐观锁适用多读的场景。悲观锁:所谓悲观锁就是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很...
2020-04-14 15:04:26
120
原创 【进阶必备知识点总结分析-----------------设计模式篇】观察者模式的使用心得
观察者模式定义了对象间的一堆多关系,当一个对象改变时,其他对象都会收到通知进行自动更新。两个主要角色:被观察者:也被叫做主题,是被观察的对象。通常用注册,取消注册和通知。 观察者:可以接受到主题的更新,当对某一主题感兴趣需要注册,不感兴去可以注销使用场景:一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对...
2020-04-07 17:44:29
170
原创 【进阶必备知识点总结分析-----------------基础篇】hashmap常见问题汇总
我相信无论是什么级别的工程师在面试的时候,在面试基础知识的时候
2020-04-07 13:44:19
105
原创 Java中如何获取到线程dump文件
死循环、死锁、阻塞、页面打开慢等问题,打线程dump是最好的解决问题的途径。所谓线程dump也就是线程堆栈,获取到线程堆栈有两步:(1)获取到线程的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef | grep java(2)打印线程堆栈,可以通过使用jstack pid命令,在Linux环境下还可以使用kill -3 pid另外提一点,Thr...
2019-12-16 10:04:29
1195
原创 程序
1、类初始化过程:子类初始化先初始化父类,一个类初始化就是执行<clinit>,<clinit>()方法由静态类变量显示赋值代码和静态代码块组成,类变量显示赋值代码和静态代码块代码从上到下顺序执行 <clinit>()方法只执行一次。2、实例初始化就是执行<init>()方法 <init>()方法可能重载有多个,有几个构造器就有几个&...
2019-11-28 16:11:01
82
原创 spring2.0和1.0搭建springcloud区别
1、注册中心依赖:1.0:spring-cloud-starter-eureka 2.0:spring-cloud-starter-netflix-eureka-client
2019-11-13 15:21:41
1070
原创 spring 事务
1、事务基本特性(1)、原子性(2)、隔离性(3)、持久性(4)、一致性2、事务分类:编程式事务,声明式事务。3、事务的传播行为:PROPAGATION_REQUIRED—如果当前有事务,就用当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。//如果外层方法没有事务,就会以非...
2019-10-25 13:48:13
86
原创 mysql 索引注意事项
1、索引不会包含有null的列上。复合索引只要一个列中出现null值。那这一列对于此索引就是无效的。2、使用短索引3、索引用在排序的字段上。where查询的语句后面。4、like 'aaa%'可以使用索引5、列上进行运算的不使用索引6、not in,< >,!= 操作不能使用索引。7、索引可以建立在经常使用的select 字段上。8、索引要建立在值比较唯一的...
2019-10-18 10:14:23
155
原创 Java类加载
1、类加载过程:加载-》验证-》准备-》解析-》初始化2、双亲委派机制:当一个类获取加载请求时候,它并不是自己加载,而是把请求委托给父类去加载,如果父类加载还存在其父类加载,继续向上委托。依次递归。如果父类加载能完成当前类的加载就返回成功。倘若父类无法完成加载任务,子类才会尝试加载。...
2019-10-17 13:36:14
78
原创 垃圾回收机制
1、判断对象是否存活:(1)、计数器,应用时候加一,使方时候减一。计数为0可以回收。无法解决对象相互引用的情况。 (2)、可达性分析。从GC root开始向下搜索,搜索走过的路径。当一个对象到gcRoot 没有任何的路径 ...
2019-10-15 14:15:25
88
原创 jvm内存结构
1、内存结构主要分为:方法区、堆内存和栈。堆内存由年轻代和老年代组成。eden空间,from survivor空间、to survivor空间组成。方法区存储类信息、常量、静态变量等数据,是线程共享的区域。栈又分为虚拟机栈和本地方法栈。主要用于方法的执行。2、参考:https://www.cnblogs.com/ityouknow/p/5610232.html...
2019-10-14 09:42:31
94
原创 ThreadLocal
1、提供了线程的局部变量,实现了线程的数据隔离。为了在当前线程中有属于自己的变量。2、底层是treadLocalMap ,map的key是localTread对象,value则是存储的对象。...
2019-10-12 15:30:34
93
原创 单例
1、应用场景:servelet,spring中的bean常量,连接池等2、优缺点:节约内存,重复利用。缺点:线程安全问题3、创建单例的几种方式:(1)、饿汉式(2)、懒汉式(3)、静态内部方式(4)、枚举(5)、双重检测锁机制4、饿汉式://饿汉式publicclassSingletonDemo01 {// 类初始化时,会立即加载该对象,线程天生安全,调用效率高...
2019-10-11 12:54:46
87
原创 hashMap
1、jdk1.8之前底层是由位桶和链表实现,1.8以后采用位桶+链表+红黑树实现。当链表长度超过8时候,将链表转为红黑树。2、首先有一个数组,当添加一个元素时候,首先计算元素key的hash值,以此确定在数组中的位置,但是可能存在重复的情况, 这时候就添加到同一个hash值的后面,但是这时候的元素是个链表,当链表超过一定长度后就转为红黑树。所以同一个链表内 数据的has...
2019-10-10 17:35:49
109
翻译 2019年5月28日技术杂学
1、spring 中bean的生命周期 BeanNameAware.setBeanName() 在创建此bean的bean工厂中设置bean的名称,在普通属性设置之后调用,在InitializinngBean.afterPropertiesSet()方法之前调用 BeanClassLoaderAware.setBeanClassLoader(): 在普通属性设置之后,Initial...
2019-05-29 10:04:14
96
原创 2019年5月28日技术杂学
1、MySQL中的事务 mysql 中innodb 和dbd支持事务,而myisam不支持事务。事务的四个属性:原子性,一致性,隔离性,持久性。事务隔离级别:READ UNCOMMITTED(未提交读/脏读):事务在未提交之前也可以读取数据。READ COMMITTED(不可重复读/提交后读):事务提交前和提交后各读一次,造成数据不一致。REPEATABLE READ(可重读/幻...
2019-05-28 15:28:47
101
原创 2019年5月27日技术杂学
1、锁的分类互斥锁: (1)、互斥锁:synchronized会自动自动释放锁,只要线程运行的代码块超出synchronized的语句块范围,锁就自动释放! (2)、lock对象必须调用lock的对象的unlock()方法才能释放锁,使释放锁更自由读写锁:读写锁就使为了提供性能使用的,主要是读和写互斥。2、redis过期时间策略 三种过期策...
2019-05-27 13:52:56
96
原创 2019年5月23日技术杂学
1、springMvcspringMVc 流程:用户发起请求到前端控制器dispatcherServlet,调用handlerMapping处理器,请求获取handle,处理器生成处理器对象,DispatcherServlet调用HandlerAdapter处理器适配器,经过适配器调用具体处理器,执行返回imodeAndView,将执行结果返回给DispatcherServlet,Dispa...
2019-05-24 17:04:55
167
原创 2019年5月22日技术杂学
1、linux查询硬件命令: df 命令可以列出不同分区的大小,-h可以以k,M,G单位展示 free 可以察看系统的使用情况,闲置和RAM总体使用情况 -m参数配合一起使用2、tcp、Udp3、volatile 关键字线程可见性就是一个变量在被一个线程更改后,另一个线程应该拿到的是更改后的值。变量加上volatile关键字后,变量对所有线程都是可见的,...
2019-05-22 15:47:02
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人