• java面试题(四)


    1、cpu
    对于cpu我们主要介绍top,strace,perf,vmstat。
    vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的 IO、中断、上下问切换、CPU使用等。
    2、网络
    ○ netstat命令 netstat命令用来打印Linux中网络系统的状态信息,
    ○ lsof 命令用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)
    ○ tcpdump 可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

    3、内存
    valgrind 是在Linux程序中广泛使用的调试应用程序。它尤其擅长发现内存管理的问题,可以检查程序运行时的内存泄漏问题等
    4、 磁盘
    iotop
    iotop命令是一个用来监视磁盘I/O使用状况的top类工具。

    俩阶段提交 准备阶段。提交阶段
    问题 阻塞 脑裂 单点故障
    三阶段提交 询问 准备 提交
    问题 超时导致不一致

    tcc try comfig cancel 模式

    查询模式
    补偿模式
    异步确保模式
    定期校对模式

    1、HashMap底层实现
    2、HashMap怎么解决多线程不安全 使用槽锁的方式,但是这样会导致有很多槽锁性能不好, 改进 . 可以使用二级索引。
    3、Java垃圾回收机制 设计一个立即回收算法 使用分代回收,频繁的在年轻代进行回收,因为年轻代存储的对象大都是朝生夕死的。
    4、字符串翻转 3种
    5、面对高并发你怎么处理?
    1.加机器,提升配置
    2.分库分表,缓存、服务器等分布式部署做负载均衡
    3.使用缓存代替数据库
    4.复杂逻辑使用消息队列异步处理
    5.实现请求幂等,可以过滤掉一部分重复请求
    6.网页静态化,使用cdn
    7.使用细粒度锁,减少竞争
    6、JAVA有多少个类加载器,分别的作用是什么,一个class是怎么被加载到JVM里的,描述一下加载流程。
    7、你知道哪些垃圾回收算法,垃圾回收的时候怎么判断一个对象是否可以被回收。
    8、synchronized和Lock的区别是什么?
    9、你知道哪些分布式缓存,如果要你设计一个分布式缓存,你会怎么去设计,有哪些难点和重点。
    10、你以前做的系统中,分布式事务是怎么去实现的。
    11、synchronized和可重入锁的区别是什么?
    Lock从代码来看,最终调用的是本地方法来实现的,synchronized由JVM实现,实现的原理是在synchronized块的起始和结束位置分别添加了一个指令屏障
    (又叫内存屏障,什么叫指令屏障不在这里详细讲了,请自行百度)。
    Lock需要写代码主动释放锁,所以使用上相对麻烦,但是功能也更加强大,可以实现公平锁、非公平锁、条件锁,还有特定场景下性能提升较大的读写锁。
    12、java:并发、hashmap;
    13、数据结构:二叉排序树、散列表;
    14、操作系统:调度算法、死锁;
    15、数据库:acid,解释一下一致性;
    16、计算机网络:osi七层模型、输入网址到访问服务器的过程,越详细越好;
    17、spring框架:aop。

  • 相关阅读:
    想学好H5的话,你一定要知道的9个网站!
    颜色拾取
    Linux ( Centos 7.3 x64) 安装 nginx (一)
    获取url链接 判断加上HTTPS
    使用PHPMailer发送邮件
    PHP 判断一维数组或者是二维数组
    谨以此纪念下今天开通了博客
    线上服务器运维问题记录
    使用requests遇到的坑
    一个java进程突然消失的问题
  • 原文地址:https://www.cnblogs.com/ws563573095/p/10254989.html
Copyright © 2020-2023  润新知