java基础知识点学习

时间:2023-02-26 18:08:05

基础学习总结

1、锁sync/lock都有哪些方法,底层实现 synchronized ['sɪŋkrənaɪzd]

2、线程池的参数、线程池执行的流程,当到达线程池到达最大数,队列也满了,出现的异常

3、写一个主线程等待两个子线程执行完成,在往下执行逻辑
答案:
1、可以使用thred.jion()方法进行判断该行程执行完没有了,
2、使用CountDownLatch定义该线程数,每一个线程执行完成调用一下countDown()让CountDownLatch数量减一,最后使用await()方法,如果等于0往下执行,不等于0休眠
3、使用CyclicBarrier类,对每一个线程调用await()方法,所有线程执行完成一起返回一个状态,而CountDownLatch每个线程执行完成就返回该线程的状态
参考链接:https://blog.csdn.net/u011277123/article/details/54015755

4、自己写一个阻塞队列

5、jvm如何判断一个对象是否有效的方式

6、jvm垃圾回收机制

7、大量创建对象如何进行优化

8、目前jdk8的垃圾回收机制

9、说一些jvm我们常用的调优参数

10、arrayList 底层实现,以及扩容原理

11、hashmap 底层与实现原理

12、对list集合中的实体进行排序

13、collections.sort()的集合底层排序算法实现

14、arrays.sort()的数组底层排序实现

15、comparable与comparator他们的区别


16、spring 中的ioc与aop

17、spring ioc如何把对象注解到容器中

18、类的作用域

19、aop通过什么使方法增强,底层如果实现的前置后置通知

20、mysql索引

21、画一下name与age他们的索引图

22、介绍一下索引优化

23、like后边的条件索引是否都无效


24、redis数据结构,5.0增加了什么特性

25、redis是什么存储结构

26、redis如何做数据的持久化,他们分别有什么区别

27、redis主从复制过程

28、在rdb复制过程中产生新的数据,如果复制到从的缓存中

29、redis如何做集群,在现有的集群中如何添加一台机器,连接一台集群,查询的数据不在连接的集群上边,底层如何实现返回结果


三面没有录音只能回忆部分

30、如果对亿级别的ip数据进行汇拢统计,查出访问前十的ip地址

31、参加过项目的设计模式吗?

32、主要问的就是项目的开发流程

33、elk搭建干什么用

34、es每天大约有多少日志文件产生,对es的数据多久删除一次,对数据建立几个索引

35、redis的底层实现,底层存储,如何进行查询、添加数据

36、红黑二叉树与跳表的区别

37、算法是否了解,讲一下你们视频推荐如何实现的算法

 


四面

画一个熟悉项目的设计模式
对员工工资还有明细设计一个数据库表
聊一些其它的发展和底层

五面

1、ThreadLocal使用
当使用ThreadLocal维护变量的时候 为每一个使用该变量的线程提供一个独立的变量副本,是线程的局部变量,为每一个线程所单独持有的,
其他线程不能对其进行访问(因为每个线程都创建一个副本,所以要考虑到它对资源的消耗,防止出现内存溢出的情况)

2、对集合进行排序
collections.sort(list,compparable)

3、map集合,treemap与hashMap区别,treeMap如何对对象进行排序

4、static关键词有什么用处
静态成员变量,静态成员方法、静态代码块(在类初始化加载一次),static一个很重要的用途就是实现单例设计模式

5、反射机制,写一个实例中的所有方法和字段
Mirror<?> sourceMirror = Mirror.me(source);
Field[] sourceFds = sourceMirror.getFields();
int var7 = sourceFds.length;
for(int var8 = 0; var8 < var7; ++var8) {
Field sourceFd = sourceFds [var8];
String fieldName = sourceFd.getName();
}


6、写一个单例,直接new一个test是否可以new出来,(需要写一个重构方法)
class Singleton{
private static Singleton instance=null;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}

7、多一张表中多个字段重复完全重复的记录查询出来
select a,b,c,count(*) num from x group by a,b,c having num>1

8、100个人100个房间,最开始100个房间门关闭的,每个人都轮流经过这100个房间,是他的倍数,就改变门的状态,问最后有几个门是开着的
主要是考察的该房间数下边被除数的个数是奇数还是偶数,这样理解问题就简单很多了