面向对象编程的基本理念与核心设计思想

  • 解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。

  • 继承(Inheritance)与聚合(Aggregation)的区别在哪里。

  • 你是如何理解干净的代码(Clean Code)与技术负载(Technical Debt)的。

  • 描述下常用的重构技巧。

  • 阐述下 SOLID 原则。

  • 其他的譬如 KISS,DRY,YAGNI 等原则又是什么含义。

  • 什么是设计模式(Design Patterns)?你知道哪些设计模式?

  • 你有了解过存在哪些反模式(Anti-Patterns)吗?

  • 你会如何设计登陆舰/数学表达式计算程序/一条龙?

  • 你知道哪些基本的排序算法,它们的计算复杂度如何?在给定数据的情况下你会倾向于使用哪种算法呢?

  • 尝试编写如下代码:

    • 计算指定数字的阶乘
    • 开发 Fizz Buzz 小游戏
    • 倒转句子中的单词
    • 回文字符串检测
    • 枚举给定字符串的所有排列组合

Java 核心概念

  • equals 与 hashCode 的异同点在哪里?Java 的集合中又是如何使用它们的。

  • 描述下 Java 中集合(Collections),接口(Interfaces),实现(Implementations)的概念。LinkedList 与 ArrayList 的区别是什么?

  • 基础类型(Primitives)与封装类型(Wrappers)的区别在哪里?

  • final 与 static 关键字可以用于哪里?它们的作用是什么?

  • 阐述下 Java 中的访问描述符(Access Modifiers)。

  • 描述下 String,StringBuilder 以及 StringBuffer 区别。

  • 接口(Interface)与抽象类(Abstract Class)的区别在哪里。

  • 覆盖(Overriding)与重载(OverLoading)的区别在哪里。

  • 异常分为哪几种类型?以及所谓的handle or declare原则应该如何理解?

  • 简述垃圾回收器的工作原理。

  • 你是如何处理内存泄露或者栈溢出问题的?

  • 如何构建不可变的类结构?关键点在哪里?

  • 什么是 JIT 编译?

  • Java 8 / Java 7 为我们提供了什么新功能?即将到来的 Java 9 又带来了怎样的新功能?


Hibernate / 数据库

  • 请解释下 ORM。

  • 简述下 Hibernate 的优劣特性。

  • Hibernate 与 JPA 区别在哪?

  • Hibernate 最新版提供了哪些特性?

  • 什么是懒加载(Lazy Loading)?

  • 什么是 N+1 难题?

  • 介绍一些熟悉的 Hibernate 注释。

  • 简介下 Hibernate Session 与 SessionFactory。

  • Entity Beans 的状态有哪些。

  • Hibernate 中的缓存分为几层。

Hibernate 中事务的支持分为几级?

  • 什么是乐观锁(Optimistic Locking)?

  • 简述下 ACID 原则。

  • 简述下数据库正则化(Normalizations)。

  • 请介绍下你日常工作中优化慢查询(Slow Query)的策略。


Spring

  • 新版的 Spring 中有哪些新特性?

  • 介绍下 Spring 的优势与缺陷。

  • 什么是控制反转(Inversion of Control)与依赖注入(Dependency Injection)?

  • 你用过哪些 Spring 的模块?

  • Spring 中是如何使用依赖注入的?

  • Spring 中提供了几种自动注入的机制?

  • 介绍下 Spring MVC。

  • Spring 中 Scopes 有哪些?

  • Spring 中 Bean 的生命周期包含哪些步骤?

  • Spring Bean 与 EJB Bean 的区别在哪里?


其他主题

  • 介绍下切面编程(Aspect Oriented Programming)。

  • 概述下 GET 与 POST 的区别。

  • Web Server、Web Container 与 Application Server 的区别是什么?

  • 简要介绍下从浏览器输入 URL 开始到获取到请求界面之后 Java Web 应用中发生了什么。

  • 什么是 N 层架构?

  • 微服务(MicroServices)与巨石型应用(Monolithic Applications)之间的区别在哪里?

  • 你知道哪些商业级设计模式?

  • 你是如何测试一个应用的?知道哪些测试框架?

  • 你是如何测试单个方法的?

  • 在你的职业生涯中,算得上最困难的技术挑战是什么?

  • 什么是领域驱动开发(Domain Driven Development)?

  • 介绍下一些你最爱的 IDE 的常用插件。

  • 除了 IDE 之外,你的日常工作中还会用到哪些工具?

  • 你使用什么版本管理工具?

  • 分支(Branch)与标签(Tag)之间的区别在哪里?

  • 你常用的持续集成(Continuous Integration)、静态代码分析(Static Code Analysis)工具有哪些?

Java进阶面试题列表的更多相关文章

  1. Java进阶面试题大集合-offer不再是问题

    Java基础 1.List 和 Set 的区别 2.HashSet 是如何保证不重复的 3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4.HashMap ...

  2. Java进阶面试问题列表

    面向对象编程的基本理念与核心设计思想 解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling). 继承(Inheritanc ...

  3. Java 线程面试题 Top 50

    --> Java 线程面试题 Top 50 html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1. ...

  4. 31道Java核心面试题,一次性打包送给你

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...

  5. 万字长文,62道Java核心面试题,一次性打包送给积极向上的你

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...

  6. 【转载】 Java线程面试题 Top 50

    Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...

  7. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  8. Java线程面试题 Top 50 (转载)

    转载自:http://www.cnblogs.com/dolphin0520/p/3958019.html 原文链接:http://www.importnew.com/12773.html   本文由 ...

  9. Java线程面试题 Top 50

    转自:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java ...

随机推荐

  1. Linux下架构高可用性网络----HA+LB+lvs

    实验总拓扑: IP规划: Director1:     eth0      192.168.10.136/28 eth1      192.168.11.2/24 Director2:     eth ...

  2. Spark 介绍(基于内存计算的大数据并行计算框架)

    Spark 介绍(基于内存计算的大数据并行计算框架)  Hadoop与Spark 行业广泛使用Hadoop来分析他们的数据集.原因是Hadoop框架基于一个简单的编程模型(MapReduce),它支持 ...

  3. Hive Tunning(三) 最佳实践

    在上一讲的基础上,我们来做来一个实际的例子来展示如何在实操中进行高效的hive查询作业. (1)首先我们建立一个表 CREATE EXTERNAL TABLE pos_staging( txnid S ...

  4. MSSQL跨服务器查询

    1.因为此功能服务器安全配置的一部分而被关闭,所以我们先开启 reconfigure reconfigure 2.如果需要关闭,执行 reconfigure reconfigure 3.查询语句 SE ...

  5. 在虚拟机里面安装Linux操作系统

    在这篇文章中以VMware14为例,Linux操作系统采用CentOS7进行讲解如何在虚拟机中安装Linux操作系统. 一.选择创建新的虚拟机 二.在选择虚拟机配置界面选择“自定义(高级)”选项,然后 ...

  6. Java图形界面设计——substance皮肤

    http://jianweili007-163-com.iteye.com/blog/1141358 ————————————————————————————————————————————————— ...

  7. keep or remove data frame columns in R

    You should use either indexing or the subset function. For example : R> df <- data.frame(x=1:5 ...

  8. JQuery之拖拽插件

    一直以来,都对JS获取元素的位置感到非常的困惑:一会client.一会offset.一会scroll. 再加上各大浏览器之间的不兼容,唉,搞得哥晕晕乎乎的. 而很多页面效果都要用到这些位置.不得已,得 ...

  9. share a story on OSPF & BGP

    IP掌门把两个得意门生——BGP和OSPF叫到跟前,询问他们的修炼心得,以选择弟子传授大内心法——MPLS VPN.OSPF说:“小徒苦心研读路由原理,技术资料上万页,网络在我的围护下无环路,触发更新 ...

  10. Ogre RTSS组件解析

    我们为什么要用RTSS. Ogre如计算物体位置,纹理,光照都有固定API如(glMatrixFrustumEXT, glLoadmatrix, glTexture, glLight ),使用这些AP ...