您的位置 首页 java

「备战2020金三银四」Java练习手册,跟着我左手右手敲代码

1.请描述 负载均衡 原理?

2.以下关于使用ZK完成服务注册与发现错误的是?

A.服务注册使用零时节点

B.消费方连接zk获得注册列表

C.从zk获得注册地址后可直接调用

D.为了监听节点的变化,需要使用ZK的watch机制

答案:C

从zk获取注册地址是个集合,需要使用一定的负载算法获取其中的某一个来调用。

3.在什么样的场景下@Transactional会失效?如何解决?

答案:在spring容器中,在一个类内部A方法和B方法都加了@Transactional注解,如果A方法中直接调用B方法,则B方法的事务会失效;可以使用AopContext获取当前对象的动态代理,避免B方法事务失效的问题。

4.对服务器进行 心跳检测 ,如果服务器在线则30s之后再次发起心跳检测,如果服务器不在线,发送短信通知并停止心跳检测,这个场景如何实现?

答案:通过定时任务 线程 池ScheduledExecutorService的scheduleAtFixedRate方法启动线程每隔30s ping一次服务器,启动之后scheduleAtFixedRate方法会返回当前线程的异步执行结果的引用 Future ,如果服务器在线,线程会每隔30s触发一次,如果服务区不在线则通过Future.cancel停止本次心跳检测。

5.MyBatis打开调试模式之后,能打印sql语句等信息,这是怎么实现的?实现过程中使用了什么设计模式?

答案:在mybatis的日志模块中,通过动态代理为jdbc的接口无侵入性的增强了日志能力,其本质是使用代理模式,其中ConnectionLogger负责打印连接信息和SQL语句,PreparedStatementLogger负责打印参数信息,ResultSetLogge负责打印数据结果信息。

6.MyBatis是如何为二级 缓存 动态添加日志、同步控制、阻塞、缓存淘汰策略等附加能力的?用了什么设计模式?

答案:二级缓存使用了装饰器模式为缓存能力添加附加能力的,在缓存模块中有8个装饰器,分别为缓存添加日志、 序列化 、同步、阻塞等等能力的装饰器,可以在运行期非常灵活的为二级缓存进行增强。

7. 多线程 编程对我们有什么实际意义?

答案:按照我们一般的业务实现,我们会在一个方法中调用所有相关的业务方法。这种实现带来的问题有什么?第一,耦合,所有相关的业务方法成了一个业务流程上的必不可少的一步,前面的流程断了,后面的就没法走,整个业务就无法完成,但是有些业务方法其实并不是业务流程上必不可少的一环,是否执行,执行是否成功对业务影响并不大;第二,业务流程上有几个步骤,这个处理时间就是这几个步骤时间的相加,业务越多,步骤越多,处理时间当然就越多。那怎么解决这个问题?让这些业务并行起来而且减少相互之间的关联?当然是请出我们的线程,既可以解耦,又可以提高性能。

8.在单体应用中,使用加锁机制能解决我们所有的线程问题吗?

答案:不能,加锁有可能会造成我们的程序 死锁 和活锁,同时,synchronized如果加锁不正确,也不能保证数据的 线程安全

9.Netty 高性能表现在哪些方面?

答案:IO 线程模型:同步非阻塞,用最少的资源做更多的事。

内存零拷贝:尽量减少不必要的内存拷贝,实现了更高效率的传输。

内存池设计:申请的内存可以重用,主要指直接内存。内部实现是用一颗二叉查找树管理内存分配情况。

串形化处理读写:避免使用锁带来的性能开销。即消息的处理尽可能在同一个线程内完成,期间不进行线程切换,这样就避免了多线程竞争和同步锁。表面上看,串行化设计似乎CPU利用率不高,并发程度不够。但是,通过调整NIO线程池的线程参数,可以同时启动多个串行化的线程并行运行,这种局部无锁化的串行线程设计相比一个队列-多个工作线程模型性能更优。

高性能序列化协议:支持 protobuf 等高性能序列化协议。

高效并发编程的体现:volatile的大量、正确使用;CAS和原子类的广泛使用;线程安全容器的使用;通过读写锁提升并发性能。

10.MyBatis是怎么通过mapper接口访问数据库?

答案:mybatis是通过sqlSession这个入口才能访问数据库;首先通过动态代理在内存中生成mapper接口的实现类,实现类中的方法要做三个翻译,第一将请求转发给sqlsession中指定的方法,第二拼接sql语句的唯一标识(namespace+id),第三传递查询参数;通过这三步翻译,基于sqlSession完成对数据库的访问。

持续关注,定期更新······

文章来源:智云一二三科技

文章标题:「备战2020金三银四」Java练习手册,跟着我左手右手敲代码

文章地址:https://www.zhihuclub.com/175697.shtml

关于作者: 智云科技

热门文章

网站地图