面试结束复盘查漏补缺
每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。
以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~
重要的事说三遍,关注+关注+关注!
更多笔记分享
3.堆栈,采用该结构的集合,对元素的存取,采用先进后出(弹夹形式)
4.队列,采用该结构的集合,对元素的存取,采用先进先出(管道形式)
list子体系特点:有序的,有整数索引,允许重复
list子体系特有功能:
void add(int index, E element) :将元素添加到index索
引位置上
E get(int index) :根据index索引获取元素
E remove(int index) :根据index索引删除元素
E set(int index, E element):将index索引位置的的元素设置为element
(一)ArrayList
// 创建集合
ArrayList arr=new ArrayList();
arr.add(“hello”);//新增方法
arr.add(1, “world”);//将指定元素插入指定位置
arr.clear();//清除该列表中所有元素
arr.contains(“hello”);//如果此列表中包含指定元素,则返回true
arr.get(0);//返回此列表中指定位置上的元素
arr.isEmpty();//判断是否为空
arr.indexOf(“hello”);//返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
arr.lastIndexOf(“hello”);//返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
arr.remove(1);//移除此列表中指定位置上的元素。
arr.set(1, “java”);//用指定的元素替代此列表中指定位置上的元素。
arr.size();//返回列表中元素个数
arr.toArray();//转数组
(二)LinkedList特有功能
LinkedList底层使用的是链表结构,因此增删快,查询相对ArrayList较慢
void addFirst(E e) :向链表的头部添加元素
void addLast(E e):向链表的尾部添加元素
E getFirst():获取链头的元素,不删除元素
E getLast():获取链尾的元素,不删除元素
E removeFirst():返回链头的元素并删除链头的元素
E removeLast():返回链尾的元素并删除链尾的元素
Set集合没有特定的方法,全部方法来自于Collection接口
如果要迭代Set下的集合,只能使用Iterator迭代
(1).保证对象唯一:依赖当前这个对象的hashCode和equals方法。
原理:先调用当前这个对象的hashCode方法,计算出哈希值,如果2个对象的哈希值相同,这时还会调用对象的equals方法判断2个对象是否相同,如果equals返回的true,就认为2个对象相同。不保存第二个对象。如果equals返回的false,第二个对象依然保持
(2).HashSet保存自定义对象
// 创建集合
HashSet set=new HashSet();
//添加自定义对象
User u=new User();
set.add(u);
set.add(new User());
//遍历
for (Iterator iterator = set.iterator(); iterator.hasNext()😉 {
System.out.println(iterator.next());
}
注:给HashSet中保存对象时一定要复写Object 类中的hashCode和equals方法
(3).LinkedHashSet
LinkedHashSet底层使用的是链表+哈希表结构。它可以保证存放的元素唯一的同时,还可以保证对象的存取顺序
//创建对象
LinkedHashSet set = new LinkedHashSet();
set.add(“aaa”);
set.add(“nba”);
set.add(“abc”);
set.add(“cba”);
set.add(“cba”);
for (Iterator it = set.iterator(); it.hasNext()😉 {
System.out.println(it.next());
}
Map集合,它在保存数据的时候可以一次保存一组(一对)数据。保存的是2个对象,两个对象之间有个对应关系。
//创建集合
Map m=new HashMap<>();
//保存元素
m.put(“刘诗诗”, “吴奇隆”);
Object value=m.put(“ghjh”, “ghj”);
m.put(“ds”, “dsdas”);
System.out.println(m);
//继续保存数据
Object v=m.put(“ghjh”, “dsaf”);
System.out.println(m);
System.out.println(value);
System.out.println(v);
//删除功能
Map m=new HashMap<>();
m.put(“aaa”,“AAAA”);
m.put(“bbb”,“BBBB”);
m.put(“ccc”,“CCC”);
m.put(“ddd”,“DDDD”);
//通过指定的key 删除数据
Object v=m.remove(“aaa”);
System.out.println(v);
System.out.println(m);
//清除所有元素
m.clear();
System.out.println(m);
最后
现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。
所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
[外链图片转存中…(img-WPOjmf39-1714999610534)]