未整理的面试问题(研究)

85 阅读6分钟

线程之间如何通信的,是对象锁,什么是类锁,

线程都有自己的私有空间,多个线程进行同步协作的时候,就需要进行线程间通信 线程通信的方法分为几点:

  • 锁与同步:主要针对全局变量进行加锁,即用synchroized关键字对对象或者代码块加锁lock,用于达成线程间通信。

  • 等待/通知机制。Java多线程的等待和通知机制是基于Object类的wait()方法和notify(),notifyAll()方法来实现的。

  • join()方法让当前线程陷入“等待”状态,等join的这个线程执行完成后,再继续执行当前线程。

      当主线程创建并启动了耗时子线程,而主线程早于子线程结束之前结束时,就可以用join方法等子线程执行完毕后,从而让主线程获得子线程中的处理完的某个数据。
    
      join()方法及其重载方法底层都是利用了wait(long)这个方法。
    

对象锁,类锁: 对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态 方法或者一个类的 class 对象上的。我们知道,类的对象实例可以有很多个,但 是每个类只有一个 class 对象,所以不同对象实例的对象锁是互不干扰的,但是 每个类只有一个类锁。 但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存 在的,类锁其实锁的是每个类的对应的 class 对象。类锁和对象锁之间也是互不干扰的。

线程之间如何通信的?

什么是对象锁,什么是类锁?

es搜索引擎里面怎么创建索引?

如果es里面想要自定义分词怎么办?

redis集群 hash槽的优点?

短信防刷 ?

object下有什么方法 object方法中 唤起线程的方法 挂掉的方法 ?

springcould五大组件 ?

MySQL 存储引擎 索引区别 ?

倒排索引 ElasticSearch 读写分离 ?

Redis的数据类型 ?

用的什么分布式锁 ?

sql优化(多种优化方式)?

不用Redis如何减轻MySQL压力(多种方式)?

springcould用什么方式调用的 码云git 远程的master还是本地的master?

了解过mybatis的原理之类的吗?

手写单例模式 ?

了解设计模式吗?

java的集合框架 (Map,Set,List) ?

map怎么用的 ?

MySQL隔离级别 MySQL事务 ?

秒杀超买超卖的解决方案,上亿级数据量的表的设计能力,接口安全性(不是幂等), ?

RabbitMQ丢消息解决方案,(消息落地持久化,RabbitMQ的ack确认机制) ?

JVM为什么会有新生代老年代如何工作, ?

多线程的使用, ?

索引底层原理, ?

mybatis的一级缓存二级缓存, ?

SpringAOP、IOC原理, ?

AQS,CAS, ?

RESTFUL的使用 ?

订单模块为什么使用rabbit? ?

订单号在高并发情况下如何保证唯一性? ?

如何保证幂等?

每天代码有评审吗?

为什么生产者中要避免使用System.out.print();?

哪里使用过Redis?

假如分给你一个商品模块,你会如何设计?

平常研究过哪些技术?

项目周期大概多久?

es实时性() ?

redis的淘汰策略 ?

reetrantlock的底层原理 cas ABA问题 ?

cms的垃圾回收算法 jvm的垃圾回收 ?

RabbitMQ丢消息 RabbitMQ 集群模式

你项目中遇到了什么问题 多线程在哪里用了 怎么用的

eureka相互注册是怎么注册的

mysql的三大范式 算法问题 猴子搬香蕉

mysql的底层原理 B+树和B-树的区别

mysql的底层为什么不选用hash

RPC通信的过程

hashmap的底层原理

mybatis中接口里的方法可以重载嘛

mysql的主键索引和普通索引的区别

SpringMVC的运行原理

mybatis是怎么配置的

String String buffer Stringbuilder的区别、

synchronized和ReentrantLock的区别

反射的用途及实现、DispatcherServlet的工作流程、

如何获取自动生成的主键、

spring MVC拦截器、

如何设计一个权限系统、

JVM性能调优、(CPU,内存溢出(),)

分布式事务问题、

bean的生命周期、

栈、堆、静态方法的用法、处理异常的关键字及用法。

消息队列的几种模式、

Redis加锁命令、

Controller和RestController的区别。

项目中哪些地方用到了aop;

项目中rabbitmq 发送消息和消费消息的过程;

springcloud与dubbo的区别;

你在项目中参与的角色;制;

eureka 集群中如果有一个节点下有大量实例挂掉的话,心跳检测失败,eureka 会怎么处理;

ioc用到哪些设计模式及场景;

bean的实例化过程;

springboot启动器的理解;

面向切面编程的理解;

static的理解;

用过哪种线程池;

什么是组合索引;

什么是单例模式及好处;

spring容器怎么实现多例;

数据库多对多;

为什么不用直接掉接口的方式;

#和$的区别;

分表如何实现;

session共享怎么实现;

抽象类和接口的区别;

身份认证线程池中,一个任务失败怎么回滚,

线程池还在那方面使用,

项目属于那家公司,

SpringCloud的运行流程,Docker的优点和不足,

Mysql数据库优化(就只是建了索引吗?),

Spring是怎么自动注入,类加载器有几中,

SpringConfig配置,

SpringMVC拦截器,

设计模式,线上问题解决,

sql语句一对多 多条记录 查询结果为一条记录 ,

springBoot依赖注入方式,设计模式,

springboot怎么配置 yml和propeties配置区别

yml怎么配置数组

解释定时 匿名内部类 用户安全怎么保障

操作系统 前台首页显示总流水如何显示

jstack 和jmap区别

@Configuration 和 @Component 区别

Mq消息丢失如何处理

你做的项目最值得你骄傲的地方是哪,

什么叫死信队列,

如何解决重复消费,

怎么实现接口幂等性,

你了解lua脚本吗,

继承thread和实现callable有什么区别,

jdk1.8有哪些新特性

Gateway有哪些拦截器,流程是怎么样的

Es和Solr的区别

mysql左连接,右连接和内连接有什么区别

Synchronized 锁升升级过程?

解决线程安全的方式。

项目中用到的单例模式

两个spring Bean 不互相引用,怎么获得对方的值,

用户登录,生成token 存入redis中,如果此时redis宕机了,你这时用户该怎么处理?

spring 注入方式