百度一面凉经(60min)
虽然我没了,但是还是希望大家能过
百度一面凉经(60min)
-
自我介绍
-
项目介绍
-
用户需求
-
项目设计
-
redis
-
是长数据还是短数据
-
数据变化频率大概多少,是否有必要用redis缓存
-
可不可以用其他方案,用内存来做缓存(我承认我是为了用redis而用redis,但有一说一,谁会用内存来做mysql缓存啊)
-
是否知道有一些缓存的开源组件是支持过期时间的吗
-
spring cache
-
guava cache
-
-
有效时间设置
-
-
是否已经正式上线(感觉看不起demo项目,我说已经部署到了服务器上了)
-
springcloud
-
注册服务中心是否做了集群
-
单体架构和微服务架构比较
-
-
-
stringbuilder和stringbuffer
-
string的不变性,底层实现
-
新生代的对象会在什么情况下被移到老年代
-
躲过15次minor gc之后 也就是分代年龄达到15之后会进入老年代。这个具体是多少岁进入老年代,可以通过JVM参数 “-XX:MaxTenuringThreshold”来设置,默认情况是15岁
-
动态对象年龄判断 假如说当前放对象的Survivor区域里一批对象的 总大小大于了这块Survivor区域的内存大小的50% ,那么此时大于等于这批对象年龄的对象,就可以直接进入老年代了
-
大对象直接进入老年代
有一个JVM参数,就是 -XX:PretenureSizeThreshold“,可以把他的值设置为字节数,比如“1048576”,就是1M如果你创建一个大于这个大小的对象,比如一个超大的数组,或者是别的啥东西,此时就直接把这个大对象放在老年代中,压根不会经过新生代,这样可以避免新生代出现那种大对象,然后在2个Survivor区域里回来复制多次之后才能进入老年代
-
-
java引用类型
-
redis基本数据类型,用过哪些
-
rabbitmq工作模式(6种,这里犯蠢了,面试官问我资源争抢模式,我没懂,后来发现就是work模式)
-
volatile作用
-
Atomic类实现原理
-
四次挥手time_wait(2MSL)的作用
-
HTTP响应码301,302
-
长连接短连接(这里又犯蠢了,我以为他问的是websocket,讲了一堆html5,现在才反应过来)
-
mysql
-
事务
-
ACID
-
-
事务隔离级别
-
脏读,不可重复读,幻读
-
互斥锁,mvcc
-
-
-
linux命令(这是真的凉凉)
-
如何创建软连接
-
awk命令
-
-
手撕代码(最无语的环节)
-
单例模式(我竟然写错了,啊啊啊,写了无数遍偏偏面试的时候紧张写错了)
-
饿汉实现
-
懒汉实现
-
静态内部类实现
-
枚举实现
-
-
数组,元素非负,每一个元素值代表该位置可以跳跃的最大距离,问能不能从第一个跳到最后一个
-
简单的递归五分钟写完,但是让我无语的是面试官看不懂,解释了20分钟,他一直和我争说我哪里哪里不对,我就差拿张纸给他把递归树画出来了,最后讲了半天他终于明白了,我真是。。。。
-
-