java.lang.OutOfMemory总结分析

https://www.cnblogs.com/fuhaots2009/p/3483429.html

 

OOM浅析

相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识。参照网上的一些解决方案,在这里加以整理。
在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识。jvm管理的内存大致包括三种不同类型的内存区域: Permanent Generation space(永久            保存区[……]

继续阅读

Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

http://outofmemory.cn/c/java-outOfMemoryError

 

java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。

导致OutOfMemoryError异常的常见原因有以下几种:

  1. 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
  2. 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
  3. 代码中存在死循环或循环产生过多重复的对象实体;
  4. 使用的第三方软件中的BUG;
  5. 启动参[……]

    继续阅读

线上服务内存OOM问题定位三板斧

https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651960342&idx=1&sn=9b2dbbb2cfd7710f25be1a0862a9b2be&chksm=bd2d01ca8a5a88dcc14608cb00e0dbde11869d053ee8c83bc96e7b4a0fbd71d28d7fbb009c98&mpshare=1&scene=1&srcid=0821vNW5OUio7lHSX9dnLSC2#rd

https://blog.csdn.net/chang[……]

继续阅读

听说又被 JVM 内存区域方面的面试题给虐了?看看这篇文章吧!

https://mp.weixin.qq.com/s/UGoa_H2Wyw7gT9bYXOaMtQ

 

本文转载自微信公众号:JavaGuide

基本问题

介绍下 Java 内存区域(运行时数据区)Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么)对象的访问定位的两种方式(句柄和直接指针两种方式)

拓展问题

String类和常量池8种基本类型的包装类和常量池

一 概述

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不[……]

继续阅读

sql复合索引使用和注意事项

https://blog.csdn.net/mysevenyear/article/details/80522667

 

1、定义: 

单一索引:

单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上;

复合索引:

复合索引也叫组合索引;

用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。

复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引;

同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引;

设计索引的一个重要原则就是能用窄索引不用宽索引,[……]

继续阅读

简洁又快速地处理集合——Java8 Stream(下)

https://www.cnblogs.com/HowieYuan/p/9394552.html

 

上一篇文章我讲解 Stream 流的基本原理,以及它与集合的区别关系,讲了那么多抽象的,本篇文章我们开始实战,讲解流的各个方法以及各种操作

没有看过上篇文章的可以先点击进去学习一下 简洁又快速地处理集合——Java8 Stream(上),当然你直接看这篇也可以,不过了解其本身才能更融会贯通哦。

值得注意的是:学习 Stream 之前必须先[……]

继续阅读

以war形式部署springboot项目

https://springboot.io/t/topic/97

 

以war形式部署springboot项目

把springboot以war形式部署到Servlet容器

修改maven项目的打包方式

<packaging>war</packaging>

修改maven项目中,嵌入式Servlet容器的依赖范围

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starte[......]

继续阅读

AspectJ的切入点表达式—execution表达式详解

https://blog.csdn.net/lk7688535/article/details/51989746

 

Aspectj切入点语法定义

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut”切入点”

例如定义切入点表达式 execution (* com.sample.service.impl..*. *(..))

execution()是最常用的切点函数,其语法如下所示:

整个表达式可以分为五个部分:

1、execution(): 表达式主体。

2、第一个*号:表示返回类型, *[……]

继续阅读

ArrayList、LinkedList、Vector的区别

https://www.cnblogs.com/yw-ah/p/5841327.html

 

Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快,Vector由于使用了synchronized方法-线程安全,所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项前后项即可,插入数据较快。

线性表,链表,哈希表是常用的[……]

继续阅读

索引失效原因总结

https://blog.csdn.net/colin_liu2009/article/details/7301089

 

今天一个同事突然问我索引为什么失效。说实在的,失效的原因有多种:

但是如果是同样的sql如果在之前能够使用到索引,那么现在使用不到索引,以下几种主要情况:

1. 随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全表)

2. 统计信息失效      需要重新搜集统计信息

3. 索引本身失效      需要重建索引

下面是一些不会使用到索引的原因

索引失效
1)[……]

继续阅读