2017春招 互联网名企面试问题整理即相关知识总结 Java集合框架梳理(含经典面试题)

2017春招·互联网名企最新面经合集(持续更新) 1-25html

来源:牛客网 https://zhuanlan.zhihu.com/p/26455288java

1. Java基础

【JVM】mysql

知识点整理博客:详细介绍Java虚拟机(JVM)linux

重点知识点:面试

  • JVM内存分配和回收(五大数据区、栈堆分别存储的内容)
  • JVM三大机制(尤为是类加载机制、类加载过程)
  • 双亲委派模式及如何破坏

面试题集锦:正则表达式

  • JVM内存模型(五大数据区域、堆栈、标记压缩/标记清除,年轻/老年/永久)
  • JVM堆栈静态区分别存储的内容
  • JVM的类加载机制(ClassLoader),双亲委派、破坏双亲委派机制
  • 垃圾回收 (GC,如何判断一个对象不可达)
  • 刚刚说的GC Root,有哪些对象能够当作GC Root呢?
  • JVM可视化工具

 

【集合框架】算法

知识点整理博客:Java集合框架梳理(含经典面试题)spring

重点知识点:sql

  • 集合框架的各个接口、类的区别
  • HashMap:底层实现、线程安全、hashCode()和equals()方法、与其余集合类的区别、哈希碰撞
  • Map的遍历

面试题集锦:shell

  • 经常使用的集合框架(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多线程(一) —— 线程的状态详解

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哪一个类能够ByteString(InputSteamReader/OutputSteamWriter)
  • IO模型
  • NIOBIO的区别
  • 如何输出文件夹下的全部文件 

 

【设计模式】

 

知识点整理博客:Java设计模式 

重点知识点:

  • 了解常见的几种设计模式:代理模式、包装模式、工厂模式...

面试题集锦:

 

  • 设计模式知道哪些?JDK或其它框架中有哪些设计模式?代理模式和包装模式

 

2. 数据结构(hashmap、二叉树、TreeMap

hash一致性的原理

二叉树的遍历

二叉树的前序遍历,说下怎么实现,不用递归实现呢? 还有其余的方式吗?它们的区别

索引实现原理B+树(重要),为何就能实现查询效率提升  等(都喜欢问b+树的特色)

 

3.数据库(MySQL

Mysql数据库优化方式

MySQL的默认事务隔离级别,有什么用

MongoDB用过不,此处回答学习分布式数据库时候用到过,问和mysql的区别(很简单,关系型和非关系型,一个是表的形式,一个是json形式存储)

mysql数据库链接池的驱动参数

数据库链接池如何防止失效

事务acidmysql怎么实现特性的(acid),事务隔离级别(四条),怎么实现的,可重复读和不可重复读的区别,脏读和幻读什么意思。

事务级别的序列化怎么实现的,有排它锁

mysql的索引(又是B+树)

 

4. 框架问题(SpringMVC、设计模式、Spring AOP IOCMybatis

SpringMVC工做原理

MyBatis 的使用,多个查询可否用一个链接

Spring的加载流程,Spring的源码中Bean的构造的流程

spring 特性 ,IOC AOP解释

介绍一下springmvc,随便说,spring mvc工做流程

 mybatis的#和$号区别

AOP的思想,Spring注入的方式

Redis的一致性哈希算法

 

5. JavaWebJSPServletSessionHTTPFilter

Filter什么状况用到了

服务器端Session的保存

各类Web认证

 

6. 计算机网络

TCP的三次握手和四次挥手
TCP和UDP的区别
tcp 滑动窗口 tcp 状态码
SOAP 协议、 HTTP 的某个协议
http 的数据包格式
tcp 包含 ip
tcp 的数据包格式
http状态码:200,202,301,302,304,404,500等

 

7. 操做系统

有没有用到过Linux的底层一点命令,查看堆栈之类的

linux权限控制

linux的显示文件夹大小 ls -al  

linux的查看端口状态 natstat加参数  

linux的查看进程的启动时间 linux ps

日期时间戳、SimpleDateFormat线程安全问题、ThreadLocal

 

8. 算法(排序)

知识点整理博客:排序算法总结及Java实现

  • 介绍快速排序
  • 堆排,若是从若干数中找最大N个数用最大堆仍是最小堆?
  • 二分查找

 

9. 项目

你项目中用到哪些设计模式。

作过的项目 

开发中遇到的问题

 

10. 开放式问题

 最后有什么问题想问(大家这个职位注重啥

 评价本身优缺点,业余爱好,最近在看什么书

 

 

说一下数据结构,有一个很长的链表,找出倒数第k个元素。不用两个指针呢?他们以前有什么区别?面试官更想听你说的第二种实现。

前台中有两个输入框ab,在a输入框输入数据而且点击一按钮后b输入框响应显示a的数据,而后点击一个按钮后,将数据提交到后台,后台处理后返回前台,具体的逻辑过程

JIT(没反应过来)、进制转

LongAtomicLongLongAdderJDK 8)以及JDK 8新特性

正则表达式:电话、邮箱,正则表达式解析。Linux shell查找指定线程、export用法  

讲讲思路:一个1G文件里面都是字符串,每一行只有一个字符串,字符串最大16个字节,实现不超过1M空间下找出重复次数最多的前100个字符串; 

5. 两个系统之间怎么通信

 

------------------- 待整理 -----------------