当前位置: 首页 > news >正文

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。

转载于:https://www.cnblogs.com/ws563573095/p/10254989.html

相关文章:

  • Java将string内容写入到TXT文件
  • 爬虫之图片懒加载技术、selenium和PhantomJS
  • 词云制作没那么难,Python 10 行代码就实现了!
  • D-赌神(判断2^k = n时 k的值)
  • vue-router(hash模式)常见问题以及解决方法
  • 链式存储结构之静态链表
  • js简单实用的垂直导航菜单,鼠标移动触发
  • idea运行提示Error:java:无效的源发行版:1.9
  • zookeeper-3.5.4-beta安装
  • 归一化
  • 深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)
  • 实验吧-密码学-疑惑的汉字(当铺密码)
  • 织梦dedecms去除友情链接中的li和span
  • 【Ray Tracing The Next Week 超详解】 光线追踪2-2
  • Linux命令学习笔记
  • axios 和 cookie 的那些事
  • github从入门到放弃(1)
  • interface和setter,getter
  • IOS评论框不贴底(ios12新bug)
  • Linux gpio口使用方法
  • MySQL的数据类型
  • Mysql优化
  • React-flux杂记
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • tab.js分享及浏览器兼容性问题汇总
  • 对JS继承的一点思考
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 老板让我十分钟上手nx-admin
  • 前端面试题总结
  • 算法---两个栈实现一个队列
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Semaphore
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​学习一下,什么是预包装食品?​
  • !$boo在php中什么意思,php前戏
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (03)光刻——半导体电路的绘制
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (层次遍历)104. 二叉树的最大深度
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (数据结构)顺序表的定义
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一) storm的集群安装与配置
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • :“Failed to access IIS metabase”解决方法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Transient注解