SpringBoot有两种配置方式,properties和yml,两种配置方式只是格式上不同,功能是一致的,比如
properties:
server.port=8080
对应的yml:
server:
port:8080
就实际开发而言,yml更简洁一些,但是properties出错率更低一些。
2、SpringBoot怎么修改启动时的端口号?
(1)、在配置文件中修改端口号:
server.port=8888
(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);
}
}
3、mysql有几种锁?怎么创建一个带锁的sql语句?
从数据库的角度来看,锁可以分为共享锁、独占锁和更新锁。
共享锁:共享锁锁住的资源可以被其它资源读取,但不能被修改。
独占锁:独占锁锁住的资源只允许进行锁定操作的程序使用。
更新锁:是为了防止死锁设立的。
从程序员的角度来看,锁可以分为乐观锁、悲观锁。
参考【6】讲的不错。
4、JVM加载class文件的原理机制是什么?
JVM装载class文件都是由ClassLoader(类加载器)实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。
类加载器中,BootstrapClassloader是Java无关的,是由C/C++编写的类加载器,其它的类加载器都直接或间接继承自它。
5、分布式锁应当具备哪些条件?
为了防止分布式系统之间的多个进程相互干扰,需要一种分布式协调技术来对这些进程进行调度,而这个分布协调技术的核心就是分布式锁。
分布式锁需要具备的条件:
.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行
.高可用的获取锁与释放锁
.高性能的获取锁与释放锁
.具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误)
.具备锁失效机制,防止死锁
.具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败
6、SpringCloud和Dubbo有什么区别?
| | SpringCloud | Dubbo |
| --- | --- | --- |
| 底层实现 | 底层是使用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接口的补充。
标签:Java,笔试,接口,服务,分布式,七号,class,加载 From: https://blog.51cto.com/u_17015016/12080217