老蒋的Java北京面经

由于小孩去北京看病,所以想在北京面试找个工作可以陪在家人身边,从五一结束后总的面试了有一个多星期20左右家企业吧,现在整理一下面经:

2021年5月北京电话面试
bean生命周期:https://blog.csdn.net/wangxiang1292/article/details/102162890
1、实例化一个Bean
2、按照Spring上下文对实例化的Bean进行配置,也就是IOC注入
3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,传递的参数就是Spring配置文件中Bean的id值
4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(BeanFactory),传递的是Spring工厂自身
5、如果这个Bean已经实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文
6、如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,
BeanPostProcessor经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用那个的方法,也可以被应用于内存或缓存技术;
7、如果Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。
8、如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法
9、当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用那个其实现的destroy()方法;
10、最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

499状态码是干嘛的?# 499状态码

知道异或么?
为什么规则不用决策引擎做
策略模式和模板模式的区别
全局唯一ID怎么做

spring拓展,mybatis流程
什么是GC Root
什么是泄露内存,怎么排查解决
JavaCPU100%怎么排查?
jvm卡表原理,老年代引用新生代怎么办?

什么样的对象进入老年代?
1.根据对象年龄
JVM会给对象增加一个年龄(age)的计数器,对象每“熬过”一次GC,年龄就要+1,待对象到达设置的阈值(默认为15岁为什么是这个值?)就会被移移动到老年代,可通过-XX:MaxTenuringThreshold调整这个阈值。
2.动态年龄判断
根据对象年龄有另外一个策略也会让对象进入老年代,不用等待15次GC之后进入老年代,他的大致规则就是,假如当前放对象的Survivor,一批对象的总大小大于这块Survivor内存的50%,那么大于这批对象年龄的对象,就可以直接进入老年代了。
3.大对象直接进入老年代
如果设置了-XX:PretenureSizeThreshold这个参数(默认多少,为什么?),那么如果你要创建的对象大于这个参数的值,比如分配一个超大的字节数组,此时就直接把这个大对象放入到老年代,不会经过新生代。
这么做就可以避免大对象在新生代,屡次躲过GC,还得把他们来复制来复制去的,最后才进入老年代,这么大的对象来回复制,是很耗费时间的。

jvm垃圾回收器G1与CMS区别
JVM 默认Xss大小
jdk8-13新特性
Redis的rehash
Redis有哪几种数据类型
Redis集群节点间怎么交互
介绍一下哨兵模式
缓存击穿怎么应对
介绍一下netty的reactor线程模型
spring三级缓存解决循环引用
Java匿名内部类单例与双重校验锁的区别
mysql为什么能实现行级锁
如何避免死锁
MySQL MVCC底层原理
MySQL的事务隔离级别,怎么实现的可重复读
es实现模糊搜索的原理(Mapping怎么做)
es,MongoDB和MySQL索引的区别
UML、面向表结构编程与领域驱动设计的区别
fengin的底层实现
设计电梯控制器(设计模式,架构)
docker exec与touch命令
kafka架构
Synchronized底层优化(偏向锁、轻量级锁)
线程池提交任务与执行任务的流程

# 线程池提交任务时的执行顺序.png

跨境电商女装cider

tcp三次握手
第一次握手
客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J,
服务器是被动打开(passive open)

第二次握手
服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,
ACK的序列号是 J+1表示是给SYN J的应答,新发送的SYN K 序列号是K

第三次握手
客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,
然后两边就可以开始数据发送数据了

netty
MySQL的数据结构
redolog和udolog区别
b+数和红黑树有什么区别,为什么不用红黑树
mybatis如何管理数据库连接
分布式事务怎么做
如何实现事务注解
事务怎么传播(怎么从A到B)
同一个事务怎么管理两个数据库连接

线程的状态图.png

Zuul和Gateway对比:https://blog.csdn.net/lizz861109/article/details/103575186

旷世
联合索引
分布式锁Redis实现:
加锁实际上就是在redis中,给Key键设置一个值,为避免死锁,并给定一个过期时间。
SET lock_key random_value NX PX 5000
值得注意的是:
random_value 是客户端生成的唯一的字符串。
NX 代表只在键不存在时,才对键进行设置操作。
PX 5000 设置键的过期时间为5000毫秒。

Mongodb与Redis对比


Mongodb与Redis对比.png

RocketMQ与Kafka对比:https://blog.csdn.net/damacheng/article/details/42846549

线程池创建的四种方法:
newCachedThreadPool创建可缓存线程池、newFixedThreadPool创建定长线程池、newScheduledThreadPool创建定时线程池、newSingleThreadExecutor创建单线程化线程池

线程池参数怎么设置

Java线程安全的集合

一、早期线程安全的集合
几乎所有public方法都加上了synchronized关键字(因为性能原因被弃用):Vector、HashTable(HashTable的K,V都不能是null,但HashMap可以)
二、Collections包装方法
Vector和HashTable被弃用后,它们被ArrayList和HashMap代替,但它们不是线程安全的,所以Collections工具类中提供了相应的包装方法把它们包装成线程安全的集合
List<E> synArrayList = Collections.synchronizedList(new ArrayList<E>());
Set<E> synHashSet = Collections.synchronizedSet(new HashSet<E>());
Map<K,V> synHashMap = Collections.synchronizedMap(new HashMap<K,V>());
Collections针对每种集合都声明了一个线程安全的包装类,在原集合的基础上添加了锁对象,集合中的每个方法都通过这个锁对象实现同步

三、java.util.concurrent包中的集合
1.ConcurrentHashMap
ConcurrentHashMap和HashTable都是线程安全的集合,它们的不同主要是加锁粒度上的不同。HashTable的加锁方法是给每个方法加上synchronized关键字,这样锁住的是整个Table对象。而ConcurrentHashMap是更细粒度的加锁
在JDK1.8之前,ConcurrentHashMap加的是分段锁,也就是Segment锁,每个Segment含有整个table的一部分,这样不同分段之间的并发操作就互不影响
JDK1.8对此做了进一步的改进,它取消了Segment字段,直接在table元素上加锁,实现对每一行进行加锁,进一步减小了并发冲突的概率

2.CopyOnWriteArrayList和CopyOnWriteArraySet
它们是加了写锁的ArrayList和ArraySet,锁住的是整个对象,但读操作可以并发执行

3.除此之外还有ConcurrentSkipListMap、ConcurrentSkipListSet、ConcurrentLinkedQueue、ConcurrentLinkedDeque等,至于为什么没有ConcurrentArrayList,原因是无法设计一个通用的而且可以规避ArrayList的并发瓶颈的线程安全的集合类,只能锁住整个list,这用Collections里的包装类就能办到

hashMap和TreeMap的适用场景

字符串去重
对字符串“ABBCADDDAC“进行逐步去重,过程如下
ACAAC —> ACC —> A,最后得到A:(只到ACAAC这步)

public static void main(String args[]){
String str = "ABBCADDDAC";
System.out.println(matcher(str));
}

public static String matcher(String input){
    List list = new ArrayList();
    Pattern pat = Pattern.compile("(.)\\1*");
    Matcher matcher = pat.matcher(input);
    while(matcher.find()){
        list.add(matcher.group());
    }
    String[] strings =(String[]) list.toArray(new String[0]);
    for(int i=0;i<=strings.length-1;i++){
        if(strings[i].length()>1){
            input = input.replace(strings[i],"");
        }
    }
    return input;
}

2021.5.10
字节跳动
shell awk ,调用排名前十个的IP
b树和b+树的区别
漏桶和令牌桶的区别

编程题
1,4,5
输出组成数字n所需要的最小硬币数

我的答案:
private int minCornNum(int n,List<int> corns){
int minNum = 0;
//排序
corns.sort().reven();
while(n>0){
for(int corn:corns){
if(n>corn){
n-=corn;
minNum++;
continue;
}
}
}
return minNum;
}

1.jpg
2.jpg

spring事务
zookeeper原理

2021.5.11 58学车(驾校一点通)
字节前后四位交换,一个字节有多少位(8比特)
位移运算...去看MSDN...

`byte` `b = 123;`
`byte` `r = (``byte``)((``byte``)(b >> 4) + (``byte``)(b << 4));`
`b = (``byte``)((``byte``)(r >> 4) + (``byte``)(r << 4));`

aop-->jdk与cglib代理的区别
数据库优化

狮桥
用MySQL实现自定义字段
手写单例模式
volatile原理
jvm内存模型(主内存-工作内存)
单向链表不定长,01空间复杂度,取倒数第n位
雪花算法有什么问题
AQS与可重入锁

探马crm
epoll与poll netty
kafka如何保证顺序消费 时间轮(为什么快)
MySQL查询缓存,并发修改同一条记录
synchronized锁升级的过程
jvm老年代用什么算法
上传下载服务器怎么配置
如何实现企业微信聊天时超时告警

顺丰笔试:


IMG_20210511_175617.jpg
IMG_20210511_175622.jpg
IMG_20210511_175627.jpg
IMG_20210511_175631.jpg

小鹏面试其他人的面评
os:虚拟内存,通过页面置换算法实现比实际内存大的,地址连续的空间,通过时间和空间局部性原因-空间延续性,时间上好像当前程序段时间,记不清楚。进程调度策略有哪些:短线程优先,高享用比,时间片轮转,固定时间片,多队列优先级,链表结构。
数据结构:储存图,二维数据,其次临接矩阵,通过链表存储(图,点和边,点链表头节点,怎么保证所有的点以惬当的方式存储起来么?没听懂。每个节点,维护一个链表)
线程同步策略:Java,互斥量(同一时间,只一个访问),信号量(信号量的值,多个同时访问),锁synchronized,lock对象,设计背后思考逻辑:这个。。。不清楚。
网络URL过程:分层表述。URL解析,主机域名,委托系统dns,IP地址,http,tcp协议层,http协议层,三次握手,传输层,网络层封装网络包原和目标IP地址,数据链路层,mac地址 arp协议(缩写,平常没有看全称),数据链路层物理层传输,最后到达目标服务器80端口,后续服务器接受响应。
对互联网后台,理解,对于前端获取信息,从数据库获取,很粗糙。

Java:按单词反序。中间空格,分割split,代码读出来,string数组,倒置,栈先进后出,字符串拼接,stringbuffer与简单加号,string不可变,对于内存的开销。

offer情况:六月中旬,六月八号答辩,论文还在写,图像处理方面(通过GPU并行加速,跟直接opencv对比/CPU,CPU,cuda,图片哪些处理,边缘计算算子矩阵,放大,双边滤波-介绍不出来,去噪,对边缘进行平滑)

嗯,来到顺丰做了几天面试官,把自己当面试官的一些常提的问题罗列一下吧(大部分也是来自与上面的自己回答不出来的面试题,还有部分另外一个大牛同事的问题):

说一下405,499状态码
ES的评分机制
TCP/UDP的区别
加密算法ISA,对称加密和非对称加密的区别,怎么用ISA做签名
雪花算法中机器ID怎么设置,时针回拨误差
长连接、短连接和轮询的区别
附近的人功能怎么设计
电梯算法怎么设计

消息队列(kafka)的分区与消费者的关系
如何控制MQ消费速度
HTTPS认证与交互流程
HTTP协议的格式,跨域(产生原因),HTTP接口安全措施
说一下401,405,502,504,499状态码
拦截器、过滤器和AOP的区别和共性
说说TCP拆包和沾包
100万数量发送短信给用户怎么设计
统计APP日活怎么设计
每日签到功能设计
接口调用次数计算器怎么实现
TPS1400/15-20万单量的下单接口怎么做
异或--考察专业知识是否扎实,算法基础是否牢固
算法题:一个数组中有一种数,出现奇数次,其他的数全出现偶数次,问:如何找到这个与众不同的奇数次的数
JVM卡表--考察jvm是否学习深入
mysql刷脏页的过程--考察mysql是否学习深入

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容