2020/08/30 商汤
- 项目相关,在项目中的职责,遇到的困难如何解决等
- 进程和线程区别
- 网络七层模型是什么?http在哪一层?tcp在哪一层?三次握手?两次行不行?四次挥手?三次行不行?输入url的过程?
- 零拷贝 https://www.jianshu.com/p/275602182f39
- 异步IO解释一下
- 操作系统有了解吗?copyonwrite解释一下
- hashmap和hashtable区别
- 了解哪些前端框架
- 给10分钟手写代码,两数之和优化复杂度
- 反问
2020/09/05 拼多多提前批
- spring里的controller是单例模式吗?会不会有线程安全问题呢?Threadlocal怎么用的?Threadlocal是怎么实现的?Threadlocal能否保证线程安全?每个线程里都有自己的备份,那备份一定是线程安全的吗?https://www.cnblogs.com/luoxn28/p/10916253.html
- activiti框架怎么定义workflow呢?能否介绍一下有哪些组件,有哪些功能,主要的类啊这种?
- 聊一聊Java方面的吧。用过哪些集合类里线程安全的集合?synchronized和cas锁机制是怎么实现的呢?cas底层的工具类啊实现方式是什么?concurrenthashmap的table为什么要声明成volatile?size()有什么讲究?基础size?用过的其他concurrent容器?原子类的底层实现?(通过本地(Native)方法来访问,基于Unsafe类直接操作特定的内存数据)
- 讲一下AQS?队列里的每个结点包含哪些东西?
static final Node SHARED = new Node(); static final Node EXCLUSIVE = null; volatile int waitStatus; 负值表示结点处于有效等待状态,而正值表示结点已被取消 volatile Node prev; volatile Node next; volatile Thread thread; Node nextWaiter;
队列还是阻塞队列?为什么要弄成双端队列?The "prev" links (not used in original CLH locks), are mainly needed to handle cancellation. If a node is cancelled, its successor is (normally) relinked to a non-cancelled predecessor. For explanation of similar mechanics in the case of spin locks, see the papers by Scott and Scherer at http://www.cs.rochester.edu/u/scott/synchronization/ We also use "next" links to implement blocking mechanics. The thread id for each node is kept in its own node, so a predecessor signals the next node to wake up by traversing next link to determine which thread it is. Determination of successor must avoid races with newly queued nodes to set the "next" fields of their predecessors. This is solved when necessary by checking backwards from the atomically updated "tail" when a node's successor appears to be null. (Or, said differently, the next-links are an optimization so that we don't usually need a backward scan.)
非公平方式线程抢不到锁时怎么办?公平锁中,try获取的前提时需要没有存在前驱节点的,而非公平锁就没有这个限制 当在同步队列中阻塞后的节点一段时间后醒来时,这时候来了新的更多的线程来抢锁,这些新线程还没有加入到同步队列中去,也就是在try方法中获取锁。 在公平锁下,这些新线程会发现同步队列中存在节点等待,那么这些新线程将无法获取到锁,乖乖去排队;而在非公平锁下,这些新线程会跟排队苏醒的线程进行锁争抢,失败的去同步队列中排队。 if (!hasQueuedPredecessors() && compareAndSetState(0, acquires)) { setExclusiveOwnerThread(current); return true; }
- 有哪些OOM?jvm内存区域哪些会OOM?
1、堆溢出: -Xms堆的最小值 -Xmx堆的最大值 -XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常的时候 Dump出当前的内存堆转储快照以便进行事后分析 2、栈溢出: 1)大于最大深度抛出StackOverflowError 2)如果虚拟机的栈内存允许动态扩展(hostspot不支持),当扩展栈容量无法申请到足够的内存时OOM -Xss栈内存 3、方法区和运行时常量池溢出: 1)不断地String.intern()撑爆字符串常量池 -XX:PermSize永久代初始值 -XX:MaxPermSize永久代最大值 但在jdk8以上版本使用-XX:MaxMetaSpaceSize不生效,因为字符串常量池被移至堆中了 2)方法区用于存放类型的相关信息,运行时产生大量的类去填满方法区直到溢出为止,即 可以借助CGLib直接操作字节码运行时生成大量的动态类,但jdk8后也很难溢出了 4、本机直接内存溢出: -XX:MaxDirectMemorySize 直接通过反射获取unsafe实例进行内存分配
- 垃圾回收算法和收集器?
-Xmn eden+2个survivor -XX:SurvivorRatio=8 eden与一个survivor区的空间比列是8:1 (eg: -Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=3145728 则老年代10M,新生代9M,4M的对象会直接分配到老年代) -XX:PretenureSizeThreshold 指定大于该设置值的对象直接在老年代分配 该参数只对Serial和ParNew两款新生代收集器有效 ParNew是Serial的多线程版本 -XX:MaxTenuringThreshold 设置对象晋升老年代的年龄阈值。如果在survivor中相同年龄所有对象大小的总和 大于survivor空间的一半,年龄大于等于该年龄的对象就可以直接进入老年代
- cpu负载过高怎么查? https://www.cnblogs.com/cnndevelop/p/11091813.html
- 类加载过程?双亲委托机制的优点?
- BIO和NIO?reactor模型?(Reactor反应模型,Linux那边叫做IO多路复用。一个线程用来接收请求,将读写事件交给背后的worker线程。Redis、Nginx、Netty都是用到了这种模型。Redis其实也是多线程,只不过是用单线程来接收请求,在客户端看起来是串行接收执行,所以效果上就是单线程。但是IO多路复用才是Redis能高并发的底层保证。)
- 总共写了多少行代码?
- 编程题:删除链表倒数第k个结点
- 浮点数怎么表示
2020/09/09 阿里电话面
好多听不懂所以记不住太多,交流起来真费劲,听得出来面试官经验非常丰富。
接口重复调数据?业务主键啥玩意儿?
查询的字段是json怎么办?他妈的没听懂啊!
数据库分库分表后,查某个字段怎么办?elaticsearch我哪儿知道?
数据库先读后写问的是个啥玩意儿?
项目权限怎么弄得?不行不行。
mavan编译打包有没有遇到什么问题?
登录密码安全问题?
统计页面访问量?用Redis。好多机子要统计redis也顶不住会出问题的怎么办?
AtomicLong是什么东西?
dubbo?
反射在哪里用到?
最后委婉的拒了,一个半小时,感觉面了好久,又感觉啥也没问。
2020/09/13 小红书现场面
一面:二叉树后序遍历非递归
二面:
b+树插入时间复杂度?
内存和磁盘读写数量级?
1.8新特性?
为什么要序列化?
知道哪些编码?utf、gbk是定长的吗?
对string序列化会得到什么?
linux文件描述符、内存结构
大数相加相减
二面凉,惨被撵
2020/09/14 中兴现场面
"a=1,b=2,c=3"弄成map形式
2020/09/18 中兴综合面
2020/09/15 农行
接口是多继承的吗?
/* 不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法, A如何决定该继承那一个呢? */ interface Zijie{ void giveMeOffer(); } interface Alibaba{ void giveMeOffer(); } interface Dream extends Zijie, Alibaba{ } class DayDream implements Dream{ @Override public void giveMeOffer() { System.out.println("***"); } }
webservice报文格式?
2020/09/23 华为三面
1到n之间的最小公倍数,大数
a*0.1 == 0.3 ? false
五元组?
a和b的最大公约数
主管面老头子,极难对付
2020/09/23 携程史上最尴尬面试,鸽了面试官4个多钟头,然后被全程血虐
合并两个有序链表
Long型统计二进制1的个数
cms在产生了足够多的碎片之后怎么办
view的页面模板是什么?springmvc返回的是什么?什么是什么?
aop的日志怎么做的?
2020/09/24 北京美团
为什么枚举实现单例可以防止反射攻击?
适配器模式?
互斥和同步?
acid 原子性、一致性、持久性、隔离性?
选错索引的情况?
2020/09/27 字节客户端
进程、线程、协程
线程同步方式
IO多路复用
crtl+c操作系统做了啥
http字段
jsessionid是哪方产生的
cache缓存哪方的
2msl时间
tcp和udp区别及使用场景?tcp工作模式?
websocket?
-9 -5 1 3 3 5求平方后不重复的个数
2020/09/29 远景现场面
一面:
mybatis怎么把一行行的数据转成对象的?
数据库连接池?
多线程交替打印AB
二面:
怎么看是哪个sql语句导致的整个速度变慢?
select a from table group by b order by c desc limit 3
全排列
2020/10/10 唯品会微信面
回顾笔试题:序列化、索引区分度、快排
反射
程序计数器
类加载器
redis为啥快?基于内存、key-value有或没有
2020/10/13 中移在线
异常
mysql有哪些函数
函数式接口可以定义多个方法吗?
1、只能有一个方法 2、default声明的默认实现除外 3、Object的几个方法也除外 没有@FunctionalInterface注解的接口只要满足上述3个条件也是ok的 只不过加了的话,不满足会报红字
git版本冲突
ArrayList扩容
反射用在哪里
SVN有哪些权限
2020/10/15 招银网络 面试体验真的差,垃圾外包(卧槽,回想起来感觉问得都挺好的呢)
map.get(对象):重写hashcode和equals方法?
string+、StringBuilder.、stringbuffer
StringBuilder 相较于 StringBuffer 有速度优势, 所以多数情况下建议使用 StringBuilder 类 StringBuffer线程安全 如果要操作少量的数据用 String,+过程是需要重新在栈堆内存中开辟内存空间的
http和https区别?
Transactional要抛异常吗?
结论一:对于@Transactional可以保证RuntimeException错误的回滚,如果想保证非RuntimeException错误的回滚,需要加上rollbackFor = Exception.class 参数。
结论二:try catch只是对异常是否可以被@Transactional 感知 到有影响。如果错误抛到切面可以感知到的地步,那就可以起作用。
结论三:由于REQUIRED属性,“两个事务”其实是一个事务,处理能力看报错时刻,是否添加了处理非RuntimeException的能力。
结论二:try catch只是对异常是否可以被@Transactional 感知 到有影响。如果错误抛到切面可以感知到的地步,那就可以起作用。
结论三:由于REQUIRED属性,“两个事务”其实是一个事务,处理能力看报错时刻,是否添加了处理非RuntimeException的能力。
RuntimeException等各类异常区别?
数据库连接池原理?
2020/10/22 综合面凉
redis多级缓存
2020/10/17 微盟
一面:手写堆、栈
二面:
statement和preparedstatement区别?
预编译、放sql注入。
hasmap判null的指令在哪里?为null往哪里放?
static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }
指令重排序:b = 1 ; a = b+ 1 会不会重排序?
mybais.xml配置了什么
struts和springmvc区别
tcp报文字段
源端口、目的端口、序列号、确认号、FIN ACK RST SYN。。。
接口限流、令牌桶
AQS
线程池最大核心数怎么配置
maven scope里有哪些字段、依赖原则
2020/10/21 三面凉
countdownlatch.await超时吗
redis缓存一致性
有人攻击系统
group by 索引 a b c
分库分表
幻读
爬楼梯递归写法
2020/10/19 大华电话面
项目太简单了
https非对称加密过程
1、协商加密组件 2、服务端发送证书,客户端收到后取出公钥生成pre-master secret,同时生成master secret, 客户端发送已加密的pre-master secret到服务端, 服务端用私钥解pre-master secret得到master secret2020/10/21 大华现场两面
http和ftp区别
论实习的重要性
上海的投杭州干嘛,然后就感谢信了
2020/10/24 金蝶
一面
2020/10/26 金蝶
hr+架构面
2020/10/27 深演智能
怎么就投了个大数据岗?妈的一点都不会
dp[i] = dp[i-1] + dp[i-2]还能他妈的怎么优化?
1t的文件,每行一个数找最大值
2020/11/02 交通银行
#,$
事务有哪几种
事务传播
limit优化
2020/11/04 建信金融
log4j 级别
2020/11/10
redis6
2020/11/04 达达
ApplicationContext和beanFactory管理bean的区别
当我们使用BeanFactory去获取Bean的时候,我们只是实例化了该容器,而该容器中的bean并没有被实例化。当我们getBean的时候,才会实时实例化该bean对象。
当我们使用ApplicationContext去获取bean的时候,在加载XXX.xml的时候,会创建所有的配置bean。
select * from bi_dw.tso_order where id =1 and address =\"张;天地\";delete from a where id=2;select*from hxy;
a join b on a.id=b.id 索引用哪张表
2020/11/06 建设银行
英文提问
中文提问,***银行
2020/11/09 平安银行
隐式类型转换
2020/11/18 小米Android
泛型解决了什么问题?(没有泛型的话,类型转换的错误可能会在运行时发生)
生产者消费者使用场景?
static方法能否重写?(可以被继承,不能重写)
static代码块什么时候运行?
synchronized锁方法和代码块?
抽象类能否new?
多态使用场景?(List list = new ArrayList<>()?)
list和set区别?(唯一、无序)
全部评论
(4) 回帖