java
胡亚洲
中北大学毕业生
展开
-
List.add(index,element)方法
List.add(index,element)方法index必须在集合已有元素的size之内,如果集合为空(size为0),调用该方法报错。index有效的话会替换原有元素的位置(原有元素index会靠后一个下标-->index + 1);/** * Inserts the specified element at the specified position in this * list. Shifts the element currently at that position (if.原创 2020-09-03 17:03:14 · 3854 阅读 · 0 评论 -
为什么要在成员方法里用一个局部变量对象操作全局变量对象
问题:java源码中为什么这么写呢?直接操作this.items 有什么问题吗,我看很类都是这样写法,方法操作全局变量时,都会重新定义变量使用final修饰测试过程:解答:性能上会有优化如果在成员方法里不用一个新的数组对象指向全局变量时,每次使用全局变量都会去getfield获取全局变量如果使用一个成员数组对象指向全局变量时只再第一次getfield,后面操作对象只有aload操作这个成员变量和全局变量加不加final修饰都一样,只要是成员变量指向全局变量时只在第一次getfield,原创 2020-08-08 11:48:21 · 512 阅读 · 1 评论 -
Java中队列的解析
Java中队列的解析定义队列是一种特殊的线性表,遵循的原则就是“先入先出”。在我们日常使用中,经常会用来并发操作数据。在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列通常有两种方式:一种是使用阻塞队列,另一种是使用线程同步锁。什么是阻塞队列?假设有一个面包房,里面有一个客人吃面包,一个师傅烤面包。篮子里面最多放2个面包,师傅考完了面包放到篮子里,而客人吃面包则从篮子里面往外拿,为了保证客人吃面包的时候篮子里有面包或者师傅烤面包的时候篮子不会溢出,这时候就需要引用出来阻塞队列的转载 2020-06-30 19:29:54 · 139 阅读 · 0 评论 -
String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间 StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量 可变类,速度更快...转载 2020-06-28 13:39:29 · 132 阅读 · 0 评论 -
java队列
java队列——queue详细分析Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQue...转载 2020-04-16 09:52:15 · 235 阅读 · 0 评论 -
Spring中的aware接口
Spring中的aware接口Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。awre.pngaware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面的含义。先举个BeanNameAware的例子,实现BeanNameAware接口,可以让该Bean感知到自身的BeanName(对应Spring容器...转载 2020-03-20 10:43:05 · 73 阅读 · 0 评论