字节跳动(45分钟),已过:
1.介绍项目2.设计模式:写一写单例模式-懒汉模式,饿汉模式,线程安全型,双重校验锁型。
为什么要使用双重校验锁的单例模式?
3.volatile关键字的作用,怎么起作用的
4.锁相关:sychornized和可重入锁
1.8之后对sychornized有了优化,有了解过吗。
5.线程池相关:说一说线程池,怎样创建线程池,有哪几个参数,分别有什么含义,应该怎么设置
6.数据库相关 什么是脏读,幻读,不可重复读。
7.索引:索引的分类,聚簇索引的概念
B+树的原理和结构
8.算法题:股票的无限次交易 动态规划解决。
哔哩哔哩(50分钟左右),已过:
1.自我介绍
2.Hashmap,concurrenthashmap,hashtable各自的特点区别。 jdk1.8都做了哪些改进?
3.可重入锁reentrantlock(因为上一题提到了concurrenthashmap的segement继承了这个)。
4.volatile和transient关键字。
5.hashcode与equal。
6.juc中的countdownlatch,其概念,使用场景。
扩展:java中如何查看线程状态,你知道那些java自带的命令。
7.java内存模型,及jvm内存分区,各有存了什么。
8.jvm类的加载过程
9.线程池
10.设计模式,说一下策略模式和装饰器模式。
11.mysql的索引分类,如何创建联合索引,有什么原则(最左前缀匹配原则)
12.有哪些编码格式(GBK,UTF-8,ISO-),有没有想过为什么会有这么多的编码格式。
感觉面试的广度是有的,不过都没有太深入。
多线程:
1. 一个线程不安全的类要用到线程安全的场景中,要做什么?
2.sychornized和threadlocal
java基础:
3.string,stringbuilder和stringbuffer,string为什么要用final修饰?
4.final和static的作用。
5.抽象类和接口的区别。
6.重写了equals后为什么要重写hashcode,如果不重写,会有什么影响?
计算机网络:
7.TCP和UDP
8.TCP为什么是面向连接的,有哪些机制?
9.TCP的三次握手,为什么是三次,两次会有什么情况?
10.思考题:100只试管里有一只是有毒的,现在有10个小白鼠,如何最快速地判断出那只试管有毒。
11.编程:指定区间反转链表。
面试官评价:会缺乏一些开放性的思考。
全部评论
(8) 回帖