- 博客(9)
- 收藏
- 关注
原创 ApplicationContextAware是如何工作的
1.什么是ApplicationContextAware?这是Spring的一个接口,实现这个接口,我们可以获取到ApplicationContext,从而我们就可以通过 ApplicaitonContext操作Bean;举一个简单的例子,我们单例Bean在依赖原型的Bean的时候,因为单例Bean只初始化一次,这个时候我们就会发现这个原型的Bean就不会在后面的使用改变,这个时候我们就可以通过获取ApplicationContext来手动注入原型的Bean,保证我们每次使用的Bean都是不同的对
2020-06-01 17:47:44
181
原创 volatile 详细解释
如果我们需要深入的了解volatile这个关键字,我们首先需要了解关于Java的内存模型(JMM),所以我们首先来看一下Java的内存模型;
HashMap 的resize方法解释final Node<K,V>[] resize() { //1.table赋值给一个临时变量oldTab Node<K,V>[] oldTab = table; //2.记录oldTable的容量为oldCap,如果oldTab是null,oldCap=0,否则就为oldCap的大小,第一put值的时候为nu...
2020-03-25 23:58:23
610
3
原创 MySql索引
1.什么是索引?索引是单独的、存储在磁盘上的数据结构,他包含着对数据表里所有记录引用的指针。可以快速找出某个或者多列的值。当没有索引的时候执行select * from table num = 1000;这时候你查找到这条数据必须遍历表,知道找到这条数据。但是如果有索引的话,他通过索引可以直接定位到这条数据。比如你用hash来存储索引,数据库只要计算hash值,取到这条数据的引用就可以拿到这条数...
2019-08-26 16:46:56
138
原创 硬刚JAVA虚拟机之Java内存区域
一、程序计数器1.一块较小的内存空间,线程执行字节码的行号指示器,通过改变行号指示器的值来选取下一条指令。比如分支,循环,跳转,异常处理。2.在确定的时间内,一个处理器的线程都只会执行线程中的一条指令,因此线程执行指令后,要恢复到正确的位置,每个线程都需要一个程序计数器,方便线程切换后回到正确的位置。所以程序计数器是属于线程私有的内存区域。3.最后,线程如果执行的是Java 方法,程序计数器...
2019-08-20 14:32:18
104
原创 Java 关键字this
1.this只能在方法的内部使用,表示当前调用这个方法的对象。2.在方法内部调用本类的其他方法时,可以不使用this,可以直接使用方法名调用。ps:可以显示的使用this调用方法。3.在同一个类中,重载了构造器,可以在构造器中使用this 关键字调用其他构造器,但是只能使用一次,并且必须在最开始的地方调用。4.当参数名称和成员名称相同的时候可以使用this,this.参数名,表示成员。具体...
2019-08-07 10:16:35
108
原创 SPEL 表达式
一.SPEL特性1.使用bean名称引用bean;2.调用方法和访问对象属性;3.对值经行运算;4.正则表达式匹配;5.集合操作;二.表达式体和属性占位符1.首先表达式的表现形式 #{},例子#{1},将这个表达式体去掉就是一个简单的数字常量,${}是属性占位符。三.各种例子1.字面值可以表示浮点数,String值和Boolean值#{3.14159}#{‘hello wor...
2019-07-17 11:12:18
320
原创 关于Cloneable接口
Cloneable接口的理解与使用1.Cloneable接口的作用首先我们看一下Object类里面的clone方法:首先我们可以看到clone方法是被native关键字标记的一个方法,native修饰的是一个空方法,但是和abstract修饰的不一样,abstract修饰表示我们需要在具体的实现类中实现这个方法,native方法表示这个方法不是由Java实现的,而是由第三方语言实现的,他们...
2019-07-11 11:00:08
454
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人