如果你的面试简历是如下这样写的,请务必准备回答下面的所有问题。

面试职位:Java高级工程师

专业技能:

(1)牢固掌握Java基础知识,如集合、并发、I/O等,并对Java源码有一定的研究。

(2)掌握Git、SVN等版本管理工具,熟练使用Maven、Jenkins等工具。

(3)熟练使用MySQL数据库,了解InnoDB存储引擎,接触过MySQL的调优。熟悉Redis数据库。

(4)熟练使用Linux常用命令,编写过shell脚本。

(5)熟练使用Spring、Hibernate等框架。

...

面试的次数多了,其实也就是“老驴拉磨,跑不出那个圈”,本人总结了面试Java高端职位一些出现概率极大的问题,罗列如下。如果你觉得还有些问题出现的概率也比较大,又或者本人博客中总结的有误,请指教!

下面的每个大问题本人都做了回答,如果有补充的话或者哪有不明白地方,请留言!

1、Java面试01|JVM相关

(1)JVM内存查看与分析,编写内存泄露实例

(2)对象的分配以及出发Minor GC与Full GC的条件

(3)类加载过程,如何获得当前对象的ClassLoader

(4)Java的先行发生关系 happens-before

(5)JVM的类载入器

(6)垃圾回收策略

2、Java面试02|Java集合

(1)Hash的死锁原因

(2)关于ConcurrentHashMap相关的问题

(3)LinkedHashMap的应用

3、Java面试03|并发及锁

(1)synchronized与Lock的区别

(2)Lock机制的实现

(3)源码剖析AQS在几个同步工具类中的使用

4、Java面试04|Spring框架

(1)动态代理的几种方式

(2)Spring AOP(Aspect Oriented Programming面向切面编程)与IoC(Inverse of Control控制反转)的实现

5、Java面试05|MySQL及InnoDB引擎

(1)InnoDB引擎索引

(2)建立索引的几大原则

(3)MySQL的几种优化

(4)MySQL常用函数

(5)MySQL数据库插入和删除一条数据的过程在底层是如何执行的?

(6) MySQL的事务是如何实现的?

(7)数据库范式与反范式

6、Java面试06|项目相关介绍

(1)明确你的项目到底是做什么的,有哪些功能

(2)明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看并且清楚地指出从哪里调用到哪里、使用什么方式调用

(3)明确你的模块在整个项目中所处的位置及作用及明确你的模块用到了哪些技术,更好一些的可以再了解一下整个项目用到了哪些技术

(4)项目中遇到的难题,怎么解决的?

(5)有什么研究深入的技术或比较满意的项目?

7、Java面试07|Redis数据库

(1)Redis持久化的几种方式

(2)Redis的缓存失效策略

(3)Redis和Memcached的区别

(4)Redis分布式锁的实现

(5)Redis的Reactor模式

(6)MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

8、Java面试08|Java重要的类和相关的方法

(1)深入理解Class类及其中的方法

(2)如何在运行时确定对象类型?

(3)关于随机数生成的类Random

(4)SimpleDateFormat在并发量高的环境下访问会有什么问题?

9、Java面试09|多线程

(1)假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

(2)分析线程池的实现原理和任务的调度过程

10、Java面试10|数据库相关

(1)ID分配单点问题

(2)数据库如何实现事务?

(3)数据库与缓存不一致问题

11、Java面试11|Maven与Git

(1)Maven 生命周期及Maven多项目聚合与继承

(2)Maven出现依赖冲突如何解决?

(3)merge与rebase的区别

(4)Git产生冲突的解决方案

12、Java面试12|Linux及Shell脚本

(1)随便写一个awk的命令、用awk统计文本行数

(2)编写一个简单的Shell脚本

(3)Linux系统监控命令

(4)线上CPU100%,如何定位和排查问题

13、Java面试13|算法

(1)冒泡排序

(2)快速排序

(3)一致性hash

(4)LRU最近最少使用算法

14、Java面试14|Session与Cookie

(1)在分布式环境,管理Session通常使用下面三种方式:

(2)Session与Cookie的区别与联系

(3)Cookie在客户端被禁用怎么处理?

15、Java面试15|网络

(1)TCP(Transmission Control Protocol)三次握手与四次分手

(2)http与https建立连接的过程

(3)描述HTTP协议(HTTP请求和响应报文的格式)

Java面试系列的更多相关文章

  1. java面试系列<4>——IO

    面试系列--javaIO 一.概述 java的IO主要分为以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader 和 Writer 对象 ...

  2. Java面试系列之HashMap大扫盲汇总

    PS:整理的稍微有点急,不足之处,望各路道友指正,List相关可以查看前一篇随笔! HashMap的工作原理是近年来常见的Java面试题,几乎每个Java程序员都知道HashMap,都知道哪里要用Ha ...

  3. Java面试系列第一篇-基本类型与引用类型

    这篇文章总结一下我认为面试中最应该掌握的关于基本类型和引用类型的面试题目. 面试题目1:值传递与引用传递 对于没有接触过C++这类有引用传递的Java程序员来说,很容易误将引用类型的参数传递理解为引用 ...

  4. Java面试系列第2篇-Object类中的方法

    Java的Object是所有引用类型的父类,定义的方法按照用途可以分为以下几种: (1)构造函数 (2)hashCode() 和 equals() 函数用来判断对象是否相同 (3)wait().wai ...

  5. Java面试系列第3篇-HashMap相关面试题

    HashMap是非线程安全的,如果想要用线程安全的map,可使用同步的HashTable或通过Collections.synchronizeMap(hashMap)让HashMap变的同步,或者使用并 ...

  6. 死磕Java面试系列:深拷贝与浅拷贝的实现原理

    深拷贝与浅拷贝的问题,也是面试中的常客.虽然大家都知道两者表现形式不同点在哪里,但是很少去深究其底层原理,也不知道怎么才能优雅的实现一个深拷贝.其实工作中也常常需要实现深拷贝,今天一灯就带大家一块深入 ...

  7. Java面试系列--java基础

    Java基础总结 JAVA中的几种基本数据类型是什么,各自占用多少字节. 八大基本数据类型,byte:8位,short:16位,int:32位,long:64位,float:32位,double:64 ...

  8. 大宇java面试系列(二):jvm组成部分

    1. 说一下 JVM 的主要组成部分?及其作用? 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Na ...

  9. 大宇java面试系列(三):Redis常见面试题

    1. Redis 是什么?都有哪些使用场景? 我们先来理解经典的CAP理论: 一致性:是指从数据层面来看的一致性. 可用性:是指从系统层面的可用性. 容错性:是指从网络层面的的容错性. 数据库逐渐从关 ...

随机推荐

  1. MariaDB10自动化安装部署

    去MariaDB官网下载MariaDB本文用的是MariaDB 10.1.16 https://downloads.mariadb.org 选择二进制版本,下载到/root目录下 mariadb-10 ...

  2. java 数据设置和显示

    1. 首先设置ModelAndView 的值 @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServ ...

  3. 在iOS微信浏览器中自动播放HTML5 audio(音乐)的2种正确方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. MVC使用HandleErrorAttribute自定义异常

    MVC中,有一个Filter可以捕捉错误,但是它的用法是利用Attribute来实现的,而且只能加在Controller和Action上,所以不能捕捉别出的错误 其实理论上所有的错误肯定产生于Cont ...

  5. 在ASP.NET MVC中使用JQ插件datatable

    1. Models public class Citys { public int Id { get; set; } public string CityName { get; set; } publ ...

  6. doubango(5)--SIP协议栈传输层的启动

    SIP协议的INVITE消息发起流程 当通过sip协议发起一个会话时,需要通过invite消息实现该流程.而SIP协议是一个基于事务的协议,每一个sip会话的都是通过sip部件间的一系列消息来完成的. ...

  7. POJ3728 LCA RMQ DP

    题意简述:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. ...

  8. (汉化改进作品)BruteXSS:Xss漏洞扫描脚本

    今天给大家进行汉化改进的事一款脚本工具:BruteXSS,这款脚本能自动进行插入XSS,而且可以自定义攻击载荷. 该脚本也同时提供包含了一些绕过各种WAF(Web应用防护系统)的语句.   0×01简 ...

  9. [Echarts]用Echarts绘制饼状图

    在项目网站的网页中,有这样一幅图: 心血来潮,想使用百度Echarts来绘制一下,可是没能绘制得完全一样,Echarts饼状图的label不能在图形下面放成一行,最后的效果是这样子的: 鼠标移动到it ...

  10. [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

    在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...