3.hashmap和hashtable的区别
4.介绍下mysql的常用数据库引擎以及底层实现
5.java怎么实现线程安全的
6.介绍下公平锁和非公平锁的区别
7.TCP和UDP包的区别
8.http协议的请求行中的请求方法有哪些?
9.手写你认为最好的单例模式(我写的是用内部类实现的方式)
10.算法:一颗二叉树怎么蛇形遍历?
2.介绍java内存模型
3.乐观锁与悲观所的实现
4.线程池的实现原理
5.GC的全部实现过程(包括新生代老年代的比例,以及相应的垃圾回收算法等)
6.平时怎么学的java?(看书,逛论坛博客啥的)
7.职业规划(感觉二面就问是不是有点儿早啊)
1.深入讲解一些jvm虚拟机的机制和实现原理
2.基本数据类型double在判断相等的时候为什么不能用==?(这个我真蒙了,没见过啊,乱说了一通感觉也不对)
3.java进程间的通信机制
4.java关键字有哪些
5.private变量在对象之外如何修改?(我答的用unsafe方法,然后深入说了一通,也不知道对不对)
6.聊项目(加理想和谈人生)
7.算法:1.单链表找倒数第K个节点
2. 最长上升字串(动态规划方法写出来了,然后让我用暴力方法再写一下,直接蒙B)
一面
*hashmap,concurrenthashmap详细说下(二面也问了……)
*线程和进程的区别
*线程同步
*mysql事务隔离级别以及每种级别下事务是怎么做的
*mysql默认事务隔离级别(二面又问了……)
*从浏览器输入网址访问网站的全过程(二面依旧问了……)
*七层网络模型
*tcp和udp区别以及应用场景,tcp怎么保证完整性
*大型网站的负载均衡大致怎么弄
*100个0到100之间的整数排序(本来祈祷最多问个背包套路题,没想到问了这么简单的233)
*聊了下实习期间的一些东西
二面(一面重复的就不写了)
*分库分表中间件的大致原理,跨库的join怎么做
*spring的事务是怎么搞的,哪几种传播机制是怎么实现的
*rpc原理以及实际生产环境中的rpc系统长什么样子
*线程block和wait状态的区别
*synchronized和reentrantlock的区别
*AQS怎么管理线程的
*AQS怎么实现公平锁和非公平锁的
*jvm对象从新生代到老年代的过程
*G1垃圾回收器怎么弄的
*redis有没用过
*two sum问题到k sum问题
*数据库failover怎么做的(分成流水型FO和状态型FO)
*平时看什么书,逛什么社区论坛之类的
1:String类能否被继承
2:接口和抽象类的区别
3:Synchronzed的用法
4:http和https的区别
5:javagc()中年轻态和年老态的用法
6:get和post的区别
7:tcp和udp的区别
一面
自我介绍
1.用过哪些集合类 (Arraylist和Linkedlist的区别、适用场景,HashSet实现原理,Iterator实现原理)
2.synchronized和ReentrantLock区别
3.用过哪些线程池,ThreadPoolExecutor各个参数意义是什么
4.介绍一下悲观锁,乐观锁。乐观锁怎么实现(java里的自旋锁和轻量级锁,就让介绍这两种锁的机制)
5.osi七层模型每一层做什么事情
6.tcp 三次握手 四次握手
7.udp tcp区别
8.锁在操作系统层面如何实现的
9.死锁条件和如何解决死锁
10.数据库索引实现
11.B树和B+区别
12.创建索引需要注意什么
13.如何知道查询是否使用索引
14.mysql存储引擎有哪些 区别
15.公平锁 非公平锁
编程
1.实现多线程的生产者消费者模型
2.一个数组,实现原地反转
3.假设有两张表,根据面试官需求写SQL,基础SQL不是很难
二面
又是自我介绍
1.object的常用方法
2.如果只重写hashcode没有重写equals 会发生什么
3.hashmap原理 如何扩展 并发场景有什么问题 插入null如何处理
4.concurrenthashmap原理
5.redis相关 两种持久化方式 如何淘汰数据
6.lru如何实现
7.强行用 弱引用区别
8.springmvc处理请求流程
9.spring的特性
10.aop如何实现
11.JDK动态代理和Cglib代理区别
12.解决哈希冲突的方法
13.解释一下CAS
算法
1.一个只包含小写字母的字符串,去重生成一个只包含单一字母的字符串。例如“abadcab”变成"abdc",只让用最多一个额外的int变量
三面
还是自我介绍
1.聊项目, 印象最深的是什么
2.web工程哪些地方可能发生中文乱码 如何解决
3.error和异常的区别 碰到哪些常见的错误和异常
4.遇到error如何处理 遇到异常如何处理
5.说说垃圾回收机制
6.为什么年轻代采用复制算法 老年代采用标记算法
7.为什么只需要一个eden而需要两个survivor
8.如何设置年轻代的回收比率,这个比率的意义是谁和谁的比值
9.什么时候发生浮点数精度丢失,存储0.1会不会发生精度丢失
10.在要求高精度的场景 java有没有解决方案
11.平时看哪些技术网站 如何学习新技术
12.java和C++有什么不同
13.post请求和get请求区别
14.https和http区别,有没有用过其他安全传输手段
1,在实习做的项目?
不重要的需求,说说就好。。。。简单,清楚最重要。。。跟着面试的问题回答
2,之前做的项目?
回答。。。。。。有的没的
3,问一些CS的东西?
什么?我是JAVA岗,不是前段。(是CS,不是JS。。。。尴尬)
4,进程和线程的区别?
a,地址空间
b,资源分配
c,创建,销毁,上下文切换开销
5,TOMCAT启动时线程还是进程
进程?应该对的吧
6,用过设计模式吗?
单例,工程,策略(装了一下)
7,说一下策略模式?
营销活动:今天满一百减20,后88折,每次改变策略,不需要改变源码,配策略。
8,一次http请求是什么样?
首先DNS解析。。。。
9,DNS解析是直接请求服务器吗?
不是,有缓存
10,那是几级?
不清楚
11,继续?
IP请求->三次握手->五层模型封装->服务器处理->http响应-->浏览器渲染->四次挥手
12,为什么三次?
ACK信号可能丢失,对ACK的确认信号。
13,如果第二次就是怎么办?
响应超时?...
14,服务端的处理过程?
面试官提示说请求映射我就回答了SpingMVC的请求过程
15,视图解析器有哪些?
配过,不知道。。
16,说一下ArrayList结构?
动态数组,添加同类型原始,初始长度为10,会扩容1.5倍
17,遍历集合安全的改变的结构?(面试官表述不是太清楚)
多线程? 面试官:不是
单线程遍历不能遍历修改 面试官:是的,报什么错
忘记了(后来补充ConcurrentMidifyException,其实是ConcurrentModificationException)
那如何安全遍历时修改(CopyOnWriterArrayList)
18,HashMap了解吗?
数组加链表
说一下put的过程吧?
(。。。。)
我:喂?在吗
面试官:我在听
(尴尬。。。)
hash->找桶位->放入元素(冲突用链表)->负载因子>0.75rehash
19,哈希攻击?大部分在一个桶位,怎么解决
哈希算法不好
20,java有解决方案,了解吗?
哦哦哦。我懂了。1.8用链表加红黑树
21,数据库?
了解不深,zsgc而已
22,问了一些HR的问题了。。。
算法好不,兴趣点在哪儿,业务还是技术,职业规划
23,做了什么准备吗?
技术继续深造,业务继续拔高,看书看报看资料
24,产品经理和研发什么区别?
巴拉巴拉。。。。
25,单向链表的环?
回答技术问题了?龟兔赛跑。。。。(分析了有环和没环)
26,时间复杂度?环在头,环在尾?
假设长度为m,路径为s=m,v1=1,v2=2,delt t = s/(v2-v1), 时间就是t咯?
这应该是个物理问题吧。。两个人都笑了。。。
27,有什么问的?
感觉面试官精神就起来了。。。。很有趣
1)自我介绍;
2)spring源码+原理;
3)实习项目的问题;
4)JVM(gc、类加载);
5)多线程;
6)锁和同步(synchronized、volatile)
7)设计模式(工厂模式、单例模式(几种情况)、适配器模式、装饰者模式)
8)mysql索引;
9)dns域名解析过程;
10)客户端和服务端建立连接的过程;
11)spring中创建bean的底层原理流程;
12)手写代码(mysql的语句、m个数中选出n个最小的)
13)反问环节。
差不多这么多吧,自己说的比较多,明天导师要开会,ppt还没做,没心情面试,突然感觉就是有点排斥面试。所以,说的也是没头没脑。