面试题 - 技术链接汇总

AI小白  https://www.zhihu.com/question/36512716

netty :https://www.zhihu.com/question/24322387

面试阿里java 要求: https://www.zhihu.com/question/363448965

leetcode 刷面试题: https://www.lintcode.com/

 

2021-6-14~6-21期间面试题汇总;

1.list、set、hashmap的数据结构、初始化大小、扩容大小;

2.线程有哪几种状态;

3.你知道java的那些锁,解释一下synchronized、volatile怎么实现锁的。

4.对网络编程了解多少?谈谈netty.

5.spring的生命周期;

6.springboot 的启动流程;

7 springboot-starter自己实现应该怎么做?

8 springcloud feign的实现原理;

9.事务的隔离级别有哪几种?

10.@transaction嵌套spring默认是一个事务还是两个事务?(默认是一个,可以配置为两个)

11 数据修改,先更新缓存还是更新数据库?

     先操作数据库再删除缓存能有让人可接受的结果,所以最推荐这种做法。

12 谈谈你对多线程和高并发的理解,在哪些场景中与到了高并发,如何解决的?

数据库:

   员工表(id,name,salary),部门表 (id,name)   --> 部门工资前三高的人和工资

算法:

    1.字符串的"dfadfsdafas"最长不包含重复字符的子串长度。

    2. 单向链表输出经过n次位移的结果? 1->2->3->4  4->1->2->3

    4. NxN棋盘,有N个相同棋子;任意两个不同行,不同列,不同对角线有多少种摆法?

 


给定单链表L,请将其向右循环移位K次。
比如:
L = 1 -> 2 -> 3 -> 4
K = 3
则结果为 1w - head
4 -> 1 -> 2 -> 3
3 -> 4 -> 1 -> 2
2 -> 3 -> 4 -> 1

class LinkNode{
LinkNode next;
int value ;
head(){}
tail(){}
}

LinkNode move(int k,LinkNode node){
int size = node.size;
int a = k%size;
node.tail.next = node.head;
LinkNode startnode ;
LinkNode beforestartnode ;

// start
for(int i =0; i < a-1 ;i++ ){
beforestartnode = node.next;
node = node.next;
}
startnode = beforestartnode .next;
beforestartnode.next = null;
return startnode
}



经典N皇后问题。
给定N*N的棋盘,在其中放置N个棋子,要求任意两个棋子不能同行、同列、同对角线、同反对角线。
请求出可能的不同摆法的个数。 N n! - 2( Cnn+Cnn-2)
[]

 

二分查找

arr = [1, 3, 5, 7]
int is = 0, ie=length/2
int q = 4;
if( q > arr[ie] )
is = length/2; ie = length;

int index=-1;
while ( is <=ie || q==arr[is] ){
if(q < arr[is ] )
is = is; ie = ie/2;
else
is = length/2; ie = length;
}

 

2022-03-05(卓望)

1.用户角色权限关系

2.UML语言和其他设计语言

3.mysql数据库(集群,性能)

4.mysql数据库索引 B+ ,优化

5.redis集群,redis锁,redis数据类型,

6.分布式锁

  redis readlock;

7.消息中间件,

  kafka(zookeeper作用);如何防止消息丢失:ack机制,如何防止重复推送,在redis中存储一份;

8.es, 为什么有solr不用,而用es; 说一说es的倒排索引;

9.java线程争抢,线程池;锁;

ReadWriteLock  

posted @ 2021-06-24 12:17  星回中道  阅读(41)  评论(0编辑  收藏  举报