美团一面
jvm
jvm的内存空间
一个程序运行时,类里的变量和类的数据信息都在jvm的哪里?
Java基础
Arraylist LinkedList
修饰符 public等的访问权限
所有的集合类的内容以及介绍
==和equals的区别 equals能判断引用地址吗
面向对象的特征
一个拥有静态变量的类,在new了很多次后,这个静态变量在内存中有几个?
设计模式
工厂模式
抽象工厂模式
单例模式
都会让你介绍这几个模式是什么,概念和解决这些东西的应用
在项目中用到过这些设计模式吗?比如说
Mysql
什么是索引?
为什么要用索引? 好处和坏处?
索引的实现
mysql优化谈一下?
分库分表谈一下?
水平切一般切几刀?有那些切法
如果水平切表的话,两个表的数据还是很大?该怎么办?
select from where group by 这些关键字的先后顺序是怎样的
group by 是怎么使用的。用来干什么
框架
用到过那些框架?为什么要用这些框架?好处
谈谈你对aop的理解,为什么使用aop
aop相对面向对象编程有什么优点吗?
谈谈Bean
阿里巴巴开发规范
常用的规范和你在项目中所使用到的 谈谈
git操作
git的常用命令
软件开发流程
谈谈软件开发流程
美团二面
二面面试官真的很温柔,人很好,我真滴哭死。遇到最温柔的一个面试官了OUO
计算机网络
我们是怎么通过http请求的 三次握手 四次挥手 什么是半连接(我以为是短链接,没回答)
http请求是那些东西 响应是那些东西 返回的状态码有哪些 分别是些什么状态
小程序发送code是get 还是post 为什么
为什么我们在网页上登录后可以一直访问后台?访问连接?
java基础
有多少种数据类型 int和float在存储上有什么区别?
为什么要使用接口?为什么不使用抽象类? 接口能实现的抽象类都可以实现,为什么要使用接口?
jvm
我们new一个对象 经过了那些操作?
new一个对象会去调用静态方法吗?
new一个对象 类加载器会加载父类的方法快吗?
集合框架
谈谈你的框架理解,map,set,list等系列,建议多看源码,结合八股文了解底层。
都在那些地方使用到了这些集合?
多线程
synchronized了解过吗?都用在那些地方?
synchronized用在方法上,是怎样的?
比如这样两个方法
public static synchronized void a(){
b();
}
public static synchronized void b(){
}
这样有什么问题?
进程和线程,谈一下?
进程之间的资源是共享的吗?线程呢?
两个进程之间的通信,如何做到?(我想的是用线程池,但是转念一想不对劲!所以我不知道)
代码
写一段代码
给你一段数字比如:123 100 让你返回成他的相反值 321 1 如何做到?
public class Test {
public int a(int a){
while (true){
if(a%10==0){
a=a/10;
}else break;
}
String b = a+"";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(b);
String reverse = stringBuilder.reverse().toString();
Integer c = Integer.valueOf(reverse);
return c;
}
}
写完过后的,面试官问我的问题:你的代码你觉得有什么不足的地方,比如在别人调用你这个方法的时候,我想了想
不足的地方:
- a = 0的情况
- a为负数的情况
- c的值超出了int类型的数据范围的情况
解决方案:
- 判断里加上a!=0 并且==0时直接return
- 先去掉负号,加一个标志,同样操作后,最后添加上
- 返回最大值,最小值,或者try catch 捕获返回异常
滴滴一面
面试官是我遇到过最凶的了,一面就挂了,太难了。qaq
特殊题
你除了java学过其他什么语言吗?
python的话,你觉得python和java对比有什么区别?
异常
谈了异常。谈的很深入,那些是运行时异常,那些是编译时,建议把异常好好看看,所有的东西,基本上把我问干了
try{
//这里的代码块什么情况下,不能被捕获
}catch{
}
不能被捕获的异常是那些?为什么不能捕获?
我谈了OOM(堆溢出) SOF(栈溢出)
为什么会造成这两种异常错误?
如果你有一个前辈,写了个递归?
void a (){
a();
}
这样会是什么异常?出现这种异常了?你怎么解决?
我当时想错了就说jvm调优在启动时在设置JVM参数
-Xms -Xmx 结果他凶我。你这是啥的?你告诉我这是调什么的?方法栈能调最大最小吗?
所以千万不要弄错了。
Jvm
jvm构成,谈一下 各个部分的组成,分别里面有些什么?
我在new一个对象时,那些参数在哪里?
java基础
集合。和上面差不多。多看看,多谈谈
多线程
实现?
synchronized是什么?
为什么要使用多线程?
代码
这面试官真的太凶了,让我很紧张,以至于自己想干什么都不知道了。
目的:
读取txt文件,里面是key:value的键值对
让我将里面所有重复的键值对删除只留下最后一次出现的key:value
最后存入文件并更新。
我真的太紧张了,连集合类map都没想到,就纯纯的用原生数组字符串方法,循环一个一个去做了
结果最后面试官看不下去了,凶我ovO?
实现代码:
public class Test3 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
String filePath = scanner.next();
File file = new File(filePath);
BufferedReader reader = new BufferedReader(new FileReader(file));
String content = null;
Map<String, String> map = new HashMap<>();
while ((content = reader.readLine()) != null) {
String[] split = content.split(":");
map.put(split[0], split[1]);
}
map.forEach((key, vaule) -> {
System.out.println(key + ":" + vaule);
});
String line = System.getProperty("line.separator");
StringBuffer str = new StringBuffer();
FileWriter fw = new FileWriter(file, false);
Set set = map.entrySet();
Iterator iter = set.iterator();
while (iter.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iter.next();
str.append(entry.getKey() + " : " + entry.getValue()).append(line);
}
fw.write(str.toString());
fw.close();
}
}
塔斯克小厂面试
先小小笔试。基本上都是java八股文,都谈一下吧,或许有用得到的地方?
小厂面试体验挺好的,第二天就给offer了,但是工资确实太低了 100一天,还没有加班费。可恶!
笔试
64位操作系统中,char int long 分别是几位?
AOP是什么?有那些作用?那些地方用到了?
反射是什么?那些地方用到了?
== 和 equals 的区别?
集合框架有那些?写一下?
多线程是什么?
你用过那些框架?写一下。
用过那些设计模式?在那些地方用的?
最后是一个双向链表的代码实现 实现插入和删除的两个方法。具体内容,和网上的差不多。
面试
先谈工作具体情况,薪资待遇,入职情况等。然后老板亲自面的:
先谈谈为什么学java?
集合?
谈谈你的项目?你的微服务怎么划分的?为什么要这么划分?
shiro是怎么使用的?jwt是怎么使用的?jwt有那些组成?head是什么?body是什么?
讲讲canal?
rabbitmq你怎么用的?怎么实现数据同步的?
mysql你有了解过吗?脏读是什么?
公共问答
小厂问了职业规划
小厂问:如果老板给你安排一个框架,但是没有给你细化这个框架,只是给你说了这个框架的大部分内容,你怎么解决这个问题?
小厂问:如果上级给你安排了一个任务,但是有一定的困难程度?你怎么解决这个问题?
然后所有的面试官都问了怎么学习java的,遇到困难怎么解决的?
项目里有什么重难点谈一下?怎么解决的?