面试常见问题角度
String是基本数据类型吗?
int和Integer有什么区别?
HashMap和HashTable的区别,及其实现原理。
ArrayList/HashMap的源码、如何实现源码
冒泡排序、快速排序
单例模式/工厂模式/动态工厂
谈谈你对面向对象的理解
事务ACID/隔离级别
Spring IOC/AOP
阿里
1、tcp为什么是可靠的
2、哪些情况可以用udp
3、跑程序时候发现服务器系统内存占用100%怎么办
4、HashMap、ConcurrentHashMap。几乎把里面的所有函数都讲了一遍
5、volatile
6、jvm数据区域
7、新生代大小参数是啥
8、堆的分类新生代老年代
9、redis网络协议,redis为什么单进程,为什么redis的decsby原子性
10、spring各种原理。xml怎么解析,aop原理
11、写sql
12、java怎么与数据库交互
13、数据库中间件了解吗
1、做过的项目有哪些
2、疯狂挖项目
3、springcloud源码看过吗?(没有,卑微.jpg,俺说俺知道各组件原理,但是面试官只问源码)
4、四次挥手
5、进程通信方式
6、进程通信中的管道原理
7、linux的io模型
8、linux的shell脚本
9、RocketMQ事务性原理
10、redis数据结构有哪些,底层结构分别是怎么实现的→源码刨析
11、一直聊项目
12、两个超大的文件,里面各装有上百万个数,还有无序的,数字的大小范围是0-500w左右。如何求两个文件中的重复的数据
作者:牛客237851878号
链接:https://www.nowcoder.com/discuss/390727
来源:牛客网
自我介绍
说项目
我的项目里面比较好的就是一个三次迭代的app(python爬虫(有加密参数)+cookie+resdis),说了20分钟,说完面试官问这你自己想出来的?我果断回答是??(虽然确实我一个人做的)。
之后就是问题,问了11个好像。没有顺序之分下面的,想到哪个写哪个。
1.synchronized升级过程
2.synchronized和reentranlock的区别
3.常见设计模式的应用场景讲一下,注意不是让你说有哪些设计模式,而是项目之中的具体应用
4.设计一张表,你会怎样设计索引
5.java锁再说一下应用场景,举个具体的场景
6.大型复杂项目之中,不停进行内存回收,jvm怎么调优
7.大型复杂项目之中,你怎么设计数据库,java代码,缓存
8.数据库之中有哪些锁
9.说一下进程和线程的区别
10.说一下死锁
11.看你很了解分布式,说一下分布式,说了redis一致性哈希,redis-cluster
12.公平锁,非公平锁,可重入锁等。
13.hashmap和concurrenthashmap的区别,原理(注意jdk版本不同concurrenthashmap实现不同)
14.ThreadLock
然后说我原理方面和应用方面可以,但是缺少大型项目开发经验,后面应该多参与一些大型项目。
最后问了我感觉你还可以,为什么笔试一个题都没做出来,通过0%,我说我算法没有达到做出两道hard级别的动态规划题的程度,面试官表示理解,说后面补一下。
这次面试经历很好,说了53分钟。
问的题目比较常规,但是场景题比较发散,看你经验了感觉。
第3个和第7个说得不好,只能根据已有知识进行分析,然后我说我不了解,只能分析这么多,面试官说你不了解就不问这个。
第6个我说了用单例模式来防止对象的频繁创建更新,面试官说我误解了他的意思,是想问我jvm命令的,这个不会。
其他题都是回答完直接过,不过第14题没回答出来,给忘记了。
钉钉
1、介绍项目
2、RocketMQ事务性原理是什么
3、RocketMQ的内部结构是什么,看过RocketMQ的源码吗(没有,卑微.jpg)
4、RocketMQ是2PC还是3PC的
5、数据库索引B+树
6、Http状态码302、204、500、504
7、线程池的拒绝策略有哪些
8、JDK8的新特性有哪些
字节
1、自我介绍
2、问项目相关
3、为什么高并发使用redis不用mysql
4、redis的数据结构
5、zset
6、redolog、undolog、binlog
7、HashMap
8、TCP四次挥手的时候close-wait过多怎么办
9、四次挥手的内容
10、进程和线程的区别
代码:
5、堆排序
6、单例模式
7、最多会议场数问题
8、字符串翻转
1.讲讲你的项目
2.讲讲你用netty干了什么
3.讲讲netty怎么提升的性能
4.讲讲你项目的数据库设计思路(这个题真的我太懵了,太发散,但是最后他说其实就是想问我用的是第几范式,反正这个我真的就胡说一通,凉就凉这儿了)
5.你开发用于登录功能的时候怎么保证的刷新后登录状态不变(我说用到cookie和session结合,互传sessionid校验)
6.你这种方法不安全,cookie被劫持怎么办(我说我这小本生意,小项目,不需要考虑劫持,他说,emmm,也是hhh)
7.问基础,讲一下hashmap(扩容机制讲一下)
8.如果持续增大,怎么扩容,(我说用resize加桶,但是我应该说一下扩大一倍的,忘说了 应该有瑕疵)
9.hashmap为啥会有线程安全问题(感谢一个老哥的面经,我今天早上刚看了,扯了一下1.7的头插,1.8的尾插,死链)
10.有了尾插法线程安全问题解决了吗(我说没有,只要存在put碰撞,就会有,我感觉我说的有点假大空)
11.concurrenthashmap是怎么解决这个问题的(我说1,7用的reentrantlock 加锁1.8用的synchronized锁和cas算法)
12.jvm堆的结构划分(我说分了新生代和老年代 不知道说的对不对)
13.新生代和老年代的gc算法(我说新生代死的多,用复制,老年代用标记整理清除)
14.新生代怎么转入老年代的(1.复制算法,2,大对象直接进,3,年龄计数器)
15.又问数据库。。。 问数据库索引的原理和优缺点(死记硬背的东西讲了一波)
16.建索引的策略(常查询数据建索引,较长的数据列键前缀索引,索引这一块我真没用过,我也给他实话实话没用过这都是死记硬背)
关于项目经验
(5)描述:技术+文字,项目周期:半年以上,写几个项目?3年以内工作经验:写2-3个;刚毕业:1-2个
使用到的技术,要写2-3个非常用技术/非培训机构标配技术,才能符合真实的需求
加分项
主题:出奇制胜
1、反对和所有应聘者千篇一律
基类:《阿里巴巴Java开发手册》,《Effective Java》
2、反对和所有《面试宝典》千篇一律
建议:只看宝典里的题目,不要背答案(去博客、github、书里面搜索答案,自己总结理解)
3、源码级解决问题
Java基础复习
静态属性、静态方法
静态属性、静态方法,都随着类的加载而加载。
在静态属性、静态方法被加载时,非静态属性、方法都还没有加载,因此不能在静态方法中调用非静态方法/属性。
工具类通常被声明为静态的