天融信一面记录--2022.03.09

2022/3/10 6:16:06

本文主要是介绍天融信一面记录--2022.03.09,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

天融信一面记录--2022.03.09

0.自我介绍

1.数组和链表的区别

2.ArrayList扩容机制

3.HashMap底层原理

4.我想要一个key可重复的Map

5.我想要一个排序的Map

6.我想要一个线程安全的Map

7.实现线程几种方式

8.Runnable和Callable的区别

9.Callable的返回值如何获取

10.多线程如何访问共享变量

11.sleep 和wait方法的区别

12.synchronized关键字和valotile关键字区别

13.Java内存模型

14.程序计数器是干什么的

15.双亲委派机制,为什么使用这种机制

16.索引失效的情况

17.如何查看SQL是否走索引

18.数据库事务的四大特性

19.数据的事务隔离级别,MySQL默认是哪种

20.mybatis缓存怎么实现的

21.springcloud组件

22.openfign你是如何使用的

23.服务如何注册到注册中心

24.ES你知道的概念

25.Kafka你知道的概念


0.自我介绍

1.数组和链表的区别

2.ArrayList扩容机制

ArrayList的初始化容量为10,在新增元素的时候,会判断当前容量是否充足,充足则不进行扩容,

不充足则计算扩容的容量,为当前旧容量+旧容量左移一位,即当前旧容量的1.5倍,然后将元素拷贝至新数组

3.HashMap底层原理

Jdk1.7 数组 + 链表

Jdk1.8 数组 + 链表 + 红黑树

4.我想要一个key可重复的Map

IdentityHashMap

5.我想要一个排序的Map

TreeMap

6.我想要一个线程安全的Map

ConcurrentHashMap

7.实现线程几种方式

1.继承Thread类

2.实现Runnable

3.实现Callable

4.使用线程池ThreadPoolExecutor

5.使用Future

6.使用CompletableFuture

8.Runnable和Callable的区别

1.Runnable没有返回值,Callable有返回值

2.Runnable不能抛出异常,Callable可以获取到异常

9.Callable的返回值如何获取

放在Future中,get出来

10.多线程如何访问共享变量

使用valotile关键字

11.sleep 和wait方法的区别

1.sleep方法不会释放锁,wait方法会释放锁

2.sleep方法是Thread类中的,wait方法是Object类中

3.sleep方法到了时间会自动唤醒,wait方法需要notify或者notifyAll唤醒

4.sleep方法需要try catch ,而wait方法不需要

5.sleep方法可以在方法内任意位置,wait方法必须同步代码块里

12.synchronized关键字和valotile关键字区别

    1. volatile关键字解决的是变量在多个线程之间的可见性;而sychronized关键字解决的是多个线程之间访问共享资源的同步性。
    1. volatile只能用于修饰变量,而synchronized可以修饰方法,以及代码块。(volatile是线程同步的轻量级实现,所以volatile性能比synchronized要好,并且随着JDK新版本的发布,sychronized关键字在执行上得到很大的提升,在开发中使用synchronized关键字的比率还是比较大)
    1. 多线程访问volatile不会发生阻塞,而sychronized会出现阻塞。
    1. volatile能保证变量在多个线程之间的可见性,但不能保证原子性;而sychronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存和公有内存中的数据做同步。

13.Java内存模型

Java堆、方法区(元空间)、Java虚拟机栈、本地方法栈、程序计数器

14.程序计数器是干什么的

Java字节码执行的行号指示器,涉及到线程切换时记录当前线程执行到哪了

15.类加载器,双亲委派机制,为什么使用这种机制

应用类加载器、扩展类加载器、启动类加载器

在加载一个类时,首先委托自己的父类加载器进行加载

16.索引失效的情况

1.字段数据区分度不高

2.索引坏掉

3.like查询使用左模糊

4.建立了复合索引,但查询条件没有以复合索引的第一个字段开始

5.查询列使用了函数

6.查询列使用了运算

17.如何查看SQL是否走索引

使用Explain关键字查看SQL语句

18.数据库事务的四大特性

原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency)
事务前后数据的完整性必须保持一致。
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

19.数据的事务隔离级别,MySQL默认是哪种

读未提交、读已提交、可重复读、串行化

MySQL默认的事务隔离级别是:可重复读

20.mybatis缓存怎么实现的

21.springcloud组件

项目中常用的是:Eureka、OpenFeign、Hystrix、Zuul

22.服务如何注册到注册中心

引入Eureka客户端依赖、在配置文件中增加注册中心地址、在启动类上增加@EnableDiscoveryClient注解

23.openfeign你是如何使用的

引入openfeign依赖、写一个接口类,使用@FeignClient注解标明他,写上方法并注解调用地址及参数

24.ES你知道的概念

25.Kafka你知道的概念



这篇关于天融信一面记录--2022.03.09的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程