2017春招 互联网名企面试问题整理即相关知识总结
【2017春招·互联网名企最新面经合集(持续更新) 1-25】
来源:牛客网 https://zhuanlan.zhihu.com/p/26455288
1. Java基础
【JVM】
知识点整理博客:详细介绍Java虚拟机(JVM)
重点知识点:
- JVM内存分配和回收(五大数据区、栈堆分别存储的内容)
- JVM三大机制(尤其是类加载机制、类加载过程)
- 双亲委派模式及如何破坏
面试题集锦:
- JVM内存模型(五大数据区域、堆栈、标记压缩/标记清除,年轻/老年/永久)
- JVM堆栈静态区分别存储的内容
- JVM的类加载机制(ClassLoader),双亲委派、破坏双亲委派机制
- 垃圾回收 (GC,如何判断一个对象不可达)
- 刚刚说的GC Root,有哪些对象可以当做GC Root呢?
- JVM可视化工具
【集合框架】
知识点整理博客:Java集合框架梳理(含经典面试题)
重点知识点:
- 集合框架的各个接口、类的区别
- HashMap:底层实现、线程安全、hashCode()和equals()方法、与其他集合类的区别、哈希碰撞
- Map的遍历
面试题集锦:
- 常用的集合框架(LinkedList, ArrayList, HashMap等等)
- HashMap的底层实现
- 在多线程的条件下HashMap安全吗,会怎让解决这个问题呢?(ConcurrentHashMap)
- ConcurrentHashMap和HashTable什么区别
- hashCode和equals方法的区别与联系
- hashtable和hashmap的区别
- 线程安全和不安全的map:hashmap treemap hashtable concurrenthashmap. collections.synchronizedmap
- hashtable怎么实现线程安全:synchronized
- hashmap存数据的过程,以及怎么确定是更新和插入。
- hashmap的iterator读取时是否会读到另一个线程put的数据
- 哈希表处理冲突的方法
- List和Set区别
- HashSet如何实现,for遍历集合能进行删除操作吗?
- 说一下 java中的队列、set、map 区别,java里的数据结构。讲讲它们的实现。
- Map、EntrySet和KeySet哪个效率更高?
【进程和线程】
知识点博客整理:
Java多线程(二) —— 线程安全、线程同步、线程间通信(含面试题集)
重点知识点:
- 线程的集中状态及状态间的切换
- 多线程的优缺点
- 线程安全(同步、锁)
- 线程间通信
- 几个重要方法的作用:join()、sleep()、wait()、yeild() ...
- 几个重要关键词: volatile、synchronized、Lock
面试题集锦:
- 线程几种状态
- 创建线程的4中方式
- sleep() 和wait() 的区别
- 多线程框架讲一讲
- 进程之间通信的方式
- 多线程的好处
- 如果两个线程都使用一个ByteBuf 怎么保证它的安全,具体说一下代码实现
- 多线程安全、线程join、线程池(newFixedThreadPool有几种)、CountDownLatch、信号量
- 三个线程的实现方式,线程中的同步
- 并发、并发中的threadlocal介绍、原理
- 讲一讲锁,volatile、synchronized、Lock
- 锁机制以及几种锁的原理以及区别
- synchronized和lock的区别,你用过哪些锁。
- 多线程同步,java中线程安全的类
【关键字】
知识点整理博客:Java 面试总结(一) —— 面试常问的关键字总结
重点知识点:
- final finalize finally
- throws和throw
- static关键字的作用
- abstract 和 interface
- super 和 this
- synchronize 和 volatile
面试题集锦:
- final finalize finally
- throws throw 怎么用?
- static关键字的作用
- abstract 关键字的作用,什么时候用
- 子类中如何调用父类的构造器,如果不用super关键字呢?有其他的方式吗?(this.(参数表)----- 本类)
- synchronize关键字的使用
【String】
重点知识点:
【IO】
知识点整理博客:
Java I/O 工作机制(一) —— Java 的 I/O 类库的基本架构
Java I/O 工作机制(二) —— Java 的 I/O 的交互方式分析
重点知识点:
- 字节流、字符流各自的操作类及互相转换
- NIO和BIO
- 同步异步、阻塞非阻塞
面试题集锦:
- IO哪个类可以Byte转String(InputSteamReader/OutputSteamWriter)
- IO模型
- NIO和BIO的区别
- 如何输出文件夹下的所有文件
【设计模式】
知识点整理博客:Java设计模式
重点知识点:
- 了解常见的几种设计模式:代理模式、包装模式、工厂模式...
面试题集锦:
- 设计模式知道哪些?JDK或其它框架中有哪些设计模式?代理模式和包装模式
2. 数据结构(hashmap、二叉树、TreeMap )
hash一致性的原理
二叉树的遍历
二叉树的前序遍历,说下怎么实现,不用递归实现呢? 还有其他的方式吗?它们的区别
索引实现原理B+树(重要),为什么就能实现查询效率提高 等(都喜欢问b+树的特点)
3.数据库(MySQL)
Mysql数据库优化方式
MySQL的默认事务隔离级别,有什么用
MongoDB用过不,此处回答学习分布式数据库时候用到过,问和mysql的区别(很简单,关系型和非关系型,一个是表的形式,一个是json形式存储)。
mysql数据库连接池的驱动参数
数据库连接池如何防止失效
事务acid,mysql怎么实现特性的(acid),事务隔离级别(四条),怎么实现的,可重复读和不可重复读的区别,脏读和幻读什么意思。
事务级别的序列化怎么实现的,有排它锁
mysql的索引(又是B+树)
4. 框架问题(SpringMVC、设计模式、Spring AOP IOC、Mybatis)
SpringMVC工作原理
MyBatis 的使用,多个查询能否用一个连接
Spring的加载流程,Spring的源码中Bean的构造的流程
spring 特性 ,IOC AOP解释
介绍一下springmvc,随便说,spring mvc工作流程
mybatis的#和$号区别
AOP的思想,Spring注入的方式
Redis的一致性哈希算法
5. JavaWeb(JSP、Servlet、Session、HTTP、Filter)
Filter什么情况用到了
服务器端Session的保存
各种Web认证
6. 计算机网络
7. 操作系统
有没有用到过Linux的底层一点命令,查看堆栈之类的
linux权限控制
linux的显示文件夹大小 ls -al
linux的查看端口状态 natstat加参数
linux的查看进程的启动时间 linux ps
日期时间戳、SimpleDateFormat线程安全问题、ThreadLocal
8. 算法(排序)
知识点整理博客:排序算法总结及Java实现
- 介绍快速排序
- 堆排,如果从若干数中找最大N个数用最大堆还是最小堆?
- 二分查找
9. 项目
你项目中用到哪些设计模式。
做过的项目
开发中遇到的问题
10. 开放式问题
最后有什么问题想问(你们这个职位注重啥)
评价自己优缺点,业余爱好,最近在看什么书
说一下数据结构,有一个很长的链表,找出倒数第k个元素。不用两个指针呢?他们之前有什么区别?面试官更想听你说的第二种实现。
前台中有两个输入框a和b,在a输入框输入数据并且点击一按钮后b输入框响应显示a的数据,然后点击一个按钮后,将数据提交到后台,后台处理后返回前台,具体的逻辑过程
JIT(没反应过来)、进制转
Long、AtomicLong、LongAdder(JDK 8)以及JDK 8新特性
正则表达式:电话、邮箱,正则表达式解析。Linux shell查找指定线程、export用法
讲讲思路:一个1G文件里面都是字符串,每一行只有一个字符串,字符串最大16个字节,实现不超过1M空间下找出重复次数最多的前100个字符串;
5. 两个系统之间怎么通讯
------------------- 待整理 -----------------