- 博客(19)
- 收藏
- 关注
原创 @Autowired自动配置的过程
使用@Autowirted自动配置时,Spring IOC容器会自动装配一个AutowiredAnnotationBeanPostProcesspr后置处理器,这样,当Spring容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器中所有 Bean,拥有 @Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。@Autowired是spring提供的注解,可以对成员变量、方法和构造函数进行标注。
2022-10-24 19:31:28 828
原创 CopyOnWriteArrayList源码分析
实现对CopyOnWrite集合容器写入操作时的线程安全,但同时并不影响进行并发的读取操作。当我们往集合容器中写入元素时(添加、修改、删除),并不会直接在集合容器中写入,而是先将当前集合容器进行Copy,复制出一个新的容器,然后新的容器写入元素,写入操作完成之后,再将原容器的引用指向新的容器。添加新元素至集合时,会将当前数组Copy复制新数组,并将新元素添加至新数组,最后替换原数组。删除指定下标的元素,根据指定下标元素,从原数组中,Copy复制其他元素至新数组,最后替换原数组。2. 删除指定区间的元素。
2022-09-18 18:55:01 234
原创 创建对象在堆区如何分配内存
(从Java1.7开始已经默认开启逃逸分析,如果某些方法中的对象引用没有被返回或者未被外面使用,也就是未逃逸出去,那么对象可以直接在栈上分配内存)所有的对象实例以及数组都在这里分配内存。(s0或s1),然后将当前正在使用的空间完全清除,交换两块空间的使用状态。每次交换时,对象年龄会。,在JVM中一个对象也不可能永远呆在新生代,在JVM中一个对象从新生代晋升到老年代的阈值默认值是。是JVM所管理内存中最大的一块区域,被所有线程。的时候,它们将存活的对象复制到未使用的。,没有被引用的对象直接回收。
2022-09-18 17:25:14 253
原创 FileInputStream与BufferedInputStream有哪些区别?
FileInputStream和BufferedInputStream的一些注意点
2022-06-13 18:22:42 193
原创 栈模拟队列
栈的特点是:后进先出(Last In First Out)队列的特点是:先进先出(First In First Out)用栈模拟队列的思路:先定义两个栈in和out,用栈in来存储元素,栈out来输出元素,入队时按顺序压入栈in中,再从栈in中弹出压入到栈out中,这样根据栈的特点,按顺序将栈out的元素出栈就好了。具体实现如下:public static void main(String[] args) { MyQueue<String> queue = ne...
2022-05-11 19:28:59 150
原创 六大集合List、Set、Map、Queue、Deque、Stack的遍历方式总结
1、List集合List集合是我们最基础的一种集合,常用的实现类有ArrayList,内部使用数组作为存储结构,因此和数组十分类似,他是一种有序列表,索引也和数组一样,都是从下标0开始。所以我们在遍历List时,有这2种方法:① 使用for循环,配合get(index)方法遍历。(不推荐)例:public class Main{ public static void main(String[] args){ List<String> list...
2022-05-10 21:26:08 650
原创 字符串常见方法总结:
1.使用charAt()方法可以获取字符串对应索引值位置的字符,参数是int类型的字符串下标,返回值类型是char类型。 2.使用compareTo()方法可以比较当前字符串与另一个字符串的大小,参数是String类型的字符串,返回值类型是int类型。 3.使用contains()方法可以判断当前字符串是否包含参数字符串,参数是一个接口类型的CharSequence,返回值类型是boolean类型。如果存在则返回true,不存在则返回false。 4.使用equals()方...
2022-03-06 12:58:51 233
原创 String、StringBuilder和StringBuffer三者的区别
String字符串类在Java中,String是一个引用类型,本身也是一个class类,它的内部是通过一个char[]类型的数组表示的。Java中,字符串的特点之一是不可变性,因为它的内部是通过private final char[]定义的,也没有实现修改char[]的方法。调用String方法操作字符串往往不会改变原字符串的内容,而是每次返回新的字符串,这样会浪费内存,影响效率。StringBuilder和StringBuffer为了高效的操作字符串,Java提供了StringBuilder和
2022-03-04 17:05:59 301
原创 Abstract抽象类和Interface接口的区别
Abstract抽象类:如果一个class类中定义了某个方法,该方法没有具体的方法体,那么这个方法就是抽象方法,抽象方法用abstract来修饰,而抽象方法无法执行,所以这个类也必须定义为抽象类。1.抽象类的特点:①.抽象类和抽象方法必须使用abstract关键字修饰public abstract class 类名{}②.抽象类中不一定有抽象方法,但是又抽象方法的类一定是抽象类。③.抽象类不能实例化④.抽象类的子类要么是抽象类,要么重写抽象类中的所有方法2.抽象类成员方法特
2022-03-03 12:30:26 159
原创 “重写”和“重载”的区别
方法重写Override方法重写:在继承关系里面,如果一个子类定义了一个与父类方法名和参数完全相同的方法,我们称它为重写(Override),即就是,子类中出现了和父类一摸一样的方法声明。 方法重写的应用:当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容。 @Override① 是一个注解② 可以帮助我们检查重写方法声明的正确性方法重写注意事项:① 私有方法不能...
2022-02-16 21:23:31 287
原创 equals和“==”的异同
相同点:1.都是用来比较对象内容是否相等;2.都有返回值,返回值类型都是boolean。不同点:1.equals用来比较引用类型的内容,不能用来比较基本数据类型;2.“==”通常用来比较基本数据类型,比较的是两个对象的内存地址,一般不用作比较引用类型数据。总结:1.如果是一些整形,如byte,short等,使用“==”来进行比较2.如果是对象,使用equals方法进行比较3.如果是double,float这样的类型,则先转位int或者是long这样的类型再使用“==”比较
2022-02-11 20:55:22 431
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人