Java经典面试题整理及答案详解(六)

简介: 7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01

图片无法显
点击图片或戳我查看详情和投简历
了解更多:
Java经典面试题整理及答案详解(一)
Java经典面试题整理及答案详解(二)
Java经典面试题整理及答案详解(三)
Java经典面试题整理及答案详解(四)
Java经典面试题整理及答案详解(五)

小伙伴们看过来!Java经典面试题已经更新到第六节啦,前面五节大家都认真学习了吗?正逢金三银四招聘季,小编会持续更新面试真题哒,一定要助你过关斩将,拿下心仪offer!

1.YML格式

yml格式是与properties对应的一种格式,基本上可以方便的描述资源的配置。如果现在使用properties,那么定义格式如下:

image.png

如果要采用yml配置如下:

image.png

没有必要去考虑具体的格式,转换也很容易,之前SpringBoot有说过。(大家可以点击下方“阿里云大学-面试技巧”去看看)

2.理论上是抽象类的所有抽象方法必须被覆写,但是为什么HttpServlet的子类中覆写或者不覆写都不会报错?

它们的关系:
(1) 爷爷类(抽象类):GenericServlet;
(2) 老子类(抽象类):HttpServlet;
(3) 类(普通类):自定义的Servlet
关键的问题在于HttpServlet抽象类中的所有方法并不完全都是抽象方法,对于抽象类的子类需要覆写的只是抽象方法,而对于非抽象方法是不需要强制覆写的。

3.在后端向jsp页面传递参数的时候可以使用对象传递,之后用EL表达式,也可以用JSON数据传递,在选择的时候优先选择哪一种好?

如果想玩高档界面,整个页面不直接生成,那么使用JQuery加载最好。
EL工作在服务器端,而JSON操作工作在客户端处理(服务器生成),这两点完全没有可比性。
当使用JSP处理的时候,必须明确所有的代码是由容器负责生成,生成的是HTML代码,这些代码依靠一些对象生成,生成完成之后才会把生成的代码发送给客户端,客户端要进行整体的解析处理。而JSON只是一个传输的格式,它要求在整个的处理里面需要通过前台的JS来进行数据的控制。

4.什么是异步IO,和同步IO的区别有哪些?BIO,NIO,AIO实现区别?

在进行图形的用户信息输入的时候你会发现如果用户不输入信息,则程序就进入一种阻塞状态,这种阻塞状态一定是要在输入完成后才会解除,就会成为同步IO。阻塞状态下执行,所谓的异步IO简单一点来讲在阻塞的时候其它的线程依然可以执行。
BIO:同步阻塞IO,就是传统的操作实现模式,传统的IO处理,像最基础的InputStream;
NIO:异步阻塞IO,做一个零拷贝操作,正常的文件操作是通过CPU向内存要数据,而后内存向硬盘要数据,而零阻塞指的是内存直接将读取到的数据发送给客户端,中间不再经过CPU处理,里面重要的是一个Channel;
AIO:异步非阻塞IO,等待发出之后用户就继续向下执行了,完成后获得一个通知。

5.在构造方法里面进行调用的时候为什么要使用“类.class”,而不使用“对象.getClass()”?

Class实际上主要表示一个类的结构,例如:Date有Class类、String也有与之匹配的Class类,而获得了Class类就相当于获得了类的操作权限,哪怕获得的时候没有实例化对象存在,也是可以操作的。

image.png
image.png

一般使用getClass()方法都会在某一个方法里通过反射获取对象结构的时候采用。

6.反射与new的关系

对于反射机制而言,本质的目的:避免具体的对象操作,而new处理是需要有明确的耦合性。
范例:以接口实例化为例

image.png

如果一个程序类的代码要进行类耦合处理的话,这个时候就必须清楚地认识到一个问题:该程序子类在使用之中就无法动态更换了,IMessage只能够使用一个固定的子类。
而如果要使用反射处理的话,就不再受到一个固定类的限制。

image.png
image.png

反射并不是一个容易被初学者理解的话题,因为如果要想清楚反射的作用,那么就必须要求学完java业务分析设计。

更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
77 2
|
28天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
67 14
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
1月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
1月前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
1月前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
36 6
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
72 4
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
135 4
|
2月前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
125 1
Java面试题之Java集合面试题 50道(带答案)
|
2月前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
73 5