- 博客(7)
- 收藏
- 关注
原创 再也不怕被面试官问到ArrayList啦!!!
ArrayList和Vector的区别这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的(1)同步性:Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安
2020-09-17 14:48:25
851
1
原创 volatile
volatile关键字在更深入了解volatile关键字之前,我们先来看一段断码public class VolatileTest extends Thread { boolean flag = false; int i = 0; public void run() { while (!flag) { i++; } } public static void
2020-09-13 23:58:21
195
原创 线程
线程有哪些基本状态,并描述每种状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDN46mI7-1599887288637)(图片/1590375681943.png)]什么是线程死锁线程死锁描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态。[外链图片
2020-09-13 23:56:51
152
原创 Java基础
一个Java文件中能否可以定义多个类一个Java源文件里可以定义多个Java类,但最多只能有一个类被public修饰。若源文件中包括了public类,源文件必须和该public类同名构造器能否可被重写或重载构造器 Constructor、重写 Override、重载 Overload首先了解构造器构造器名称和类名相同,没有返回类型,不能使用return语句其作用是创建对象,初始化对象生成类的对象时自动执行,无需调用由此可得知构造器不能被重写,且没必要继承其构造器,因为当实例化子类
2020-09-01 15:47:25
247
转载 为什么要重写hashCode()和equals()&Set集合
在了解为什么要重写hashCode()和equals()方法前我们先了解一 、什么是hash 、hash表 简单说hash是一个函数,通过一系列的算法得到的值称为—— hashcodehash表(哈希表)则储存由该hash函数计算得出的所有hash值二 、什么是hashcode理解完hash后就很简单了,hashcode就是通过hash函数计算出的值在JAVA中,每个对象的hashcode值决定了在哈希表中的存储位置这里说的对象在hash表中的地址不是对象的物理地址(对象存放在内存中
2020-08-25 20:47:37
636
原创 关于动态初始化Object类型数组的空指针异常问题
动态初始化对象类型数组后对数组元素进行setter,getter出现空指针异常对于下面代码//动态定义Student类型数组,数组长度为3Student[] stuArrays = new Student[3];//遍历stuArrays数组,并赋值for(Student s : stuArrays){ s.setName("张三")}运行的时候会出现NullPointException异常 ——空指针异常由于上面的动态定义对象数组,只是声明了一个对象数组,但是对象数组内的每个对象却并没
2020-08-20 09:30:30
991
原创 String类型参数传递和扩展
String类型的参数传递&equals()方法JAVA的数据类型和引用类型的参数传递是java初学者们经久不衰的话题利用空余的时间,我给大家大概的总结了下,随便扩展下String类型的参数传递相信之前大家都对数据类型和引用类型的参数传递有所了解,废话不多说,直接看码 static void change(int methodVar) { System.out.println("change before,x=" + methodVar); //10
2020-08-07 21:57:15
1183
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人