目录前言JVM性能调优内存溢出错误堆溢出错误和预判堆溢出的错误虚拟机栈和本地方法栈溢出错误方法区(元数据区)和运行时常量池溢出直接内存区域的溢出实践案例如何正确利用大内存-高性能硬件上的程序部署策略如何排查内存溢出错误如何排查系统CPU性能指标异常-外部命令导致系统缓慢返回目录前言JVM性能调优是一个很大的话题,很多中小企业的业务规模受限,没有迫切的性能调优 …
arrays.copyof用法
一、ArrayList:写过的项目到现在基本上面向业务域查询返回大列表都是使用ArrayList来存储业务数据的。定义:ArrayList是List接口的可变数组的实现。实现了所有的可选列表的操作并允许包括null在内的所有元素。除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。每个ArrayList实例都有一个容量,该容量是指来 …
之前一篇博客介绍了C语言中一些基础的编码优化,实际上涉及到编译优化,所有语言进行编译时,相应的编译器都可以进行对应的优化;1. 字段访问相关优化基于逃逸分析的优化方式:进行锁消除、栈上分配、标量替换等;标量替换:将对象本身拆散为一个个字段,把原本对象字段的访问,替换为一个个局部变量的访问; 若对象没有逃逸,则:static int bar(int x) {F …
1、foreach遍历ArrayList过程中使用 add 和 remove我们先来看看使用foreach遍历ArrayList过程中使用 add 和 remove 会出现什么样子的结果,然后再分析一下。public static void main(String[] args) {List<Integer> list = new ArrayLi …
目录:要求十进制转二进制,首先我们想到的是除2求余法,比如数字15,如下,不断的除以2,一直到0为止,最后将余数倒序排列就是该数的二进制表示152 = 7 --------余172 = 3 --------余132 = 1 --------余112 = 0 --------余1所以15的二进制表示就是1111,再举一例,5 …
插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法特性稳定性插入排序是一种稳定性的排序算法。时间复杂度插入排序的 …
前言Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List、Set和Map集合时经常出错,常用方法还记不牢,于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错误,欢迎大家指出。以下是我整理的大致Java集合框架内容,本篇博客就是围绕以下内容展开1、集合概念1.1、概念:对象的容器,定义了对多个对象进行操作的常用方法。可实 …
作者 |积淀来源 | urlify.cn2YZney内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 3.代码 …
1 枚举(Enumeration)1.1 Enumeration源码:public interface Enumeration<E> { boolean hasMoreElements(); E nextElement();}Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。这种传统接口已被迭代器取 …
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。大家好,我是小彭。在上一篇文章里,我们聊到了基于链表的 Queue 和 Stack 实现 —— LinkedList。那么 Java 中有没有基于数组的 Queue 和 Stack 实现呢?今天我们就来聊聊这个话题。小彭的 Android 交流群 02 群已经建立啦~思 …