1>如何定位线上服务OOM问题 

2>JVM的GC ROOTS存在于那些地方

3>mysql innodb怎样做查询优化

4>java cas的概念

Java服务OOM,比较常见的原因是

⭐️ 有可能是内存分配确实过小,而正常业务使用了大量内存 比如jmp -heap命令可以查看新生带,老年代内存大小的情况。看看内存本身是否分配过小。

⭐️ 某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽 ,比如jmap -histo:live 对象显示存活对象的信息,并按照所占内存大小的排序。因为包含了实例数、所占         内存大小、类名,所以很直观。

⭐️ 某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接

2>JVM的GC ROOTS存在于那些地方、

问到这个问题应该是前面一步步引导过来的,如果没有,在直接回答这个问题之前,最好简要描述一下JVM的内存结构和根搜索算法(GC ROOTS Tracing)做可达性分析。

⭐️  虚拟机栈(栈桢中的本地变量表)中的引用的对象

⭐️  方法区中的类静态属性引用的对象

⭐️  方法区中的常量引用的对象

⭐️  本地方法栈中JNI的引用的对象

Gc管理的主要的区域是java堆,一般情况只针对堆进行垃圾回收。方法区,栈,和本地方法区不被Gc所管理,因而选择这些区域作为GC  ROOTS ,被GC  ROOTS引用的不会

被垃圾回收。

mysql innodb怎样做查询优化

⭐️  innodb_buffer_pool_size 此参数的作用是缓冲数据和索引,对性能可以产生线性的提高,最大可设置为内存大小的百分之七八十的样子

⭐️  打开慢查询日志,增加参数:log-queries-not-using-indexes,方便把系统中没有走索引的sql语句全抓出来优化

⭐️  通过explain做查询分析,看看有没有用索引,访问的行数rows

⭐️  关闭skip_name_resolve,减少逆向DNS解析的消耗

另外还有一些实际写代码过程中深入骨髓的,比如数据动静分离提高query_cache的命中率啦,减少字段冗余,减少查询次数啦,复杂查询分解啦,分页优化啦啥的。

4>java cas的概念

cas:compare and swap,比较并交换 

java的concurrent包中借助cas实现了区别于synchronized同步锁的一种乐观锁。

CAS利用CPU的CAS指令,同时借用JNDI来完成java的非阻塞算法,其他的原子操作都是利用类似的特性完成的。java的concurrent包相对于使用synchronized性能提升也主要依赖它。

Java后台开发面试题总结的更多相关文章

  1. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP

    J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言   搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理.    ...

  2. 入我新美大的Java后台开发面试题总结

    静儿最近在总结一些面试题,那是因为做什么事情都要认真.面试也一样,静儿作为新美大金融部门的面试官,负责任的告诉大家,下面的问题回答不上来,面试是过不了的.不过以下绝不是原题,你会发现自己实力不过硬,最 ...

  3. [转]linux C/C++服务器后台开发面试题总结

    linux C/C++服务器后台开发面试题总结  https://www.cnblogs.com/nancymake/p/6516933.html 一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别 ...

  4. 各大公司java后端开发面试题

    各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...

  5. 后台开发面试题(.net与java)

    最近面试了几家公司,发现大部分公司面试题有相似的地方.现在此记录下我还记得的一些题: JAVA部分: 1.Java Map 按Key排序和按Value排序: 参考链接:Java Map 按Key排序和 ...

  6. linux C/C++服务器后台开发面试题总结

    一.编程语言 1.根据熟悉的语言,谈谈两种语言的区别? 主要浅谈下C/C++和PHP语言的区别: 1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互联网 ...

  7. 面试题:各大公司Java后端开发面试题总结 已看1 背1 有用 链接有必要看看

    ThreadLocal(线程变量副本)       --整理 Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个 ...

  8. 用友网络科技Java高级开发面试题(2019)

    面试时间:2019年8月18日上午9:30 面试岗位:Java高级开发 面试形式:电话面试 这些天在boss上逛了下,看见北京Java开发工资比较诱人,便萌生了去北京的想法,做一名北漂的程序猿.约了几 ...

  9. 最新阿里Java后端开发面试题100道(P6-P7)

    面试题 1.什么是字节码?采用字节码的好处是什么?2. Oracle JDK 和 OpenJDK 的对比?3.Arrays.sort 和 Collections.sort 实现原理和区别4.wait ...

随机推荐

  1. 使用union all 遇到的问题(俩条sql语句行数的和 不等于union all 后的 行数的和 !);遗留问题 怎么找到 相差的呐俩条数据 ?

    create table buyer as SELECT b.id AS bankid FROM v_product_deal_main m, base_member b WHERE b.id = m ...

  2. 【vue】vue安装卡住/报错

    网上有很多教程怎么安装: 安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org 升级npmcnpm install ...

  3. 第210天:node、nvm、npm和gulp的安装和使用详解

    一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...

  4. Android四大组件之contentProvider(续)

    1.content provider与网页有何相似之处? contentProvider使用authority 同网站的域名类似 contentProvider还可以提供类似于网站的索引方式      ...

  5. BZOJ4999 This Problem Is Too Simple!(树上差分+dfs序+树状数组)

    对每个权值分别考虑.则只有单点加路径求和的操作.树上差分转化为求到根的路径和,子树加即可.再差分后bit即可.注意树上差分中根的父亲是0,已经忘了是第几次因为这个挂了. #include<ios ...

  6. BZOJ4878 挑战NP-Hard(dfs树)

    既然是二选一,考虑两个问题有什么联系.题面没有说无解怎么办,所以如果不存在经过k条边的简单路径,一定存在k染色方案.考虑怎么证明这个东西,我们造一棵dfs树.于是可以发现如果树深>k(根节点深度 ...

  7. 51nod 1317 相似字符串对(容斥原理+思维)

    题意: 称一对字符串(A,B)是相似的,当且仅当满足以下条件: (1)字符串A和B都恰好包含N个字符: (2)A和B串中的每个字符都是小写字母的前k个字符,即A.B中只可能出现'a','b','c', ...

  8. oracle 如何查看pga

    进去命令行 输入 sqlplus username/password@dbname  回车 进入数据库输入 show parameter pga  回车

  9. [Violet]蒲公英 分块

    发现写算法专题老是写不动,,,, 所以就先把我在luogu上的题解搬过来吧! 题目大意:查询区间众数,无修改,强制在线 乍一看是一道恐怖的题,仔细一看发现并没有那么难: 大致思路是这样的,首先我们要充 ...

  10. 【CF375C】Circling Round Treasures

    Portal --> CF375C Solution 一个有趣的事情:题目中有很大的篇幅在介绍如何判断一个位置在不在所围的多边形中 那么..给了方法当然就是要用啊 ​ 首先是不能包含\('B'\ ...