JAVA调优相关

  1. 一、JVM与性能优化
  • 二、Redis
    1. 三、网络编程
    2. 四、设计模式与重构
    3. 五、分布式
  • 一、JVM与性能优化

    Java 类加载过程?
    描述一下 JVM 加载 Class 文件的原理机制?
    什么是类加载器?
    类加载器有哪些?
    什么是tomcat类加载机制?
    类加载器双亲委派模型机制?

    Java 内存分配?
    Java 堆的结构是什么样子的?
    简述各个版本内存区域的变化?
    说说各个区域的作用?
    什么是堆中的永久代(Perm Gen space)?
    Java 中会存在内存泄漏吗,简述一下?

    什么是GC? 为什么要有 GC?
    简述一下Java 垃圾回收机制?
    如何判断一个对象是否存活?
    垃圾回收的优点和原理,并考虑 2 种回收机制?
    垃圾回收器基本原理是什么?
    深拷贝和浅拷贝?
    垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

    System.gc() 和 Runtime.gc() 会做些什么?
    如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?

    什么是分布式垃圾回收(DGC)?它是如何工作的?
    在 Java 中,对象什么时候可以被垃圾回收?
    串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
    在 Java 中,对象什么时候可以被垃圾回收?
    JVM 的永久代中会发生垃圾回收么?
    简述Minor GC 和 Major GC?
    Java 中垃圾收集的方法有哪些?

    讲讲你理解的性能评价及测试指标?
    常用的性能优化方式有哪些?
    常见异步的手段有哪些?
    同步与异步?阻塞与非阻塞?
    说说分布式缓存和一致性哈希?
    什么是GC调优?

    二、Redis

    redis数据结构有哪些?
    Redis缓存穿透,缓存雪崩?
    如何使用Redis来实现分布式锁?
    Redis的并发竞争问题如何解决?
    Redis持久化的几种方式,优缺点是什么,怎么实现的?
    Redis的缓存失效策略?
    Redis集群,高可用,原理?
    Redis缓存分片?
    Redis的数据淘汰策略?
    redis队列应用场景?
    分布式使用场景(储存session)?

    三、网络编程

    TCP建立连接和断开连接的过程?
    HTTP协议的交互流程• HTTP和HTTPS的差异,SSL的交互流程?
    TCP的滑动窗口协议有什么用?
    HTTP协议都有哪些方法?
    Socket交互的基本流程?
    讲讲tcp协议(建连过程,慢启动,滑动窗口,七层模型)?
    webservice协议(wsdl/soap格式,与restt办议的区别)?
    说说Netty线程模型,什么是零拷贝?
    TCP三次握手、四次挥手?
    DNS解析过程?
    TCP如何保证数据的可靠传输的?

    四、设计模式与重构

    说说几个常见的设计模式(23种设计模式)?

    常用的:单例、工厂方法、抽象工厂、观察者模式、代理、装饰、组合、命令等
    

    设计一个工厂的包的时候会遵循哪些原则?
    列举一个使用了 Visitor/ Decorator模式的开源项目/库?
    如何实现一个单例?
    代理模式(动态代理)?
    单例模式(懒汉模式,恶汉模式,并发初始化如何解决, volatile与lock的使用)?
    JDK源码里面都有些什么让你印象深刻的设计模式使用,举例看看?

    五、分布式

    什么是CAP定理?
    说说CAP理论和BASE理论?
    什么是最终一致性?最终一致性实现方式?
    什么是一致性Hash?
    讲讲分布式事务?
    如何实现分布式锁?
    如何实现分布式 Session?
    如何保证消息的一致性?
    负载均衡的理解?
    正向代理和反向代理?
    CDN实现原理?
    怎么提升系统的QPS和吞吐?
    Dubbo的底层实现原理和机制?
    描述一个服务从发布到被消费的详细过程?
    分布式系统怎么做服务治理?
    消息中间件如何解决消息丢失问题?
    Dubbo的服务请求失败怎么处理?
    对分布式事务的理解?
    如何实现负载均衡,有哪些算法可以实现?
    Zookeeper的用途,选举的原理是什么?
    讲讲数据的垂直拆分水平拆分?
    zookeeper原理和适用场景?
    zookeeper watch机制?
    redis/zk节点宕机如何处理?
    分布式集群下如何做到唯一序列号?

    snowflake算法,二进制分(时间戳,机器ID,自增序列)
    时间回溯怎么办?切换机器ID
    默认算法,ID趋势递增有序容易被分析?调整比特位顺序和长度,增加机器ID自切换机制。
    

    用过哪些MQ,怎么用的,为什么要用MQ,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗?

    消息队列中间件:Kafka。RocketMQ
    

    MQ系统的数据如何保证不丢失?
    列举出能想到的数据库分库分表策略?

    来源:
    https://zhuanlan.zhihu.com/p/57062052
    https://zhuanlan.zhihu.com/p/57423203
    https://zhuanlan.zhihu.com/p/56048950


    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com

    文章标题: JAVA调优相关

    文章字数: 1,269

    本文作者: Jun

    发布时间: 2019-11-05, 14:18:00

    最后更新: 2019-11-05, 15:11:08

    原始链接: http://yoursite.com/2019/11/05/JAVA调优相关/

    版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

    目录
    ×

    喜欢就点赞,疼爱就打赏