Java 编程(基础面试题)

马上又要到 2020 年的面试季了,笔者过年在家也是无聊于是结合自身开发经验总结出一些常用的 Java 面试指南希望能对即将踏入这个行业的或者准备跳槽的程序员童鞋们有一些帮助和启发。本篇 Chat 将主要从 Java 的一些常见基础知识、Spring、Spring MVC、MyBatis、Spring Boot、Java 常见算法等方面总结出一些面试题,关于数据结构和算法相关部分可以参考上一篇 Chat 《Java 编程(数据结构与算法)》,希望大家在2020年的面试计划中可以拿到好的 Offer。

本场 Chat 主要内容:

  • Java 语言基础篇
    • Java 中的基本数据类型各占多少字节?
    • 简单说明 String、Stringbuffer、StringBuilder 之间的区别是什么?
    • ArrayList 和 LinkedList 在应用上有什么优缺点?
    • 关于 final 修饰符你是怎么理解的?
    • error 和 exception 的区别是什么?
    • 创建一个 java.lang.String 对象,这个对象是否可以被类加载器加载?为什么?
    • 请列出 3 个运行时异常
    • Java 语言中泛型主要是为了解决什么问题?
    • 两个不同的对象会不会有相同的 hashcode?请举例说明?
    • JDK 和 JRE 的区别是什么?
    • == 和 equals 的区别是什么?
    • 抽象类是不是必须存在抽象方法?
    • Java 中的 IO 流大概可以分为哪几种?
    • 关于文件类 Files 常用的应用方法是什么?
    • 简单说明 List、Set、Map 应用上的区别及使用场景?
    • Array 数组和 ArrayList 线性表的应用区别是什么?
    • 简单说明 Iterator 迭代器?有什么特点?
    • & 和 && 的区别是什么,应该怎样使用?
    • 使用位移动的方式计算2乘以8?
    • JVM 是怎么加载 .class 文件的?
    • 请简单说明 Java 的内存泄漏以及垃圾回收机制?
    • 说明 try--catch 异常处理机制?
    • 简单叙述 synchronized 关键字的使用场景?
    • Java 中实现线程主要有哪几种方式方法?
    • 简单说明事务的四个特性是什么,以及各有什么特点?
    • Java 中获取一个类对象的时候有哪几种方式可以使用?
    • 说明一下 Java 中你能了解到的设计模式有哪些?
    • 请说明一下你所理解的重写和重载是怎么样的?
    • JVM 运行环境可以分为哪些区,每个区的作用是什么?
    • 内存溢出和内存泄漏的区别是什么?遇到这种情况应该怎样处理?
    • 在什么工作场景下会经常遇到序列化和反序列化?
    • 说说为什么使用 CorrentHashMap,有什么优缺点?
    • 你是怎样理解多态、封装和继承的?
    • Vector 和 ArrayList 的区别是什么?
    • 在 Java 语言中,多线程的实现方式有哪些?
    • HashMap 和 HashTable 的区别是什么?
    • 抽象类与接口有什么区别?为什么要使用抽象类?
    • 请说明序列化的意义是什么?
  • Java 语言框架篇
    • Maven 项目管理工具有什么优缺点?
    • 在使用 Maven 管理项目时,常见的标签有什么?
    • 请列举 Maven 的私服仓库?
    • Spring 的主要有哪些模块,各个模块主要提供了什么服务支持?
    • 请简单叙述你对 Spring AOP 面向切面编程的理解?
    • BeanFactory 和 ApplicationContext 有什么区别?
    • Spring 是如何管理 bean 的生命周期的?
    • 请说明目前常用的 Sring Boot 相比 Spring MVC 有什么优缺点?
    • MyBatis 的存在主要是为了解决什么问题,有什么优点?
    • MyBatis与Hibernate有哪些不同?
    • 在使用 Mybatis 插件写 SQL 时,#{}和${}的区别是什么?
    • 通过<resultMap>来映射字段名和实体类属性名的一一对应的关系,并利用 SQL 举例?
    • MyBatis 动态 SQL 的执行原理是什么?
    • 怎样配置 MyBatis 的二级缓存?
  • Java 语言算法篇
    • 什么是算法的时间复杂度?
    • 什么是递归算法,请举例?
    • 什么是冒泡排序算法,请举例?
    • 什么是归并排序,请举例说明?
    • 6 种位操作符分别是什么?
    • 简述你对二叉树的理解?
    • 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 321323。
  • 总结

适合人群:Java 开发、Web 开发、Java 编程

阅读全文: http://gitbook.cn/gitchat/activity/5e3257c1834b8248fd35eef4

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

你可能感兴趣的:(Java 编程(基础面试题))