java面试题(目录版)
在https://www.cnblogs.com/marsitman/p/9539369.html 根据自己以往的面试经验,在该基础上做了补充和删减,均链接到相应的地址(链接失效请留言评论)。
一、开场白
简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;(你的信息一清二白的写在简历上,能答出来的最好写在上面,模棱两可不是很清楚的最好不要写,否则会被问的很尴尬)
介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要对自己做过的事情是否有清晰的描述)
二、Java基础
- 什么是字符串常量池?
- String为什么是不可变的?
- String s = new String("xyz");究竟产生了几个对象,从JVM角度谈谈?
- String拼接字符串效率低,你知道原因吗?
- 你真的了解String的常见API吗?
- Java中的subString()真的会引起内存泄露么?
- 浅析Java中的final关键字
- 浅析Java中的static关键字
- 浅析java中的this关键字
- 你对Java中的volatile关键字了解多少
- i++是线程安全的吗?如何解决线程安全性
- 从字节码角度深度解析 i++ 和 ++i 线程安全性原理
- 请谈谈什么是CAS?
- 从源码角度看看ArrayList的实现原理?
- 手写LinkedList的实现,彻底搞清楚什么是链表?
- Java中方法参数的传递规则?
- Java中throw和throws的区别是什么?
- 重载和重写的区别?
- finally语句块你踩过哪些坑?
- 为什么重写equals方法需同时重写hashCode方法?
- equals() 与 == 的区别?
- StringBuffer和StringBuilder的区别?
- 你知道HashMap的数据结构吗?
- HashMap何时扩容以及它的扩容机制?
- HashMap的key一般用字符串,能用其他对象吗?
- HashMap的key和value都能为null么?如果key能为null,那么它是怎么样查找值的?
- HashMap是线程安全的吗?如何实现线程安全?
- 从源码角度分析HashSet实现原理?
- HashTable与HashMap的实现原理有什么不同?
- String方法intern() 你真的会用吗?
- 什么是自动拆装箱?
- java异常和错误的区别,如何自定义异常
- 说说内存溢出和内存泄漏
- 序列化和反序列化的区别
三、Java多线程
- 线程的生命周期包括哪几个阶段?
- 多线程有几种实现方式?
- 进程和线程的区别?
- 说说线程安全问题,什么实现线程安全,如何实现线程安全?
- sychronized和Lock的区别?
- sleep()和wait()的区别?
- 深入分析ThreadLocal的实现原理?
- 你看过AbstractQueuedSynchronizer源码阅读吗,请说说实现原理?
- 谈谈对synchronized的偏向锁、轻量级锁、重量级锁的理解?
- 通过三种方式实现生产者消费者模式?
- JVM层面分析sychronized如何保证线程安全的?
- 如何写一个线程安全的单例?
- 通过AQS实现一个自定义的Lock?
- ThreadLocal什么时候会出现OOM的情况?为什么?
- 为什么wait, notify 和 notifyAll这些方法不在thread类里面?
- 你真的理解CountDownLatch与CyclicBarrier使用场景吗?
- 出现死锁,如何排查定位问题?
- notify和notifyAll的区别?
- 线程池启动线程submit和execute有什么不同?
- SimpleDateFormat是线程安全的吗?如何解决?
- 请谈谈ConcurrentHashmap底层实现原理?
- 使用synchronized修饰静态方法和非静态方法有什么区别?
- 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其方法?
- 线程池的原理,为什么要创建线程池?创建线程池的方式?
- 创建线程池有哪几个核心参数? 如何合理配置线程池的大小?
- synchronized修饰的静态方法和非静态方法有什么区别?
- 脏读、幻读和不可重复读
四、Java Web
五、JVM面试题
- JVM内存区域如何划分?
- JVM堆中对象是如何创建的?
- JVM对象的结构?
- JVM垃圾回收-如何判断对象是否是垃圾对象?
- JVM垃圾回收算法有哪些?
- JVM垃圾收集器有哪些?
- JVM内存是如何分配的?
- 从一道面试题分析类的加载过程?
- JVM双亲委派机制?
- JVM可以作为GC Root的对象有哪些?
- 请写出几段可以导致内存溢出、内存泄漏、栈溢出的代码?
- 哪些情况会导致Full GC?
- 频繁GC问题或内存溢出问题,如何定位?
六、SQL性能优化
- 数据库三范式是什么?
- 数据库的事务、ACID及隔离级别?
- 不考虑事务的隔离性,容易产生哪三种情况?
- 数据库连接池原理?
- 什么是B-Tree?
- 什么是B+Tree?
- MySQL数据库索引结构?
- 什么是索引?什么条件适合建立索引?什么条件不适合建立索引?
- 索引失效的原因有哪些?如何优化避免索引失效?
- MySQL如何启动慢查询日志?
- MySQL如何使用show Profile进行SQL分析?
- 一条执行慢的SQL如何进行优化,如何通过Explain+SQL分析性能?
- 什么是行锁、表锁、读锁、写锁,说说它们各自的特性?
- 什么情况下行锁变表锁?
- 什么情况下会出现间隙锁?
- 谈谈你对MySQL的in和exists用法的理解?
- MySQL的数据库引擎有哪些,如何确定在项目中要是用的存储引擎?
- count(*)、count(列名)和count(1)的区别?
- union和union all的区别?
七、Spring框架
- Spring的IOC和AOP机制?
- Spring中Autowired和Resource关键字的区别?
- 依赖注入的方式有几种,各是什么?
- Spring容器对Bean组件是如何管理的?
- Spring容器如何创建?
- Spring事务分类?
- Spring事务的传播特性?
- Spring事务的隔离级别?
- Spring的通知类型有哪些?
八、SpringMVC框架
- SpringMVC完整工作流程,熟读源码流程?
- SpringMVC如何处理JSON数据?
- SpringMVC拦截器原理,如何自定义拦截器?
- SpringMVC如何将请求映射定位到方法上面?结合源码阐述?
- SpringMVC常见注解有哪些?
- SpringMVC容器和Spring容器的区别?
- SpringMVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
九、MyBatis框架
- MyBatis中#和$的区别?
- MyBatis一级缓存原理以及失效情况?
- MyBatis二级缓存的使用?
- MyBatis拦截器原理?
- 看过MyBatis源码吗,请说说它的工作流程?
- mybatis如何查询树状结构的数据?
十、Java高级部分
- Dubbo负载均衡策略?
- Dubbo中Zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
- Dubbo完整的一次调用链路介绍?
- 请说说SpringBoot自动装配原理?
- 有用过SpringCloud吗,请说说SpringCloud和Dubbo有什么不一样?
- 什么是WebService,如何基于WebService开发接口?
- 谈谈项目中分布式事务应用场景?
- 使用Redis如何实现分布式锁?
- 请谈谈单点登录原理?
- Tomcat如何优化?
- 后台系统怎么防止请求重复提交?
- Linux常见命令有哪些?
- 请说说什么是Maven的依赖、继承以及聚合?
- Git暂存区和工作区的区别?
- Git如何创建、回退以及撤销版本?
- 常见的设计模式有哪些?
十一、其他
- 看过哪些源代码?然后会根据你说的源码问一些细节的问题?(这里主要考察面试者是否对技术有钻研的精神,还是只停留在表面,还是背了几道面经,这个对于很多有强迫症的面试官,如果你连源码都没看过,基本上是会pass掉的!)
- 项目中遇到了哪些比较有挑战性的问题,是如何解决的;(这个很有争议,一方面是你连一个复杂的问题都解决不了,要你过来干什么,还有就是,我的能力牛逼啊,但是公司没有业务场景让我展示啊!这个就看你遇到的面试官了,祝你好运!)
到此为止,大致把一些面试官高频的Java面试题整理了一下,希望对大家有所帮助!其实还有很多,只整理了一部分,后续慢慢补上,敬请期待。。。
java面试题(目录版)的更多相关文章
- Java面试题汇总---整理版(附答案)
今天继续为大家整理Java面试题,并涉及数据库和网络等相关知识,希望能帮助到各位开发者. 1,为什么要用spring,Spring主要使用了什么模式? spring能够很好的和各大框架整合,它通过IO ...
- 2021最新Java面试题全集-20210326版
在手撕了数千道网络流传的面试题,外加十多个不眠之夜, 终于从里面精心挑选出约500道题目, 做为大家求职.跳槽前复习准备面试使用. 一:挑选题目的原则: 常考的.常被面试问到的 题目有一定的深度和难度 ...
- 收集了50道基础的java面试题
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- JAVA面试题二
JAVA 综合面试题 2007-08-12 目录 Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,priva ...
- 最有价值的50道java面试题 适用于准入职Java程序员
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- 《OD面试》Java面试题整理
一.面试考察点 1 主语言本身 2 数据库 3 算法 4 Spring/SpringMVC/MyBatis 5 项目经验 1)项目涉及到的技术点深挖: (1)考察候选人技术深度 (2)看候选人遇到问 ...
- 一份贴近真实面试的Java面试题(基础部分)
这是一份关于Java基础的面试题.在网上的关于Java的面试题数不胜数,但本人认真看过后觉得大多数都没有实用性,有很多是面试官根本就不会问到的,企业根本不会用到的,一些已经脱离了实际开发的技术问题.而 ...
- 2019年 Java 面试题解析
2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...
随机推荐
- OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
之前啃了不少OpenCV的官方文档,发现如果了解了一些OpenCV整体的模块架构后,再重点学习自己感兴趣的部分的话,就会有一览众山小的感觉,于是,就决定写出这篇文章,作为启程OpenCV系列博文的第二 ...
- hdoj1520(入门树形dp)
题目链接:https://vjudge.net/problem/HDU-1520 题意:和luogu那道没有上司的舞会一样的题,给定一棵带点权的树,父结点和子结点不能同时选,问怎么选使得权值和最大,求 ...
- [转帖]英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布
英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布 intel 也出soc了 里面的东西 跟 安卓和 apple的a系列很像. https://baijiahao.baidu.com ...
- 【转载】启动redis出现Creating Server TCP listening socket *:6379: bind: No such file or directory
redis启动报错: [6644] 02 Apr 23:11:58.976 # Creating Server TCP listening socket *:6379: bind: No such f ...
- apache tika检测文件是否损坏
Apache Tika用于文件类型检测和从各种格式的文件内容提取的库. 将上传文件至服务器,进行解析文件时,经常需要判断文件是否损坏.我们可以使用tika来检测文件是否损坏 maven引入如下: &l ...
- strCmd.Format("delete FROM userTable where name = '%s'", name);
string.Format("select * from 数据库表 where 用户名='%s' and 密码='%s' ",m_1,m_2); 把[m_1]和[m_2]的值按照[ ...
- hadoop-InputFormat-Split-任务并行度
首先来看 MapReduce 流程图 一个 map,一个 reduce,中间靠 shuffle 连接,shuffle 左边被划分到 map,右边被划分到 reduce InputFormat inpu ...
- 怎样理解Node对象接口
dom中的节点都继承自Node接口, 也就是说, 所有的节点都具有Node接口所规定的属性和方法, 比如下面这个 <a> 标签, 它也继承了Node的所有属性和方法: 可以认为Node接口 ...
- 21-Perl 发送邮件
1.Perl 发送邮件如果你的程序在 Linux/Unix 系统上运行,你就可以在 Perl 中使用 sendmail 工具来发送邮件.以下是一个简单的脚本实例用于发送邮件:#!/usr/bin/pe ...
- Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
其实原因很简单,就是翻译的结果 匿名内部类和局部内部类只能引用外部的fianl变量 把变量变成fianl就行了 第一次知道啊 记小本本.......