当前位置:   article > 正文

Java开发八月七号下午笔试+面试_java面试安排在下午

java面试安排在下午
笔试
1、SpringBoot有哪几种配置方式?有什么区别?

SpringBoot有两种配置方式,properties和yml,两种配置方式只是格式上不同,功能是一致的,比如
properties:

server.port=8080
  • 1

对应的yml:

server:
        port:8080
  • 1
  • 2

就实际开发而言,yml更简洁一些,但是properties出错率更低一些。

2、SpringBoot怎么修改启动时的端口号?

(1)、在配置文件中修改端口号:

server.port=8888
  • 1

(2)、.可以通过实现EmbeddedServletContainerCustomizer接口来实现

public class Application extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {  
  
    @Override  
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {  
        return builder.sources(Application.class);  
    }  
      
    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  
  
  
    @Override  
    public void customize(ConfigurableEmbeddedServletContainer container) {  
        container.setPort(8081);  
    }  
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
3、mysql有几种锁?怎么创建一个带锁的sql语句?

从数据库的角度来看,锁可以分为共享锁、独占锁和更新锁。
共享锁:共享锁锁住的资源可以被其它资源读取,但不能被修改。
独占锁:独占锁锁住的资源只允许进行锁定操作的程序使用。
更新锁:是为了防止死锁设立的。
从程序员的角度来看,锁可以分为乐观锁、悲观锁。

参考【6】讲的不错。

4、JVM加载class文件的原理机制是什么?

JVM装载class文件都是由ClassLoader(类加载器)实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。
类加载器中,BootstrapClassloader是Java无关的,是由C/C++编写的类加载器,其它的类加载器都直接或间接继承自它。

5、分布式锁应当具备哪些条件?

为了防止分布式系统之间的多个进程相互干扰,需要一种分布式协调技术来对这些进程进行调度,而这个分布协调技术的核心就是分布式锁。
分布式锁需要具备的条件:
.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行
.高可用的获取锁与释放锁
.高性能的获取锁与释放锁
.具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误)
.具备锁失效机制,防止死锁
.具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败

6、SpringCloud和Dubbo有什么区别?
SpringCloudDubbo
底层实现底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC通信。基于Http协议+rest接口调用远程过程的通信
背景来源于Spring团队,可以保证稳定的更新和维护Dubbo是来源于阿里团队,曾被阿里弃用,后来又低调重启
定位Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。定位是服务治理。SpirngCloud诞生于微服务架构时代,考虑的微服务治理的方方面面。依托于Spring和SpringBoot,SpringCloud定位的是生态
模块完整的一站式分布式框架,模块包括服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务追踪等主要是四个模块:服务注册中心,服务提供者,服务消费者,还有管控中心
7、SpringMVC是单例模式吗?如果是,存在什么问题?该怎么解决?

SpringMVC是单例模式。
在多线程访问时存在安全问题。
解决办法:不需要同步,在控制器中不能写字段。如果在特殊情况需要定义属性的时候,那么就在类上面加上注解@Scope(“prototype”)改为多例的模式

7、List、Map、Set是否继承Collection?

List和Set继承Collection,Map是基本映射表接口,没有继承Collection。

8、线程有几种实现方式?

三种:
(1)、继承Thread类
(2)、实现Runnable接口,Thread类其实也是一个实现了Runable接口的类。
(3)、实现Callable接口,可以创建一个带返回值的线程,可以看作是对Runnable接口的补充。


面试

面试比较快,随便问问,了解一下个人情况,技术上问的不多,有几个很基础的问题,就不写了。

1、讲讲Spring中的事务?

事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性。
事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用。
在Spring在不同的事务管理API之上定义了一个抽象层,而应用程序开发人员不必了解底层的事务管理API,就可以使用Spring的事务管理机制。
Spring既支持编程式事务管理(也称编码式事务),也支持声明式的事务管理。
编程式事务管理:将事务代码嵌入到业务方法中来控制事务的提交和回滚,在编程式事务中,必须在每个业务操作中包含额外的事务管理代码。
声明式事务管理:大多数情况下比编程是事务管理好用。它将事务管理代码从业务方法中分离出来,以声明的方式以声明的方式来实现事务管理。事务管理作为一种横切事务点,可以通过AOP方式模块化。Spring通过Spring AOP框架支持声明式事务管理。

Spring并不直接管理事务,而是提供了多种事务管理器,它们将事务管理的职责委托给JTA或其他持久化机制所提供的平台相关的事务实现。每个事务管理器都会充当某一特定平台的事务实现的门面,这使得用户在Spring中使用事务时,几乎不用关注实际的事务实现是什么。
比如针对Spring JDBC抽象框架、iBATIS或MyBatis框架的事务管理器DataSourceTransactionManager,

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
  • 1
  • 2
  • 3
2、你眼中的高并发?

看参考四,一些概念没有接触过,不是太能理解。

3、Spring AOP原理是什么?

Spring AOP的底层都是通过代理来实现的
.一种是基于JDK的动态代理
.一种是基于CgLIB的动态代理


参考:
【1】、https://www.cnblogs.com/Javacxf/p/7100995.html
【2】、https://www.cnblogs.com/longshiyVip/p/5061637.html
【3】、https://www.cnblogs.com/longshiyVip/p/5061637.html
【4】、https://zhuanlan.zhihu.com/p/38636111
【5】、https://www.cnblogs.com/javazhiyin/p/10101044.html
【6】、https://www.cnblogs.com/zhouqianhua/archive/2011/04/15/2017049.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/450341
推荐阅读
相关标签
  

闽ICP备14008679号