Java基础知识
Java基础知识
程序员铁蛋
这个作者很懒,什么都没留下…
展开
-
继承关系下构造方法执行顺序
public class Father { static { System.out.println("父类静态代码块"); } { System.out.println("父类代码块"); } public Father () { System.out.println("父类构造方法"); } public static void main(String[] args) { new Son(); }}class Son extends Father { stat原创 2021-02-03 17:38:04 · 281 阅读 · 0 评论 -
Java中只有值传递
值传递:指在调用方法时将实际参数复制一份传递给方法中,这样在方法中如果对参数进行修改,将不会影响到实际参数。引用传递:指在调用方法时将实际参数的地址直接传递到方法中,那么在方法中对参数进行的修改,将影响到实际参数。所以值传递和引用传递的区别是:值传递会创建一个副本,方法中无法改变实际参数引用传递不会创建一个副本,方法中会改变实际参数值传递和引用传递的区别不是传递的内容,而是实参到底有没有被赋值一份传给形参所以,Java中只有值传递,只不过对于对象作为参数,值的内容是对象的引用地址的值..原创 2021-02-02 14:57:31 · 373 阅读 · 1 评论 -
接口与抽象类的区别
接口的方法默认是public,所有的方法在接口中不能有实现,Java8开始接口方法可以有默认实现,而抽象类中可以有非抽象方法接口中除了static、final变量,不能有其他变量,而抽象类不一定;一个类可以实现多个接口,但是只能实现一个抽象类;接口方法默认修饰是public,抽象方法可以有public、protected等修饰符,抽象方法就是为了被重写所有不能用private关键字修饰;从设计层面,抽象是对类的抽象,而接口是对行为的抽象;...原创 2021-02-02 14:18:29 · 72 阅读 · 0 评论 -
并发List、Map的一些问题
1. CopyOnWriteArrayList相关1.1 和ArrayList相比有哪些相同点和不同点?相同点:底层的数据结构相同,都是数组不同点:后者是线程安全的,在多线程环境下使用,无需加锁,可以直接使用1.2 CopyOnWriteArrayList通过哪些手段实现了线程安全?数组容器被volatile关键字修饰,保证了数组内存地址被任意线程修改后,都会通知到其他线程,保证了可见性;对数组的所有修改操作,都进行了加锁,保证了同一时刻只有一个线程对数组进行修改,比如在add时,无法re原创 2020-09-22 15:55:33 · 248 阅读 · 0 评论 -
关于Map的一些问题
1 Map数据结构类问题1.1 HashMap底层数据结构HashMap底层是数组+链表+红黑树的数据结构,数组的主要作用是方便快速查找,时间复杂度是O(1),默认大小是16,当数组容量不够时,扩容为原来的2倍。数组的下标索引是通过key的hashcode计算出来的,数组元素叫做Node,当多个key的hashcode一致,但是key值不同时,单个Node就会转化成链表,链表的查询复杂度是O(n),当链表的长度大于等于8并且数组的大小超过64时,链表就会转化成红黑树,红黑树的查询复杂度是O(log(n)原创 2020-08-24 11:07:13 · 531 阅读 · 0 评论 -
关于List的一些问题
1 扩容类问题ArrayList无参构造器构造,现在add一个值进去,此时数组的大小是多少,下一次扩容前最大可用大小是多少?答:此时数组的大小是1,下一次最大可用大小是10,因为ArrayList第一次扩容时是有默认值的,默认值是10,在第一次add一个值进去时,数组的可用大小被扩容到10了。如果连续往list里面add值,增加到11个的时候,数组最大可用大小是多少?答: 因为ArrayList第一次扩容的最大容量是10,所以add到11个的时候,ArrayList第二次及其以后的扩容规则是原来容原创 2020-08-07 18:35:27 · 356 阅读 · 0 评论 -
Java集合类详解(二)
1.2 LinkedListLinkedList适用于集合元素先入先出和先入后出的场景,其底层是一个双向链表,整体结构如下图所示:原创 2020-07-31 17:54:20 · 161 阅读 · 0 评论 -
Java集合类详解(一)
Java的集合类被定义在Java.util包中,主要有四种集合,分别为List、Set、Map、Queue,如下图所示。1. ListList是有序的集合,一共有3个实现类ArrayList、Vector、LinkedList。1.1 ArrayList原创 2020-07-29 11:10:24 · 115 阅读 · 0 评论