互联网Java工程师面试题——每天背诵二十道面试题(四)


前言

第四天。


一、编程和代码相关的面试题

1、Java 中如何将字符串转换为整数?

答:

String s = "123";
int i ;
第一种方法: i = integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();

2、接口是什么?你知道为什么要使用接口而不是直接使用具体类吗?

答:

  1. 接口用于定义API 。它定义了类必须得遵循的规则。同时,它提供了一种抽象,因为客户端只使用接口,这样可以有多重实现。
  2. 如List接口,你可以使用可随机访问的ArrayList,也可以使用方便插入和删除的LinkedList。接口中不允许写代码,以此来保证抽象,但是Java8中可以在接口声明静态的默认方法,这种方法是具体的。

3、Java 中,你知道抽象类与接口之间有什么不同吗?

答:Java中,抽象类和接口有很多不同之处,但是最重要的是一个是Java中限制一个类只能继承一个类,但是可以实现多个接口。

抽象类可以很好的定义一个家族内的默认行为,而接口能更好的定义类型,有助于后面实现多态机制。

4、你能写出一个正则表达式来判断一个字符串是否是一个数字吗?

答:一个数字字符串,只能包含数字,如 0 到 9 以及 +、- 开头,通过这个信息,你可以下一个如下的正则表达式来判断给定的字符串是不是数字。

import java.util.regex.Pattern 和 java.util.regex.Matcher
public boolean isNumeric(String str){
    
    
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
    
    
		return false;
	}
	return true;
}

5、你给我说出 5 个 JDK 1.8 引入的新特性吧?

答:

  1. Lambda 表达式,允许像对象一样传递匿名函数。
  2. Stream API,充分利用现代多核 CPU,可以写出很简洁的代码。
  3. Date 与 Time API,最终,有一个稳定、简单的日期和时间库可供你使用。
  4. 扩展方法,现在,接口中可以有静态、默认方法。
  5. 重复注解,现在你可以将相同的注解在同一类型上使用多次。

二、Sping面试题

1.你给我说一下什么是 Spring 配置文件?

答:Spring 配置文件是 XML 文件。该文件主要包含类信息。它描述了这些类是如何配置以及相互引入的。但是,XML 配置文件冗长且更加干净。如果没有正确规划和编写,那么在大项目中管理变得非常困难。

2、Spring DAO 有什么用?

答:SpirngDAO使得JDBC,Hibernate或JDO这样的数据访问技术更容易以一种统一的方式工作。这使得用户容易在持久性技术之间切换。

它还允许您在编写代码时,无需考虑捕获每种技术不同的异常。

3、你知道Spring MVC 框架有什么用吗?

答:Spring Web MVC提供框架 模型-视图-控制器 架构和随时可用的组件,用于开发灵活且松散的耦合的Web应用程序。

MVC模式有助于分离应用程序的不用方面,如输入逻辑,业务逻辑和UI逻辑,同时在所有这些元素之间提供松散的耦合。

4、什么是 Spring 的依赖注入你简单的说一下吧?

答:依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释,这概念是说你不用创建对象,而只需要描述它如何被创建,你不在代码里面直接组装你的组件和服务。

但是亚奥在配置文件里面描述那些组件需要那些服务,之后一个容器(IOC容器),负责把他们组装起来。

5、你知道Spring 框架中的单例 bean 是线程安全的吗?

答:不,Spring 框架中的单例 bean 不是线程安全的。

三、微服务面试题

1、什么是耦合你知道吗?

答:组件之间依赖关系强度的度量被认为是耦合。一个好的设计总是被认为具有高内聚力和低耦合性。

2、什么是 REST / RESTful 以及它的用途是什么?

答:

  1. Representational State Transfer(REST)/ RESTful Web 服务是一种帮助计算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实现。

  2. 微服务可以使用或不使用 RESTful API 实现,但使用 RESTful API 构建松散耦合的微服务总是更容易。

3、你知道什么是客户证书?

答:

  • 客户端系统用于向远程服务器发出经过身份验证的请求的一种数字证书称为客户端证书。
  • 客户端证书在许多相互认证设计中起着非常重要的作用,为请求者的身份提供了强有力的保证。

4、你知道什么是有界上下文吗?

答:

  • 有界上下文是域驱动设计的核心模式。
  • DDD 战略设计部门的重点是处理大型模型和团队。DDD 通过将大型模型划分为不同的有界上下文并明确其相互关系来处理大型模型。

5、Docker 的目的是什么?

答:

  • Docker 提供了一个可用于托管任何应用程序的容器环境。在此,软件应用程序和支持它的依赖项紧密打包在一起。

  • 因此,这个打包的产品被称为 Container,因为它是由 Docker 完成的,所以它被称为 Docker 容器!

6、你知道什么是 spring 装配吗?

答:

  1. 当 bean 在 Spring 容器中组合在一起时,它被称为装配或 bean 装配。
  2. Spring容器需要知道需要什么 bean 以及容器应该如何使用依赖注入来将 bean 绑定在一起,同时装配 bean。

7、你知道Spring 支持哪些 ORM 框架吗?

答:

  • Hibernate
  • iBatis
  • JPA
  • JDO
  • OJB

8、如何理解 Spring 中的代理?

答:将 Advice 应用于目标对象后创建的对象称为代理。在客户端对象的情况下,目标对象和代理对象是相同的。

Advice + Target Object = Proxy

9、Spring 应用程序有哪些不同组件?

答:

  1. 接口 -定义功能
  2. Bean类 它包含属性,setter 和getter 方法,函数等。
  3. Spring面向切面编程(AOP) - 提供面向切面的功能。
  4. Bean配置文件 - 它包含的信息以及如何配置他们。
  5. 用户程序-它使用接口。

10、你知道使用 Spring 有哪些方式吗?

答:

  • 作为一个成熟的 Spring Web 应用程序。
  • 作为第三方 Web 框架,使用 Spring Frameworks 中间层。
  • 用于远程使用。
  • 作为企业级 Java Bean,它可以包装现有的 POJO(Plain Old Java
    Objects)。

写在最后

如果本文对你有帮助,请给我点个赞再走吧。

猜你喜欢

转载自blog.csdn.net/qq_43055855/article/details/111413755
今日推荐