Java程序员跳槽,tomcat原理详解

面试官:说一下sleep和wait的区别?

**程序员小李:**哦,这个简单

1. 对于 sleep()方法,我们首先要知道该方法是属于 Thread 类中的。而 wait()方法,则是属于Object 类中的。

2. sleep()方法导致了程序暂停执行指定的时间,让出 cpu 该其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。

3. 在调用 sleep()方法的过程中,线程不会释放对象锁。

4. 而当调用 wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用 notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

面试官:嗯,不错,说一下线程池。

**程序员小李:**额~是说那四种线程池吗?还是线程池的工作原理、工作流程?

**面试官:**额~那换一个问题吧!什么是中间件?

程序员小李:

中间件是处于操作系统和应用程序之间软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件中必须要有一个通信中间件,即中间件=平台+通信。该定义也限定了只有用于分布式系统中才能称为中间件。

主要分类:远程过程调用、面向消息的中间件、对象请求代理、事物处理监控。

面试官:如果要你自己设计一个中间件,你会怎么设计呢?

**程序员小李:**我会从以下几个方面考虑:

1、远程过程调用

**2、面向消息:**利用高效的消息传递机制进行平台无关的数据交流,并给予数据通信来进行分布式系统的集成,有以下三个特点:

  • 通讯程序可以在不同的时间运行

  • 通讯晨旭之家可以一对一、一对多、多对一甚至是上述多种方式的混合

  • 程序将消息放入消息队列会从小吸毒列中取出消息来进行通讯

3、对象请求代理:提供不同形式的通讯服务包括同步、排队、订阅发布、广播等

可构筑各种框架如:事物处理监控器、分布数据访问、对象事务管理器 OTM 等。

4、事物处理监控有以下功能:

  • 进程管理,包括启动 server 进程、分配任务、监控其执行并对负载进行平衡

  • 事务管理,保证在其监控下的事务处理的原子性、一致性、独立性和持久性

  • 通讯管理,为 client 和 server 之间提供多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等

面试官:嗯,很好,那个MySQL优化怎么做?

**程序员小李:**MySQL 的优化一般可以从存储引擎的选择、字段类型的选择、索引的选择、分区分表、主从复制、读写分离、SQL 优化等这里方面入手。

额,例如,储存引擎方面,在创建表的时候我们使用sql语句…

**面试官:**行了行了,不用太细了,我听不懂,那个,讲一下Redis吧!

Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

**程序员小李:**Redisson、Jedis、lettuce 等等,官方推荐使用 Redisson。

面试官:Redis 如何做内存优化?

**程序员小李:**尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以应该尽可能的将数据模型抽象到一个散列表里面。

比如 web 系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面。

面试官:那个Redis缓存雪崩、穿透这些你是不是也知道?

**程序员小李:**嗯,知道,缓存雪崩就是缓存同一时间大面积的失效,所以…

**面试官:**可以了可以了,咳咳~

面试官左手掏出了右口袋的纸巾,擦了一把汗。

Java高频面试专题合集解析:

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,在这也是免费分享给那些有需要的朋友,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

这些资料都以整理成了PDF文档,如果有需要可以狂戳这里免费下载即可!

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

更多Java架构进阶资料展示

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

进阶资料展示**

[外链图片转存中…(img-yrZziutO-1628675083160)]

[外链图片转存中…(img-7aBRkRsR-1628675083162)]

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值