2017年秋招Java面试高频面试题(个人整理)

来源:互联网 发布:mac自带邮件客户端 编辑:程序博客网 时间:2024/05/21 07:52

八月份参加校招面试至今,总结了一些常见的Java面试题,供大家参考。

Java基础:
多态(原理、实现)
重载和覆盖
抽象类、接口区别
==、equals()、hashcode()-对于基本类型、引用类型分情况
String原理(源码中final实现了其不可变,底层数据结构-char数组)、StringBuilder-线程不安全、StringBuffer线程安全(源码中借助synchronized来实现的)
socket通信(手写代码)
IO操作(读取文件等)手写
java集合框架(迭代器、底层结构、特点以及一些区别hashmap、hashtable;arraylist、vector)
多线程(线程实现方式、线程同步方式、线程池)
Error和Exception
数据库:
sql语句,删除表truncate等、查询group by/order by/函数的使用
索引的分类及特点、底层实现
mysql常用存储引擎及特点
数据库事务的特点ACID以及事务的隔离级别及各个级别能解决的问题(脏读、不可重复读、幻读)
mysql和oracle的区别
JVM:
java内存模型及各自的作用
gc过程及其中涉及到的算法和对象分代(新生代、老年代、持久代)
JVM装载.class文件的过程(装载、链接(检查、准备、解析)、初始化)
内存泄漏的原因及一些具体的情形
堆和栈的区别
Java web:
看简历情况做相应准备:
tomcat处理请求的过程
struts处理请求的过程、接收前台参数、返回数据给前台
springmvc运行流程、组件的配置、接收前台参数、返回数据给前台
struts和springmvc的区别
hibernate和mybatis的区别
spring中aop(动态代理,cglib和jdk动态代理)和ioc底层原理
spring中事务的配置和传播方式
spring整合struts/springmvc和mybatis/hibernate
算法和数据结构:
快速排序-手写
top k问题
堆和栈的实现
字符串的操作-手写
一些常见的算法设计题:求链表的倒数第k个节点、判断链表是否有环、青蛙跳台阶等

原创粉丝点击